CSCI 3366 Principles of Programming Languages
This course studies issues in programming language design and implementation. Language features like statically scoped variables, higher-order functions, static type-checking, recursion and pattern-matching are considered, from the points of view of both language users and language implementors. The class also introduces the functional programming paradigm, using a language like Haskell or OCaml. Other topics considered include garbage collection, tail recursion, and basics of parsing. Finally, the class introduces computer theorem-proving, using an advanced language like Agda, for reasoning about functional programs. The graded work of the class consists of regular short programming assignments as well as a more substantial project
Course overview
- Department
- Computer Science
- School
- MCAS
- Credits
- 3
- Level
- Undergraduate
- Offered
- Periodically
Catalog details
- Prerequisites
- Discrete Math and Strong programming skills are required.
Requirements fulfilled
- Computer Science B.A.: CSCI 2000-level-or-higher elective (Current University Catalog; students should confirm their catalog year)
- Computer Science B.A.: CSCI 3000-level-or-higher elective (Current University Catalog; students should confirm their catalog year)
- Computer Science B.S.: CSCI 3000-level-or-higher elective (Current University Catalog; students should confirm their catalog year)
- Mathematics B.S.: Natural science, computer science, or economics corequisites (Current University Catalog; students should confirm their catalog year)
Course evaluations
- Course rating
- 3.85 / 5 · Very Good
- Instructor rating
- 4.30 / 5 · Very Good
- Terms evaluated
- 3
| Term | Instructor | Course overall | Instructor overall | Well organized | Clear learning objectives | Intellectually challenging | Helpful assignments | Applicable beyond course | Attendance necessary | Weekly effort | Responses |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fall 2025 | Aaron Stump | 4.6 | 4.9 | 4.9 | 4.9 | 4.5 | 4.7 | 4.4 | 5.0 | 1–3 hrs/week | 11 of 19 |
| Fall 2024 | Aaron Stump | 4.0 | 4.5 | 4.6 | 4.7 | 4.5 | 4.6 | 4.1 | 4.5 | 4–6 hrs/week | 11 of 11 |
| Spring 2022 | Joseph Tassarotti | 3.0 | 3.5 | 3.7 | 3.8 | 4.6 | 4.0 | 3.3 | 3.1 | 10+ hrs/week | 12 of 27 |