Computer Science 340
Programming Languages

Fall 2019, Siena College

Course Schedule

"Sebesta" indicates readings from Concepts of Programming Languages, Twelfth Edition, by Robert W. Sebesta. Additional readings will be given occasionally. Links will be added here to an outline for each lecture, the full text of each lab assignment, PDFs of my notes for each topic, and to copies of additional readings when available electronically. Note: all assignment and exam dates are subject to change until the actual assignment or exam is made available.

Date

Topic and/or Event Readings Due
September 4 Lecture 1: Introduction and Overview Topic Notes: Introduction and Overview
September 6 No Class: State of the Map US 2019 Sebesta Ch. 1
September 9 Lecture 2: Overview of Languages; Lab 1; Lab 1: GitHub and Unix Topic Notes: Overview of Languages
September 11 Lecture 3: Overview of Languages
September 13 Lecture 4: Languages Overview Wrapup; Pointers in C Sebesta Ch. 2
September 16 Lecture 5: Syntax and Semantics Sebesta Ch. 3.1-3.3; Topic Notes: Syntax and Semantics
September 18 Lecture 6: Syntax and Semantics; Lab 2: BNF and Parse Trees (paper handout)
September 20 Lecture 7: Attribute Grammars Sebesta Ch. 3.4
September 23 Lecture 8: Lexical Analysis Sebesta Ch. 4.1-4.2
September 25 Lecture 9: Parsing Sebesta Ch. 4.3-4.4
September 27 Lecture 10: Parsing Wrapup; Lab 3: More Syntax (paper handout)
September 30 Lecture 11: Functional Programming; Learn You a Haskell for Great Good! Topic Notes: Functional Programming; Learn You a Haskell for Great Good!
October 2 Lecture 12: Haskell
October 4 Lecture 13: Haskell
October 7 Lecture 14: Haskell
October 9 Lecture 15: Names, Bindings, and Scopes Sebesta Ch. 5; Topic Notes: Names and Bindings
October 11 No class: President's Holiday
October 14 Lecture 16: Review
October 14 Evening Exam, available 6-10 PM
October 16 Lecture 17: Language Project Intro; Exam 1 Recap; A Little More Haskell; Language Project [HTML] [PDF]
October 18 Lecture 18: Datatypes Topic Notes: Data Types; Sebesta Ch. 6.1-6.9
October 21 Lecture 19: Datatypes Sebesta Ch. 6.10-6.14
October 23 Lecture 20: Datatypes Wrapup
October 25 No class: CCSC Eastern
October 28 Lecture 21: Expressions and Assignment Statements Sebesta Ch. 7; Topic Notes: Expressions and Assignment Statements
October 30 Lecture 22: Control Structures Sebesta Ch. 8; Topic Notes: Control Structures
November 1 Lecture 23: Control Structures Wrapup
November 4 Lecture 24: Subprograms Sebesta Ch. 9; Topic Notes: Subprograms
November 6 Lecture 25: Subprograms; Lab 4: Callback Functions in C
November 8 Lecture 26: Subprograms
November 11 Lecture 27: Subprogram Implementation Sebesta Ch. 10
November 13 Lecture 28: Abstraction and Encapsulation Sebesta Ch. 11; Topic Notes: Abstraction and Encapsulation
November 15 Lecture 29: Abstraction and Encapsulation Wrapup; OOP Implementation Issues Sebesta Ch. 12; Topic Notes: Object-Oriented Programming Support
November 18 Lecture 30: OOP Implementation Issues
November 20 Lecture 31: OOP Implementation Issues
November 22 Lecture 32: OOP Implementation Issues Wrapup
November 25 No Class Meeting; Evening Exam, available 6-10 PM, RB 210
November 27-29 No Classes, Happy Thanksgiving!
December 2 Snow Day!
December 4 Lecture 33: Exam 2 Recap; Course Wrapup
December 6 Lecture 34: Language Project Presentations
December 9 Lecture 35: Language Project Presentations
December 11 Lecture 36: (9:00-10:30 AM Exam Slot) Language Project Presentations

Credits: Notes include information from Concepts of Programming Languages, 12th edition, Sebesta, 2019 (and earlier editions); David Goldschmidt; Darren Lim; Neal M. Mazur.