This thesis considers a two dimensional cutting problem of cutting off a number of identical rectangular items from a rectangular sheet. A natural objective is to maximize the number of cut items so as to minimize the wasted area. The problem has many industrial applications, especially on pallet loading and stock cutting. Under the reasonable restriction that only guillotine cuts are permitted, we present an efficient recursive algorithm to obtain an optimal cutting pattern which contains maximum number of cut items. This result is very useful for the cutting of paper or glass where guillotine cuts are necessary. In addition, we propose another cutting problem which can be solved using this problem.