Spring 2018

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.

DateTopicReadingLecture NotesSupplemental ExamplesWednesday, Jan. 17 Syllabus

OverviewChapter 1 of textbook Slides Friday, Jan. 19 Compilation

Scanning and regular expressionsChapter 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)