Low-Density Parity-Check (LDPC) codes were introduced for the first time in 1962 by Gallager , but was forgotten for three decades. In 1996, LDPC codes were rediscovered by MacKay and Neal. Let F q be a field with q elements. The null space of a low-density matrix H on F q is called a q-ary LDPC code. LDPC codes are very practical and achieve Shannon Capacity. The decoding algorithm of these codes, such as sum-product algorithm make use of an iterative structure. Efficiency of an LDPC code under sum-product decoding algorithm depends on a number of code structural factors like its girth and minimum distance. In general, it is expected that the Tanner Graph of an LDPC code has a girth at least six. If in a given Parity-check matrix H, any two rows are simultaneously nonzero in at most one position, then the associated Tanner graph has no 4-cycles. This constraint is called Row-column constraint (RC- constraint). Let g mi be the minimum column weigh of H. The RC- constraint on H also ensures that the minimum distance of the LDPC code given by the null space of H is lower bounded by g mi +1. In this thesis, first, ome algebraic methods for constructing inary and non-binary quasi-cyclic LDPC codes are given. The constructed code have girth at least six. The give methods based on finite fields produce codes with high rate. Latin squares form a special type of combinatorial designs. Various methods are available for making Latin squares. In this thesis four methods are provided for constructing Latin squares. In This thesis four methods are provided for constructing Latin square. The proposed methods are: Making Latin squares on additive and multiplicative subgroups of a finite field, making Latin squares based on the integer ring Z n and constructing Latin squares based on Dihedral groups and p-hedral groups. A Latin square A of order is called a t-layer Latin square, if there exist t sub-matrice in A such that A is formed into a Latin square of order t by these t sub-matrices. Also, a Latin square A is called a sub square complete (in short SC) Latin square if A has two identical entrie located in different rows and columns of A which itself is Latin square. A Matrix A is called a t-SC-Latin square if the order of proper sub-Latin square is t. Finally, we show that our constructed Latin squares are t-SC-Latin squares, t-layer and quasi t-layer. By using the constructed Latin squares on the finite field, ring Z n and Dihedral groups, we form qc-LDPC codes. Latin squares constructed on the finite fields and Dihedral groups satisfy the row-column constraints. Therefore, the Tanner Graph associated to these Latin squares are free of cycles with length four. Simulation Results show that the so constructed codes perform well under sum-product iterative decoding algorithm.