The goal of this course is to help students:
1. learn new languages quickly,
2. evaluate various languages and pick the most suitable one for a given task,
3. know when and how to design a little language, and
4. understand the effects of languages on thought and communication.
We will study programming language concepts, not as paradigms but as a set of basic building blocks, by 1) implementing interpreters for the concepts using the Scala programming language and 2) rigorously discussing the concepts using the operational semantics.
Overview
Syllabus
- Week 1
- Week 2
- Week 3
- Week 4
- Week 5
- Week 6
- Final Exam
Taught by
Sukyoung Ryu