Course Home | Course Policies | Assignments | Schedule & Lecture Notes

CS 3200: Programming Languages
Spring 2024


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 overview
Lecture 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 wikibook
Lecture Notes
Fri-Wed, Feb 2-7 Haskell:
writing functions, type classes, currying, pattern matching, guards, higher order functions
Learn you a Hasekll
Haskell wikibook
Lecture Notes
Friday, Feb. 9 No Class - Wellness Day
Mon-Wed, Feb 12-14 Haskell:
Data and Type declarations
Learn you a Hasekll
Haskell wikibook
Lecture Notes
Mon-Wed, Feb 19-21 Haskell:
Modules
I/O
Learn you a Hasekll
Haskell wikibook
Lecture Notes expression.hs
Fri-Mon, Feb 23-26 Haskell:
Functors
Learn you a Hasekll
Haskell wikibook
Lecture Notes BinaryTree.hs
Feb 28, Mar 4 Haskell:
Applicatives, Monads
Learn you a Hasekll
Haskell wikibook
Lecture Notes
Mar 1 Midterm Review
Functional programming:
C++ and Python
Lecture 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 DFAs
Chapter 1 of book Slides
Friday, March 22 Midterm Evaluation & Review Slides
Monday, March 25 Scanning:
DFAs and NFAs
NFA to DFA conversion
Section 2.2 of book Slides
Scanning:
Flex
Section 2.2 of book Slides
Scanning:
More flex
Flex tutorial
Flex manual
Flex book
Slides countcharandline.lex
abcdexample.lex
getusername.lex
zapme.lex
countwords.lex
Parsing: 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 book
Lecture Notes
Binding Chapter 3 of book Lecture Notes
Conclusion Lecture Notes
Monday, May 6 Review session for final exam