It is well known that a convolutional code is essentially a linear system defined over a finite field. In this paper we elaborate on this connection. We define a convolutional code as the dual of a complete linear behavior in the sense of Willems (1979). Using ideas from systems theory, we describe a set of generalized first-order descriptions for convolutional codes. As an application of these ideas, we present a new algebraic construction for convolutional codes.