This page links to lecture notes.

I have tried to make these notes as accurate as possible, but there may be mistakes. Please send me an email if you find a mistake.

This page links to lecture notes.

I have tried to make these notes as accurate as possible, but there may be mistakes. Please send me an email if you find a mistake.

Documents

- Lecture 1: Syntax, Regular Languages and Regular Expressions
- Lecture 2: Finite Automata, Lexical Analysis
- Lecture 3: Designing Finite Automata, Eliminating Nondeterminism
- Lecture 4: Context-Free Languages, Parsing, Ambiguity
- Lecture 5: Eliminating Ambiguity, Recursive Descent Parsing
- Lecture 6: Precedence Climbing, Abstract Syntax Trees
- Lecture 7: Turing Machines
- Lecture 8: Decidability and the Halting Problem
- Lecture 9: Decidability of Regular Languages
- Lecture 10: Ruby
- Lecture 11: Ruby Arrays, Hashes, Mixins
- Lecture 12: Metaprogramming in Ruby
- Lecture 13: Io
- Lecture 14: Io Messages
- Lecture 15: Prolog
- Lecture 16: More Prolog
- Lecture 17: Scala
- Lecture 18: Functional Programming in Scala
- Lecture 19: Operator Overloading in Scala
- Lecture 20: Actors in Scala
- Lecture 21: Erlang
- Lecture 22: More Erlang
- Lecture 23: Concurrency in Erlang
- Lecture 24: Clojure
- Lecture 25: More Clojure
- Lecture 26: Haskell