The design, implementation, and validation of a knowledge-based system that schedules resources on the shop-floor is described. The system specifically schedules machine setup changes and is based on heuristics obtained from an expert scheduler. It is a reactive scheduling system and operates in real-time to provide support to the scheduler. The approach for the implementation is procedural, as opposed to declarative. A detailed example of scheduling for setup changes is provided that elucidates the logic of the program. The system is currently implemented at a manufacturing facility and is being used daily by a scheduler. Two methods of validation of the system are discussed, wherein the first method is to compare the schedules produced by the system with a historical record of setup changes executed on the shop-floor, and in the second method the schedules are judged by the scheduler. The results of the validation show the system to be successful.