In this paper, low density parity check (LDPC) codes are considered. Design techniques are examined and new LDPC codes with improved error performance are proposed for irregular LDPC codes. Especially for BPSK modulation and AWGN channel, superior LDPC codes are successfully designed for R = 0.5 and N = 1000. For the designed superior irregular codes, it can be said that not only the performance of the codes is good when the code block length goes to infinity, but also they approach to the channel capacity and for code rate R = 0.5, they perform better than their counterparts given in the literature, when the code block length is finite (N = 1000). For irregular codes, when the degree of the bit node that possess the maximum number of branches is large, then that code approaches to the channel capacity. During the optimization of the encoder and decoder blocks, a combination of differential evolution technique, bit filling and message passing algorithms are considered to reach superior codes. The best superior code proposed in the paper is an irregular LDPC code with rate R = 0.5 which is only 0.02 dB away from the channel capacity.