Higher Education Institutions (HEIs) embrace online learning in their endeavour to improve course delivery. Some HEIs attempt to provide course delivery where learners access all activities in an online mode and asynchronously. Other HEIs with a bricks and mortar model have employed blended learning and thereby provide course delivery both online and face-to-face. Where a Higher Education Institution's course delivery offering has any synchronous activity or has course delivery resources that are shared, the institution is required to solve the problem of scheduling teaching activities and/or assessments periodically throughout its existence. Authors have shared interest in solving the course delivery scheduling problem in view of the same being a non-deterministic polynomial (NP) problem. Course delivery scheduling assigns courses to access limited resources of rooms in a minimal time. A number of algorithms have been provided as a means to the problem including exact methods, matrices max-flow min-cut, graph coloring and non-directed network solution. We have identified the intricacies of the algorithms, and used same to provide Ricoche, an open-source, web-based, learner-centric solution. Ricoche provides for the usage of prior or current year registration, priority teaching constraints and course concurrency, and generates a clash matrix of course pairs and number of potential student clashes. The system uses graph colouring with heuristics as the basis for schedule generation and via a 3-dimensional day-time-room matrix, determines a solution towards optimality by minimizing clashes amidst day-time-room-teacher relations. Ricoche allows setup of course, student, teacher, room and other constraints manually or through interface with other systems; the system was tested with Banner by Ellucian. Ricoche was also tested and worked seamlessly in the Moodle environment. An instantiation of the system provides 23% decrease in student course clashes, 7% decrease in room allocation clashes and 26% improvement in course spread for examination scheduling.