General Information

Third core CS course for a CS Minor or Concentration. Advanced programming course that emphasizes functional programming techniques and data structures. OCaml is the principal programming language. The course page can be found here.

Prerequisites

CS 2110 or equivalent programming experience. Prerequisite or corequisite: CS 2800. Should not be taken concurrently with CS 3410 or CS 3420.

Topics Covered

  • Recursive and higher-order procedures
  • Models of programming language evaluation and compilation
  • Type systems
  • Polymorphism
  • Graph algorithms
  • Balanced trees
  • Memory heaps
  • Garbage collection
  • Analyzing program performance and correctness

Workload

General Advice

Testimonials

Past Offerings