I've taught a number of different courses in the CS curriculum, including
CSCI 1103 and CSCI 3366 have been the mainstays of my teaching, and far and away my best courses.
This Honors course has three principal themes: 1. to introduce the subject matter of computer science – computation, 2. to help the student develop the skill of coding, and 3. to introduce students to the curriculum of computer science as an academic discipline. The course uses the OCaml dialect of the ML programming language.
This course focusses on the design, specification and implementation of modern programming languages. The course emphasizes the role of type systems in programming language design and implementation. Over the years, the course evolved into a hybrid programming languages/compiler course where students developed several of the major components of a working compiler for a subset of the C programming language.