Topics to Study

A survey of topics for advanced study.

Standard Course Topics

This list is just a little bit advanced. You would cover all of these in a college course.

  • Local variables: Picturing Programs, Chapter 27; or HtDP III.15. Including local functions. Also used in III.16 and beyond.
  • Functions in variables: HtDP III.14 or Picturing Programs, Chapter 28.).
  • Input/Output (especially using files): Picturing Programs, Chapter 29 or HtDP
  • Lambda (nameless functions): HtDP III.17 is good to be familiar with. Not necessarily deep once you know how to make a local function.
  • For-type constructs.
  • Mutation and set!: Picturing Programs, Chapter 30.

Good, Challenging Exercises

  • The Advent of Code is a yearly sequence of 25 puzzles. Try to make quality code, not just copy-and-paste code that barely runs. You’re trying to learn to be a better coder! The problems are just the inspiration for the learning; have the goal of writing elegant code and you will learn more.

  • Nifty Assignments from Stanford. Always interesting. The ones labeled CS1 should be accessible. The ideas are great but the starter code is mostly Python, which will slow you down a bit. You could use PyGame on Replit.com if you were adventurous and wanted to try existing starter code.

    One example project is the Pong AI. You are plenty capable of writing a basic Pong engine before you dive into the AI part. See their code (all Python) for special cases in bouncing.

Very Advanced

The book Structure and Interpretation of Computer Programs is a classic book that was used in the introductory computer science class at MIT for many years. You can find a cleaned up version of SICP, which includes an html version as well as an epub.

The book requires mathematical sophistication and a willingness to not just do the exercises but think about the results. Not everything is spelled out - the assumption is that you understand the point made by two exercises comparing different ways to do things.

Last modified February 27, 2024: A guide to advanced study. (8a8faf8)