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

CS 3200: Programming Languages
Spring 2017

Erin Chambers
Contact Info: echambe5 - at - slu.edu
Office: 301 Ritter Hall
Office Hours: Monday 11-1, Friday 1-2, or by appointment


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
Overview
Chapter 1 of textbook Slides
Friday, Jan. 20 Compilers
Regular expressions
Sections 1.6, 2.1
Extra reference - see chapter 2
Slides
Monday, Jan. 23 DFAs and NFAs
Scanners
Sections 2.1,2,2
Extra reading - see chapter 5 and 7 in particular
Slides
Wednesday, Jan. 25 Scanners and flex Flex manual
Flex tutorial
Slides
Friday, Jan. 27 Flex
Intro to parsing
Flex book Slides count.lex
ccomments.lex
Monday, Jan. 30 Binding
Scope
Chapter 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 statements
Chapter 6 of the textbook Slides
Wednesday, Feb. 8 Control flow:
Loops
Chapter 6 of the textbook Slides
Friday, Feb. 10 Control flow:
Recursion and control flow
Chapter 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 3rd
Slides
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 ghci
Slides
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 details
Slides
Wednesday, March 29 Haskell: Foldr
Types and data
Slides
Friday, March 31 Haskell: More types
Modules
Slides expressions.hs
Monday, April 3 Haskell: Modules
IO
Nice overview of making modules Slides
Wednesday, April 5 Haskell: Functors
Monads
Haskell wikibook Slides bst.hs
Friday, April 7 Haskell: Monads
Applicative
About Monads
Functors, applicatives and monads in pictures
Nice talk on monads
Why all monad tutorials are awful
Slides
Monday, April 10 Intro to prolog Gentle intro to prolog
Why use prolog?
Learn prolog now book
Slides 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.pl
Slides 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