Here is this semester's tentative schedule; we will update it as the semester progresses.
Please note that lecture notes are provided as a supplement, and are NOT a substitute for attending lecture. In particular, these are not guaranteed, so expect technical difficulties to prevent them from being posted at least a few times in the semester, and plan accordingly to either take notes or get them from a friend if necessary.
Date Topic Reading Lecture Notes Supplemental Examples Monday, Jan. 11 Syllabus
OverviewChapter 1 of textbook Lecture Notes Wednesday, Jan. 13 Compilers
Regular expressionsSections 1.6, 2.1 Lecture Notes Friday, Jan. 15 Scanning and Flex Documentation
A tutorial
Nice overviewLecture Notes First example
Second exampleFriday, Jan. 22 DFAs, NFAs, and regular expressions Sections 2.2 Lecture Notes Monday, Jan. 25 CFGs: CNF and CYK Sections 2.2,2.3 Lecture Notes Extra reference, lectures 11 and 12 Wednesday, Jan. 27 CFGs: CNF and CYK Sections 2.3 Lecture Notes Extra reference, lectures 11 and 12 Friday, Jan. 29 CFGs: LL and LR Sections 2.3 Lecture Notes Monday, Feb. 1 Parsing Section 2.3 Lecture Notes Wednesday, Feb. 3 Bindings and Scope Chapter 3 Lecture Notes Friday, Feb. 5 Bindings and Scope Chapter 3 Lecture Notes Monday, Feb. 8 Expressions, Statements, and flow of execution Chapter 6.1-6.3 Lecture Notes Wednesday, Feb. 10 Sequencing, selection, and recursion Chapter 6.3-6.10 Lecture Notes Dijkstra's GOTO article Friday, Feb. 12 Type checking, records and arrays Chapter 7.1-7.4 Lecture Notes Monday, Feb. 15 Pointers and recursive types, file I/O Chapter 7.4-7.10 Lecture Notes Wednesday, Feb. 17 Methods and control abstraction Chapter 8 Lecture Notes Friday, Feb. 19 More on methods Chapter 8 Lecture Notes Monday, Feb. 22 Intro to Haskell Gentle intro to Haskell
Learn you a Haskell
Programming in HaskellLecture Notes Can programming be liberated from the von Neumann style? Wednesday, Feb. 24 Haskell: types and functions Lecture Notes Friday, Feb. 26 Haskell: Typeclasses and higher order functions Lecture Notes Monday, Feb. 29 Haskell: Type and data definitions Lecture Notes Wednesday, March 2 Exam review Friday, March 4 Midterm exam Wednesday, March 16 Haskell: Type declarations Lecture Notes Friday, March 18 Haskell: Types and Modules Lecture Notes Monday, March 21 Haskell: Modules and I/O Lecture Notes Wednesday, March 23 Haskell: Functors and Monads Notes from lecture Wednesday, March 30 Intro to Prolog Learn Prolog Now
Learning prolog via examples
Intro to prologLecture Notes firstexample.pl Friday, April 1 Prolog Lecture Notes lines.pl
descend.plMonday, April 4 Prolog Lecture Notes Wednesday, April 6 Prolog Lecture Notes Friday, April 8 Prolog: final examples DFA parsing
Graph coloringMonday, April 11 Scripting languages Chapter 13 of text Lecture Notes Wednesday, April 13 Scripting languages Chapter 13 of text Lecture Notes Friday, April 15 Scripting languages Chapter 13 of text Lecture Notes Monday, April 18 Concurrency Chapter 12 of text Lecture Notes Friday, April 22 Concurrency Chapter 12 of text Lecture Notes Monday, April 25 COBOL Lecture Notes Friday, April 29 Teaching languages Lecture Notes Monday, May 2 Historical overview Lecture Notes