This course takes a practical approach to scheduling problems and solution techniques, motivating the different mathematical definitions of scheduling with real world scheduling systems and problems. Topics covered include: job shop scheduling, timetabling, project scheduling, and the variety of solution approaches including constraint programming, local search, heuristics, and dispatch rules. Also covered will be information engineering aspects of building scheduling systems for real world problems.