Project Overview

The final project gives you the experience of building an interactive system starting from the design stage and finishing with a working prototype!

As with your labs, the final project is a solo effort. You are welcome and encouraged to chat with your classmates about your ideas, but you should not share or discuss the code itself. You are, of course, welcome to get feedback on your code from lab helpers, tutors, or your instructor.

Project Ideas

The goal for the final project is to build an interactive system. In the context of this class, a good final project interactive system will:

  • Request input from a user, either via the command line or an external file uploaded by the user
  • Customize, transform and / or create a model based on the input, while making use of a complex data structure
  • Produce a new kind of output
  • Present that output to the user

Successful previous projects that fall into this category are:

  • Implementations of a 2D game (e.g., a card game for a user to play against a computer or an ASCII adventure game)
  • Generating random art using the picture module
  • Creating an animation to simulate a phenomenon from the natural sciences

There are many ideas you might have which would be great personal projects, but do not fall into the category of interactive systems (e.g., learning a new Python library or another programming language). You will receive feedback from your instructor about whether your proposed project meets the expected criteria. See the next page for more specifics!