Resources
1 Practice Problem Generators
The course staff have been working on problem generators for exams and practice problems. We have links here for your use.
- Made by Nikhil Mittu
OCaml: Type to Expression
OCaml: Expression to Type
Lambda Calculus: Beta Reduction
- Made by Cliff
Finite State Machines: NFA to DFA, DFA to Regex
Operational Semantics (helped by Arwen Ferro): Opsem Proof
Type Checking: Type Checker Proof
- Made by Aarav Pabla
2 Previous Quizzes and Exams
These are quizzes and exams from previous semesters of CMSC 330. Note that course content and format vary from semester to semester, so not every problem will be relevant to this offering.
Semester | Year | Assignment | Solution |
Spring | 2024 | ||
Spring | 2024 | ||
Spring | 2024 | ||
Spring | 2024 | ||
Spring | 2024 | ||
Spring | 2024 | ||
Spring | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Fall | 2024 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Spring | 2025 | ||
Fall | 2025 | ||
Fall | 2025 | ||
Fall | 2025 | ||
Fall | 2025 | ||
Fall | 2025 | ||
Fall | 2025 | ||
Spring | 2026 |
3 Quick Reference
- OCaml (5.3)
4 OCaml
Tutorials: at the OCaml site and an interactive tutorial in the style of Code Academy
Real World OCaml —
Excellent (free, on-line) book about how to use OCaml for industrial strength programming. Developing Applications with Objective Caml —
Entire book in HTML & PDF
5 Rust
Main Rust page: https://www.rust-lang.org
Rust installation: https://rust-lang.org/tools/install
Free Rust Book: https://doc.rust-lang.org/book/
Rustlings (Coding Exercises): https://github.com/rust-lang/rustlings
6 Formal Grammars and Finite Automata
Rubular: Regular Expression Tester for Ruby
Pythex: Regular Expression Tester for Python
JFLAP, a package of graphical tools which can be used as an aid in learning the basic concepts of Formal Languages and Automata Theory
Book: Introduction to the Theory of Computation by Michael Sipser. This book has lots of good explanation. See Sipser’s course for more material.
7 Lambda Calculus
8 Git
9 Other Relevant Texts
Previous required texts for CMSC 330 have chapters on relevant topics covered in this course. If the lecture notes are insufficient, look for these books. They should be available in the university library.
Concepts of Programming Languages (Seventh Edition) by R. Sebesta, Addison Wesley (2006) (ISBN 0-321-33025-0).
Programming Languages: Design and Implementation (Fourth Edition) by T. Pratt and M. Zelkowitz, Prentice Hall (2001) (ISBN 0-13-027678-2).