On this page:
1 Staff
2 Lecture
3 Office Hours
4 Textbook
5 Homework
6 Exams

Course Info🔗

Last updated: Mon, 17 Feb 2025 13:47:29 -0500

This page lists basic information about the course such as people, places, and times.

1 Staff🔗

Instructor: Stephen Chang (email: Stephen.Chang)

TA: Julian Biju (email: julian.biju001)

TA: Yanxin Lin (email: yanxin.lin001)

TA: TBD (email: )

(All emails are UMB addresses)

2 Lecture🔗

This course has two sections, meeeting, Tuesday and Thursday at:
  • 450-01: 2:00PM - 3:15PM, Wheatley W01-0004 Wheatley W01-0088 Snowden Auditorium

  • 450-02: 11:00AM - 12:15PM, Wheatley W01-0042 McCormack M02-0404

Here’s a Google Calendar with class times, iCal format (requires UMB login).

First Lecture: Tuesday, January 28, 2025

Last Lecture: Tuesday, May 13, 2025

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:

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:

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 try to summarize here.
  • The textbook refers to "Student Languages" (and a "Stepper" that only works with the Student Languages). We will not use these languages in this course. Instead, we will always use the full Racket language, which is invoked by putting #lang racket 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.

  • A struct definition, e.g., (struct struct-name [field1 field2] #:transparent):
    • is defined with struct and not define-struct

    • implicitly defines a constructor called struct-name, not make-struct-name

    • require a #:transparent keyword, in order to be comparable, e.g., with check-equal?

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 or other circumstances.

See also Homework Submission Policy.

6 Exams🔗

There are no exams for this course this semester.