# Differences Between Course Versions

You may have taken a different version of the course than you are currently TAing. If so, here is a brief summary of the differences between past course iterations.

## With Sara Sood, pre-2015

• Uses HtDP2e as the course text
• No imperative programming
• Greater emphasis on recursion, including the different types (as defined by the HtDP authors)
• Assignments are mostly sets of smaller, disparate problems
• No tutorials

## With Sara Sood, 2015-2016

• Uses HtDP2e as the course text
• Introduces imperative programming, using the filesystem pset
• Still strong emphasis on recursion types
• Assignments (other than the filesystem pset) are mostly sets of smaller, disparate problems
• Microquizzes and homework time during tutorials

## With Ian Horswill, 2015 and later

• Does not use a course text; uses slides instead
• lambda introduced before define
• Less emphasis on recursion; no discussion of the HtDP distinctions
• No HtDP design recipe
• Stronger emphasis on imperative programming, object-oriented inheritance concepts
• Assignments tend to involve building up one larger program, with a greater emphasis on graphics and games, and thorough READMEs
• Tutorials have unique exercises

## With Sara Sood, 2017 and later

• Similar to Ian's course, with some minor distinctions
• Does not use a course text; uses slides instead
• lambda introduced before define
• Uses HtDP methodologies (- templates)
• Stronger emphasis on imperative programming, object-oriented inheritance concepts
• Assignments tend to involve building up one larger program, with a greater emphasis on graphics and games, and thorough READMEs
• Tutorials have unique exercises

If you're seeing something new, don't worry, but do take time to read up on unfamiliar concepts and go through the slides before running office hours or leading tutorials.