Though random codes are shown to be optimal for point-to-point channels, codes with algebraic structure are found to be useful in many network scenarios. This thesis demonstrates the role of structured codes in several network and MIMO settings. In MIMO channels, structured codes can be used to improve receiver design. Traditional receiver architectures decorrelate the mixed data streams and recover each of them individually. Although optimal when the channel matrix is orthogonal, this can be highly sub-optimal when the channel is near singular. To overcome this limitation, a new architecture that recovers linear combinations of the data streams instead of the data streams individually is proposed. The proposed integer-forcing receiver outperforms traditional linear architectures and achieves the optimal diversity-multiplexing tradeoff. In network information theory, it has been shown that structured codes are useful for computation over multiple-access channels. This thesis considers function computation across general relay networks and proposes a scheme that decouples the physical and network layers. By using lattice codes in the physical layer and network codes in the network layer, the proposed scheme achieves the optimal distortion to within a constant factor. Finally, structured codes can be used to efficiently transmit channel state information when global channel state information is absent in networks. It is shown that sending a function of the channel state information is sufficient and can be much more efficient than sending the full information.