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 Monday, Jan. 14 Syllabus
OverviewChapter 1 of textbook Slides Wednesday, Jan. 16 Scanning:
Regular expressions and DFAsChapter 1, Section 2.1 Slides Wednesday, Jan. 23 Scanning:
DFAs and NFAsSection 2.2 of book Slides Friday, Jan. 25 Scanning:
NFA to DFA conversion
Intro to flexSection 2.2 of book Slides Monday, Jan. 28 Scanning:
More flexFlex tutorial
Flex manual
Flex bookSlides countcharandline.lex
abcdexample.lex
getusername.lex
zapme.lex
countwords.lexWednesday, Jan. 30 Parsing: CFGs Section 2.3 of book Lecture Notes Friday, Feb. 1 Parsing: CFGs with ambiguity and left recursion Section 2.3 of book Lecture Notes Monday, Feb. 4 Parsing: LL(1) grammars Section 2.3 of book Lecture Notes Wednesday, Feb. 6 Parsing: More on LL(1) Section 2.3 of book Lecture Notes Handout from class Friday, Feb. 8 Parsing: LL(1) example Section 2.3 of book Lecture Notes Handout from class Monday, Feb. 11 Parsing: LR and Bison Section 2.3 of book
Bison bookLecture Notes Wednesday, Feb. 13 Binding Chapter 3 of book Lecture Notes Friday, Feb. 15 Binding Chapter 3 of book Lecture Notes Monday, Feb. 18 Binding
Control flowEnd of chapter 3
Start of chapter 6Lecture Notes Wednesday, Feb. 20 Control Flow Chapter 6 of book Lecture Notes A Case against the GO TO Statement, by Edsger W. Dijkstra Friday, Feb. 22 Simple Variables Chapter 7 Lecture Notes Monday, Feb. 25 Variables Chapter 8 Lecture Notes Wednesday, Feb. 27 Subroutines Chapter 9 Lecture Notes Friday, March 1 Subroutines
Object OrientationChapter 9 Lecture Notes for 9
Lecture Notes for 10Wednesday, March 20 Haskell: intro Learn you a Hasekll Lecture Notes Friday, March 22 Haskell: lists Learn you a Hasekll
Haskell wikibookLecture Notes Monday, March 25 Haskell:
writing functions
higher order functionsLearn you a Hasekll
Haskell wikibookLecture Notes Wednesday, March 27 Haskell:
higher order functions
Data and Type declarationsLearn you a Hasekll
Haskell wikibookLecture Notes Friday, March 29 Haskell:
Modules
I/OLearn you a Hasekll
Haskell wikibookLecture Notes expression.hs Monday, April 1 Haskell:
FunctorsLearn you a Hasekll
Haskell wikibookLecture Notes BinaryTree.hs Wed and Fri, April 3 and 5 Functional programming: Lisp Mon and Wed, April 8 and 10 Functional programming:
C++ and PythonLecture Notes Friday, April 12 Haskell:
MonadsLearn you a Hasekll
Haskell wikibookLecture Notes BinaryTree.hs Monday, April 15 Intro to prolog Chapter 12 of book
Gentle intro to prologLecture Notes Wednesday, April 17 Prolog: backtracking, recursion and lists Chapter 12 of book
Learn Prolog Now!
Intro to Prolog Programming
Adventure in PrologLecture Notes Wednesday, April 24 Prolog: backtracking, recursion and lists (See last lecture's links) Lecture Notes family.pl Friday, April 26 Prolog: control flow
larger examplesProlog sample programs
Learn prolog via examplesLecture Notes dfa.pl
mapcoloring.plMonday, April 29 A taste of COBOL Lecture Notes Wednesday, May 1 Educaitonal Programming Languages Lecture Notes Friday, May 3 History of Programming Languages Lecture Notes Monday, May 6 Review session for final exam