Spring 2017

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.

DateTopicReadingLecture NotesSupplemental ExamplesWednesday, Jan. 18 Syllabus

OverviewChapter 1 of textbook Slides Friday, Jan. 20 Compilers

Regular expressionsSections 1.6, 2.1

Extra reference - see chapter 2Slides Monday, Jan. 23 DFAs and NFAs

ScannersSections 2.1,2,2

Extra reading - see chapter 5 and 7 in particularSlides Wednesday, Jan. 25 Scanners and flex Flex manual

Flex tutorialSlides Friday, Jan. 27 Flex

Intro to parsingFlex book Slides count.lex

ccomments.lexMonday, Jan. 30 Binding

ScopeChapter 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 statementsChapter 6 of the textbook Slides Wednesday, Feb. 8 Control flow:

LoopsChapter 6 of the textbook Slides Friday, Feb. 10 Control flow:

Recursion and control flowChapter 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 3rdSlides 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 ghciSlides 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 detailsSlides Wednesday, March 29 Haskell: Foldr

Types and dataSlides Friday, March 31 Haskell: More types

ModulesSlides expressions.hs Monday, April 3 Haskell: Modules

IONice overview of making modules Slides Wednesday, April 5 Haskell: Functors

MonadsHaskell wikibook Slides bst.hs Friday, April 7 Haskell: Monads

ApplicativeAbout Monads

Functors, applicatives and monads in pictures

Nice talk on monads

Why all monad tutorials are awfulSlides Monday, April 10 Intro to prolog Gentle intro to prolog

Why use prolog?

Learn prolog now bookSlides 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.plSlides 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