I assume that everyone in the class has passed CSC-MTH 254 (Discrete Structures) or an equivalent course covering Boolean logic and algebra, graphs and trees, and perhaps recurrence relations. I also assume that everyone in the class has passed one or more programming courses; I don't care about the language, as long as you have written and debugged a number of programs and are familiar with the notions of algorithm, recursion, loop, array, list, etc.