Computer Science 340
Programming Languages

Fall 2023, 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 5 Lecture 1: Introduction and Overview Topic Notes: Introduction and Overview
September 7 Lecture 2: Overview of Languages; Python Basics; Lab 1: Python Basics for Java Programmers [HTML] [PDF] Sebesta Ch. 1
September 12 Lecture 3: Overview and Evolution of Languages; More Python; Lab 2: More Python for Java Programmers [HTML] [PDF] Sebesta Ch. 2
September 14 Lecture 4: Syntax and Semantics; Problem Set 1: [PDF] Out Sebesta Ch. 3.1-3.2; Topic Notes: Syntax and Semantics
September 19 Lecture 5: Syntax and Semantics; Lab 3: BNF and Parse Trees; Problem Set 2: [PDF] Out Sebesta Ch. 3.3
September 21 Lecture 6: Attribute Grammars Sebesta Ch. 3.4
September 26 Lecture 7: Introduction to Functional Programming and Haskell Topic Notes: Functional Programming; Learn You a Haskell for Great Good!
September 28 Lecture 8: Haskell; Lab 4: Haskell Practice [HTML] [PDF]
October 3 Exam 1, during class (Chapters 1-3)
October 5 Lecture 9: Lexical Analysis; Problem Set 3: [HTML] [PDF] Out Sebesta Ch. 4.1-4.2; Topic Notes: Lexical Analysis
October 10 Lecture 10: Parsing; Problem Set 4: [HTML] [PDF] Out Sebesta Ch. 4.3-4.4; Topic Notes: Parsing
October 12 Lecture 11: Parsing; Lab 5: More Syntax
October 17 Lecture 12: Names, Bindings, and Scopes Sebesta Ch. 5; Topic Notes: Names and Bindings
October 19 Lecture 13: Names, Bindings, and Scopes
October 24 Lecture 14: Datatypes; Problem Set 5: [HTML] [PDF] Out Sebesta Ch. 6.1-6.4; Topic Notes: Datatypes
October 26 Lecture 15: Datatypes Sebesta Ch. 6.5-6.9
October 31 Boo. Lecture 16: Datatypes; Language Project Intro; Review; Problem Set 6: [HTML] [PDF] Out; Language Project [HTML] [PDF] Sebesta Ch. 6.10-6.14
November 2 Exam 2, during class (Haskell, Chapters 4, 5, parts of 6)
November 7 Lecture 17: Expressions and Assignment Statements Sebesta Ch. 7; Topic Notes: Expressions and Assignment Statements
November 9 Lecture 18: Expressions and Assignment Statements; Problem Set 7: [HTML] [PDF] Out
November 14 Lecture 19: Control Structures Sebesta Ch. 8; Topic Notes: Control Structures
November 16 Lecture 20: Control Structures; Subprograms Sebesta Ch. 9; Topic Notes: Subprograms
November 21 Lecture 21: Subprograms Sebesta Ch. 10
November 23 No Classes, Happy Thanksgiving!
November 28 Lecture 22: Subprograms and Subprogram Implementations; Problem Set 8: [HTML] [PDF] Out
November 30 Lecture 23: Abstraction and Encapsulation Sebesta Ch. 11; Topic Notes: Abstraction and Encapsulation
December 5 Lecture 24: Object-Oriented Programming Support Sebesta Ch. 12; Topic Notes: Object-Oriented Programming Support
December 7 Lecture 25: Language Project Presentations
December 14 Final Exam, 11:00 AM-1:00 PM, RB TBD

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