Week of June 1st

This week we’ll be doing a lot of hands-on work to get up to speed on
the first language in the course: Ruby.

  • June 1: Introduction, setting up Ruby
  • June 2: Ruby 1
  • June 3: Ruby 2
  • June 4: Ruby objects and classes
  • June 5: Ruby examples and Quiz 1

Week of June 8th

The main focus of this week is to touch on Ruby’s notion of object orientation, and to concentrate on how regular expressions are implemented.

  • June 8: Ruby objects and metaprogramming
  • June 9: Introducing DFAs
  • June 10: Converting REs to NFAs
  • June 11: Converting NFAs to DFAs
  • June 12: Minimizing DFAs Quiz 2

Week of June 15th

Our goal is to learn as much OCaml as possible. The purpose of this week is explaining how to program in OCaml via a variety of small examples and to build up to implementing project 3.

Find the OCaml lectures here

Week of June 22nd

The midterm exam is this week. We begin covering lambda calculus, and also cover big step semantics for a stipped down version of OCaml.

Week of June 29th

This week we’re covering small step semantics and the CEK machine.

List of topics each week

The course schedule has not yet been finalized, but will cover these
major topics:

  • Week 1: Ruby
  • Week 2: Ruby objects / Finite Automata
  • Week 3: OCaml: Lists / Recursion / Higher order functions
  • Week 4: Type Systems / Polymorphism
  • Midterm 1 (June 26)
  • Week 5: Module systems / Operational Semantics / Parameter passing
  • Week 6: Object systems / CFGs and Parsing
  • Week 7: Logic Programming
  • Week 8: Garbage Collection / Implementations
  • Final (July 24)

As new content becomes available, I will add notes, readings, and
assignment due dates.

Midterm and Final

The two major exams in the course are the midterm and final. The
midterm will cover roughly the material from the first half of the
course. The final will be cumulative, but will emphasize material fom
the second half of the course.

The midterm and final will both take place on Fridays during the
regularly scheduled class time (2:30-3:50PM)