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; they also will not contain exercises whose solutions are worked out on the board in class. Please plan accordingly to either take notes or get them from a friend if necessary.
Date Topic Reading Lecture Notes Supplemental Examples Wednesday, Jan. 18 Syllabus
OverviewChapter 1 of textbook Slides Friday, Jan. 20 Compilers
Regular expressionsSections 1.6, 2.1
Extra reference - see chapter 2Slides Monday, Jan. 23 DFAs and NFAs
ScannersSections 2.1,2,2
Extra reading - see chapter 5 and 7 in particularSlides Wednesday, Jan. 25 Scanners and flex Flex manual
Flex tutorialSlides Friday, Jan. 27 Flex
Intro to parsingFlex book Slides count.lex
ccomments.lexMonday, Jan. 30 Binding
ScopeChapter 3 of the textbook Slides Wednesday, Feb. 1 Binding and Scope (cont) Chapter 3 of the textbook Slides Monday, Feb. 6 Control flow:
Expressions and statementsChapter 6 of the textbook Slides Wednesday, Feb. 8 Control flow:
LoopsChapter 6 of the textbook Slides Friday, Feb. 10 Control flow:
Recursion and control flowChapter 6 of the textbook Slides Monday, Feb. 13 Context Free Grammars Chapter 2 of the textbook (substitute teacher) Wednesday, Feb. 15 First and follow sets Chapter 2 of the textbook (substitute teacher) Friday, Feb. 17 LL parsing Chapter 2 of the textbook (substitute teacher) Handout from class Monday, Feb. 20 LL parsing Chapter 2 of the textbook (substitute teacher) Wednesday, Feb. 22 LR parsing Chapter 2 of the textbook (substitute teacher) Example done in class Friday, Feb. 24 Types Chapter 7 of the textbook Slides Monday, Feb. 27 Types Chapter 8 of the textbook (4th edition)
Chapter 7 (2nd half) if you have the 3rdSlides Wednesday, March 1 Subroutines Chapter 9 (4th edition)
Chapter 8 (3rd edition)Slides Friday, March 3 Object orientation Chapter 10 (4th edition)
Chapter 9 (3rd edition)Slides Monday, March 6 Overview of Lisp Wednesday, March 8 More Lisp Friday, March 10 Midterm exam Monday, March 20 Haskell: introduction Learn you a Haskell
Haskell: intro to ghciSlides Wednesday, March 22 More Haskell Slides Friday, March 24 Haskell: Types and Higher order functions Slides Monday, March 27 Haskell: More with higher order functions
Let, if, and syntax detailsSlides Wednesday, March 29 Haskell: Foldr
Types and dataSlides Friday, March 31 Haskell: More types
ModulesSlides expressions.hs Monday, April 3 Haskell: Modules
IONice overview of making modules Slides Wednesday, April 5 Haskell: Functors
MonadsHaskell wikibook Slides bst.hs Friday, April 7 Haskell: Monads
ApplicativeAbout Monads
Functors, applicatives and monads in pictures
Nice talk on monads
Why all monad tutorials are awfulSlides Monday, April 10 Intro to prolog Gentle intro to prolog
Why use prolog?
Learn prolog now bookSlides Swish, an online prolog editor Wednesday, April 12 More prolog: lists and unification Slides Swish, an online prolog editor Wednesday, April 19 More prolog: numbers and control flow Learn Prolog Now Slides DFA in prolog Friday, April 21 More prolog: control flow, final examples DFA.pl
mapcoloring.plSlides DFA in prolog Bigger map coloring in prolog Monday, April 24 Concurrency Slides Friday, April 28 Educational Programming Slides Monday, May 1 COBOL Slides Wednesday, May 3 Scripting languages Slides Friday, May 5 History of programming Slides Monday, May 8 Last class: review session