Programming Language Concepts (CMPSC 201)

Fall 2020

Course Schedule

The required course textbook "Programming Language Pragmatics" is abbreviated as PLP in the schedule.

Module 1: Foundations

Sep. 1 - 8: Introduction. Art of language design. Why programming languages? Slides Compilation vs. interpretation. Slides
Reading: Chapter 1 in PLP
Sep. 10 - 22: Syntax: grammars, scanning Slides. Parsing: Slides. Parsing Algorithms: Slides
Reading: Chapter 2 in PLP
Sep. 24 - 29: Scope, names, binding. Slides. Storage Management. Slides
Reading: Chapter 3 in PLP
Oct. 1 - 6: Review on Oct. 1 and Exam I on Oct. 6

Module 2: Language Design

Oct. 8 - 20: Control Flow: Expression Evaluation (6.1.1-6.1.4) Slides. Short-Circuit Evaluation, Selection, Structured/Unstructured Flow (6.1.5, 6.4, 6.2) Slides. Iteration and Recursion (6.6.1). Slides. Loop Unrolling Activity
Reading: Chapter 6 in PLP
Oct. 22 - 29: Type Systems: Data Types (7.1.1-7.1.4, 8.1) Slides. Composite Types (8.2, 8.4, 8.5) Slides.
Reading: Chapters 7-8 in PLP
Nov. 3 - 5: Subroutines (9.3-9.5) Slides.
Reading: Chapter 9 in PLP

Module 3: Language Models

Nov. 10: Functional Programming (11.1-11.2) Slides.
Reading: Chapter 11 in PLP
Nov. 12: OOP (10.1, 10.2, 10.3.1, 10.4.1) Slides.
Reading: Chapter 10 in PLP

Module 4: Implementation and Security

Nov. 17: Security Slides.
Nov. 19: NetApp Presentation "Different languages for different purposes and Getting hired based on language knowledge"

Exam and Project Work

Nov. 24 - Dec. 3:

Nov. 24: Asynchronous project work. Exam II Information Released.

Dec. 1: Synchronous Class Session: Finish "Security" discussion. Exam II Review.

Dec. 1 Lab: Project Code Walkthrough.

Dec. 3 (Asynchronous): Exam II Released, DUE on December 7.