Generating an optimal solution for university student timetables for a specific year of a specific school. The problem will treated as a weighted constraint satisfaction problem and will attempted to be solved using a evolutionary algorithm. Parallel processing over a number of separate machines may also be implemented in order to generate a more optimal solution. Various constraints will be taken into account, with different levels of importance; some of the most important constraints will be: Lecturer availability, room availability, student availability (avoid clashes) and room size.