This thesis focuses on improving list decoding of polar codes in terms of error correction
performance (by modified polar codes and shifted-pruning scheme) and the computational/time complexity (by stepped list decoding scheme). Furthermore, we analyze the properties of PAC codes and the impact of convolutional precoding on the weight distribution of polar codes. Then, we adapt the list decoding and the list Viterbi decoding algorithms to PAC codes and analyze the error correction performance, the computational/time complexity as well as the path sorting complexity of these decoders. We also propose an adaptive metric for Fano and stack decoding of PAC codes along with various tree search strategies to reduce the complexity of these decoders.