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

CS 3200: Programming Languages
Spring 2018

Erin Chambers
Contact Info: echambe5 - at - slu.edu
Office: 301 Ritter Hall
Office Hours: 2-3pm Monday, 10-11 Tuesday, 1-2pm Wednesday, 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. 17 Syllabus
Overview
Chapter 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 book
Slides abcdexample.lex
zapme.lex
countcharandline.lex
countwords.lex
Monday, 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
Subroutines
Chapters 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 prolog
Slides
Wednesday, March 21 Prolog Adventure in Prolog
Learn prolog now!
Slides
Friday, March 23 Prolog Adventure in Prolog
Lecture notes: An intro to prolog programming
Slides
Monday, March 26 Prolog Adventure in Prolog
Prolog examples
More prolog examples
Slides dfa.pl
mapcoloring.pl
Wednesday, March 28 Prolog Prolog examples Slides
Wednesday, April 4 Haskell intro Learn you a Haskell
Intro to ghci
Slides
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 wikibook
Slides
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)