the course CS304P by Professor Novak CS 304P: Computer Science I using Scheme Foundations of Computer Science