Each summer, Sylvia Hatchell, coach of the Carolina women's basketball team, hosts several basketball camps for High School and Junior High women's teams. Participating teams are divided into leagues based on their school level (Junior High, Junior Varsity and Varsity) and level of competition.  Her husband, Carl Hatchell, is the women's basketball and softball coach at Meredith College in Raleigh, N.C., as well as one of the staff members involved in coordinating the camps each year.  His interest in eliminating some of the tedium and headaches involved in scheduling games has prompted him to enlist the services of the Computer Science Department at UNC-CH; specifically, a team of students whose goal for the spring semester of 2000 is to design and create a user-friendly software tool to create camp schedules.

    With between 70 and 100 teams participating in each camp, more than four hundred individual games must be scheduled and assigned to the available courts located in Carmichael Auditorium, the Smith Center, Fetzer Gym, Woollen Gym, and other venues as they become available. Each court has specific temporal availabilities,  and the camp itself has specific court-related constraints (every team must play twice in the Smith Center, high school teams must play once in Carmichael, etc.) In addition, a certain level of equity and priority is necessary in assigning teams to games/courts, as there are varsity teams (which are sub-divided into four skill levels), junior varsity teams, and junior high teams all playing simultaneously at the same camp.   Since there are so many details and constraints, the task of scheduling more than four hundred games is quite daunting and needs to be effectively automated.

    HOOPScheduler is a software tool to help the staff of the Sylvia Hatchell Basketball Camp schedule games. The goal of this project team is to create a scheduling tool that will schedule games according to user-specified constraints.  In addition, the tool needs to be flexible, allowing the user to modify the schedule using a drag and drop interface and to schedule games between leagues if desired.  To accomodate manual changes, the tool must notify the user of scheduling constraints that will be broken if a certain change takes place.  The user must be able to either accept the change, or cancel the transaction.  An additional function of the tool is to analyze a schedule and display a report of games, teams and locations ( in several different formats), as well as any scheduling decisions that are not optimal.