Last 10 minutes of class on Monday, July 6, 2026.
Everyone takes the exam at the same time.
Programming languages as a discipline, theories of computer science, a little logic.
You will take the exam on paper. There is 10 minute time limit, or 15 minutes for those with time-and-a-half accommodations.
You may bring one sheet of paper with notes written on both sides.
Do each of the following to maximize your preparation:
Were you able to check off every box?
The learning objectives for the course up to this point in time include you having developed a familiarity with, and an ability to discuss:
The fact that active recall is better for acquiring long-term knowledge does not mean that outlines and concept maps are not useful. Learners should use multiple techniques—think “both and” rather than “either or.”
The Study of Programming Languages
Greetings in several human languages
Sum of even squares in multiple programming languages
Why study PLs
How to study PLs - the six dimensions
History
Language diversity
Impactful languages
Why languages were created
Language-independent concepts
Definitions
Statics and Dynamics
Big Questions
Ontologies
Naming
Evaluation
Control Flow
Types
Functional Abstraction
Modularity
Concurrency
Metaprogramming
Foundational theories (logic, math, information, computation)
Logic
Foundations of Math
Set Theory
Type Theory
Category Theory
Computation Theories
Syntax
Semantics
Pragmatics
Language Vision and Values
Evaluation
Technical Criteria
Nontechnical Criteria
Expressiveness
Tradeoff Analysis
Implementation
Theories of Computation, The Basics
What is a theory?
Organized body of knowledge with explanatory and predictive power
Why study theory?
To have a vocabulary for communication
To reason from more fundamental and precise principles
To predict and generate new knowledge
To not flail and guess and have our thinking stuck in a box
Big questions in computer science
What is computation?
What can and cannot be known through computation?
What can and cannot be computed?
What can and connt be efficiently computed?
Language Theory
Definition: how computations are expressed
Symbols
Alphabets
Strings
Languages
Functions
Automata Theory
Definition: how computations are carried out
Early computing machines
How and why Turing came up with his machine model
Representing a Turing Machine as a table
Representing a Turing Machine as a state diagram
Computability Theory
Definition: what computations are (theoretically)possible
Why not every function is computable
The simple counting argument: there are more functions than programs
Church-Turing Thesis
The Halting Problem
Complexity Theory
Definition: what resources are required for computations
Kinds of computability measures
P vs. NP
Logic (just the first part of the notes)
What it deals with
Basic notation
Encodings of various English statements
This is a mini-quiz which tests for immediate understanding of topics and not your ability to work out problems over an extended duration of time. There is a strict time limit so that your immediate fluency is tested rather than your ability to search the web (or worse, ask a chatbot), since these things take time. There will be 5–10 questions. Some may be multiple choice, multi-select, matching, and very short answer.
All content on the assigned readings is fair game for questions, so do not neglect the readings, and by all means do the recall questions!