Convolutional codes :an algebraic approach