Motivated by a software development project in a shipbuilding company, we propose a production scheduling algorithm for the block assembly shop in a shipbuilding company. The problem is very complicated and time consuming because it should consider both scheduling and spatial arrangement of each block simultaneously. To reflect the scheduling dynamics, we propose an improved schedule policy, named the LCA (largest contact area) policy. Using real shipyard data, we showed that the block assembly scheduling system based on the policy made a good performance.