What is This Thread’s Purpose?

This thread consists will help you learn the Standard Model of Languages. It begins with a simple version of the model and becomes progressively richer.

There are two kinds of exercises here:
  • In one kind, you will work with an automated tutor that we have built for you. You work through the material at your own pace. You will also be given illustrative programs to run through a program tracing tool that we have built for you.

  • In the other kind, we ask you to reason about system states to build on what you have learned from the tracing tool.

In general, it’s not hard “cheat” on these tasks; we haven’t tried to make it difficult to do so. But if you do, you will find the later parts of the course virtually impossible. So please work wisely.

Recall that for this track, you are not allowed to discuss work with others while the assignment is in progress or with people who are using late days.


Each task handout should take about one hour.

Grading Standard

The tutor automatically tells you about the correctness of your work.

On the Stack assignments, what we most care about is that you make a good-faith effort on these tasks.


Note: The tutor is new software. Currently, it does not have the ability to save state. That means you should finish every tutorial you start; you can’t pause and resume it later.

Software to install (atop DrRacket):
Please follow instructions on their site. We may make periodic updates to these systems, which we will announce on EdStem. The URLs include update instructions.




More Scope



MutVec 1

MutVec 2

Heap Structure

Stacks 1

lambda 1

lambda 2

lambda 3


Stacks 2