CMSC 245: Programming Languages
Syllabus -- Fall 2021
This document will evolve through the semester. Looking forward it expresses a plan. Looking backward, it expresses what actually happened.
- Topic 1: Introduction
What is "Programming Languages"- Text: Chapter 1.1
- Topic 2: Thinking about programming languages
- Text: Ch 1.2--1.4, 1.6.4
- exclude text sections 1.5 and 1.6.-1.6.3
- Topic 3: The Go language
- Various topics from "The Go Programming Language"
- Topic 4: Names, Scopes and Bindings
- Scott: ch 3.1-3.3, 3.5-3.7
- Exclude: "access to non-local objects" in 3.3.2; all material in grey boxes; all of section 3.4; 3.6.4 lambda Expressions; 3.7, 3.8
- Topic 5: Sep 27, Oct 3, 5 -- NOT on first midterm. Control Flow
- Scott: 6.1-6.6
Dijkstra's critique of GotoNot discussed
- Topic 6: Functional Programming & the PL Elixir
Oct 17, 19, 24, 26- Scott: 11.1-11.2, 11.6
- Various topics but essentially all of chapters 1-5 (only up to "using comprehensions") from Learn functional programing with Elixir
- Most of subsections 1-10 in https://elixir-lang.org/getting-started/introduction.html
- Topic 8: Type Systems
- Scott: Ch 7
skip 7.2.4, subrange types, - Week of Nov 8
- Scott: Ch 7
- Topic 9: Composite Types
- Scott: Ch 8 skipping 8.1.2, 8.1.3 and 8.2.2 (on Dope Vectors)
- Week of Nov 15
- Topic 10: Subroutines
- Scott: Ch 9, skipping 9.2, 9.3.1, 9.4.3 and 9.5
- Week of Nov 22
- Topic 11: Object Orientation
- Scott: ch 11
- Not reached
- Topic 12: Concurrency
- Scott: ch 13, skip: 13.1.2, 13.2.3 (except fork/join and Box 13.3) 13.3 except 13.3.5, 13.4.1, 13.4.2, 13.4.4, 13.4.5