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. 17 Syllabus
Class overviewLecture Notes Friday, Jan. 19 Intro to Programming Languages Lecture Notes Monday, Jan 22 Snow Day Wed-Fri, Jan 24-26 Haskell: intro, history, functions, types, syntax Learn you a Hasekll Lecture Notes Mon-Wed, Jan 29-31 Haskell: lists, tuples, recursion, ranges, comprehensions Learn you a Hasekll
Haskell wikibookLecture Notes Fri-Wed, Feb 2-7 Haskell:
writing functions, type classes, currying, pattern matching, guards, higher order functionsLearn you a Hasekll
Haskell wikibookLecture Notes Friday, Feb. 9 No Class - Wellness Day Mon-Wed, Feb 12-14 Haskell:
Data and Type declarationsLearn you a Hasekll
Haskell wikibookLecture Notes Mon-Wed, Feb 19-21 Haskell:
Modules
I/OLearn you a Hasekll
Haskell wikibookLecture Notes expression.hs Fri-Mon, Feb 23-26 Haskell:
FunctorsLearn you a Hasekll
Haskell wikibookLecture Notes BinaryTree.hs Feb 28, Mar 4 Haskell:
Applicatives, MonadsLearn you a Hasekll
Haskell wikibookLecture Notes Mar 1 Midterm Review Functional programming:
C++ and PythonLecture Notes Friday, March 11 No Class - Spring Break Friday, March 13 No Class - Spring Break Friday, March 15 No Class - Spring Break Monday, March 18 Scanning:
Regular expressions and DFAsChapter 1 of book Slides Friday, March 22 Midterm Evaluation & Review Slides Monday, March 25 Scanning:
DFAs and NFAs
NFA to DFA conversionSection 2.2 of book Slides Scanning:
FlexSection 2.2 of book Slides Scanning:
More flexFlex tutorial
Flex manual
Flex bookSlides countcharandline.lex
abcdexample.lex
getusername.lex
zapme.lex
countwords.lexParsing: CFGs Section 2.3 of book Lecture Notes Friday, March 29 No Class - Easter Break Monday, April 1 No Class - Easter Break Parsing: CFGs with ambiguity and left recursion Section 2.3 of book Lecture Notes Parsing: LL(1) grammars Section 2.3 of book Lecture Notes Parsing: More on LL(1) Section 2.3 of book Lecture Notes Handout from class Parsing: LL(1) example Section 2.3 of book Lecture Notes Handout from class Parsing: LR and Bison Section 2.3 of book
Bison bookLecture Notes Binding Chapter 3 of book Lecture Notes Conclusion Lecture Notes Monday, May 6 Review session for final exam