Course Info
Last updated: Wed, 18 Feb 2026 22:27:46 -0500
This page lists basic information about the course such as people, places, and times.
1 Staff
Instructor: Stephen Chang (email: Stephen.Chang)
TA: Yanxin Lin
TA: Brandon Tong
(All emails are UMB addresses)
2 Lecture
450-01: 11:00AM - 12:15PM, McCormack M02-0423
Here’s a Google Calendar with class times, iCal format (requires UMB login).
First Lecture: Tuesday, January 27, 2026
Last Lecture: Tuesday, May 12, 2026
See also Lecture Policy.
3 Office Hours
To accommodate different student needs, we will have both in-person and virtual office hours.
Specifically, office hours will be held weekly:
in-person Tues 2-3pm, McCormack, 3rd Floor room 0139 (Brandon)
in-person Thurs 12:15-1:45pm 2-3:30pm, McCormack, 3rd Floor room 0201-03 (Prof Chang)
via Zoom Fri 1:00-2:30pm (Prof Chang)
by appointment (Yanxin)
Drop-ins are fine, but emailing in advance if you can would be helpful.
These will usually be group meetings, but one-on-ones are available upon request.
Zoom links will be posted in the Discussion Board.
4 Textbook
Material from the course will be drawn from the the following textbook:
How to Design Programs, 2nd edition. 2018 MIT Press.
The book is available for free online, but you can buy a print copy if you wish (make sure to get the 2nd edition).
There may also be supplemental lecture notes, but book chapters to accompany each lecture will be listed.
NOTE
There are small differences between code presented in the textbook and code we will write in this course, which we will mention in class and also try to summarize in various places, including here.
The textbook refers to "Student Languages" (and a "Stepper" that only works with the Student Languages). We will not use these languages and tools in this course. Instead, we will use a special "450" version of the Racket language designed specifically for this course, which is invoked by putting #lang racket450 at the top of a file.
Do not embed images directly into code in DrRacket. Doing so will make saved files unreadable in plain-text editors.
is defined with struct and not define-struct
implicitly defines a constructor called structname, not make-structname
5 Homework
Homework will be assigned weekly.
We will usually follow this schedule:
Homework out: Tuesday 11:00 am EST
Homework due: Tuesday 11:00 am EST
This schedule may occasionally change due to holidays, snow emergencies, or other circumstances.
See also Homework Submission Policy.
6 Exams
There are no exams for this course this semester.