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
OverviewChapter 1 of textbook Slides Friday, Jan. 19 Compilation Scanning and regular expressions Chapter 2 of textbook Slides Monday, Jan. 22 Scanning and DFA/NFAs Chapter 2 of textbook Slides Wednesday, Jan. 24 NFAs Chapter 2 of textbook Slides Friday, Jan. 26 Flex Flex tutorial
Flex manual
Flex bookSlides abcdexample.lex
zapme.lex
countcharandline.lex
countwords.lexMonday, Jan. 29 Context Free Grammars Chapter 2 of textbook Slides Wednesday, Jan. 31 CFGs and LL grammars Chapter 2 of textbook Slides Friday, Feb. 2 LL parsing: first and follow sets Chapter 2 of textbook Slides Monday, Feb. 5 LL parsing: another example
(guest lecturer: Dr. Fritts)Chapter 2 of textbook handout on LL parsing Wednesday, Feb. 7 Another LL parsing example Chapter 2 of textbook Slides Friday, Feb. 9 LR, plus some bigger examples Chapter 2 of textbook Slides Monday, Feb. 12 Scope and binding Chapter 3 of textbook Slides Wednesday, Feb. 14 Scope and binding Chapter 3 of textbook Slides Friday, Feb. 16 Control flow: expression evaluation Chapter 6.1,6.2 of textbook Slides Monday, Feb. 19 Control flow (cont) Chapter 6 (the rest) Slides Wednesday, Feb. 21 Data types Chapters 7 and 8 Slides Friday, Feb. 23 Data types
SubroutinesChapters 8 and 9 Slides Monday, Feb. 26 Subroutines Chapter 9 Slides Wednesday, Feb. 28 Object orientation Chapter 10 Slides Friday, March 2 Scripting and "high level" languages Chapter 14 Slides Monday, March 5 Scripting and "high level" languages Chapter 14 Slides Wednesday, March 7 Review session Friday, March 9 Midterm exam Monday, March 19 Prolog Why use prolog?
A gentle introduction to prologSlides Wednesday, March 21 Prolog Adventure in Prolog
Learn prolog now!Slides Friday, March 23 Prolog Adventure in Prolog
Lecture notes: An intro to prolog programmingSlides Monday, March 26 Prolog Adventure in Prolog
Prolog examples
More prolog examplesSlides dfa.pl
mapcoloring.plWednesday, March 28 Prolog Prolog examples Slides Wednesday, April 4 Haskell intro Learn you a Haskell
Intro to ghciSlides Friday, April 6 Haskell intro (cont.) Learn you a Haskell Slides Monday, April 9 Haskell: Typeclasses and higher order functions Learn you a Haskell Slides Wednesday, April 11 Haskell: Conditionals, guards, and more higher order functions Learn you a Haskell Slides Friday, April 13 Haskell: More higher order functions and data/types Learn you a Haskell
Making modules
Haskell wikibookSlides Monday April 16 through Wednesday April 25 See main announcements page Friday April 27 Recap of functional programming Monday April 30 COBOL Slides Wednesday, May 2 Educational programming Slides Wednesday, May 2 History and overview Slides Brief wrong history (funny)