We consider a scheduling problem on a shipyard block assembly process. Given a set of blocks and a set of bays, we need to determine the bay and the starting time to assemble each block while satisfying the precedence constraints, the time window constraints and the resource constraints. We mainly consider two types of resources for each bay: space resource and man-power resource. Our primary objectives are to minimize the number of blocks failed to be scheduled and load balancing for man-power. To solve this problem, an algorithm based on CSP (Constraints Satisfaction Problem) technique is proposed. Computational experiences are reported for real world problems.