|
CS 341 - Principles of Programming Languages
Syllabus |
Below is a list of course topics. Specific readings are on the
"Readings" page, accessible from the course home page.
- Introduction to Scheme
- REPL: Read-Eval-Print Loop
- Operators and Operands
- Identifiers, Whitespace, and Comments
- Fundamental Types
- Variables and Assignments
- Pairs and Lists
- Lambda Expressions
- Control Constructs
- Binding Constructs
- Equivalence
- More List Operators
- Output
- High-Level Programming Language Learning
- Basic Constructs
- Common Idioms
- Progression of Exercises
- Interpreter Programming
- Lexical Analysis with Regular Expressions
- Syntactic Analysis with Context Free Grammars
- Abstract Versus Concrete Syntax Trees
- Recursive Descent Parsing, Ambiguity, and Lookaheads
- Interpretation via Recursive Parse Tree Traversal
- Programming Language Concepts
- Variable Environments, Scoping, and Binding
- Functional Closures
- First-Class Objects
- Primitive and Compound Types
- Static Versus Dynamic Typing
- Memory Management: Manual, Automated (Garbage Collection, Ownership/Scope)
- Introduction to Python
- Introduction to Rust
Note: This syllabus is provided solely for review purposes and is subject to
change. It is not exhaustive and does not constitute a guarantee of what will
or will not be covered in exams.