Your programming project will serve as the capstone for this class. It should showcase some of the skills you’ve learned during the block. There will be four sessions of in-class time to work on your project over two and a half weeks, and I expect you to do some work on your own time as well. Make sure you consider how much time you have to spend working on your project when deciding what you want to create! You may work alone or in pairs.

Project Proposal (due 12 Nov.)

This should be a 1-2 page (300-500 words) document that covers the following:

  • What you want to create ~ Give me your vision. What do you want your program to do? Who will your program be used by? In what kinds of contexts could your program be used? Is your program fun, useful, educational, or something else?
  • Major programming concepts ~ Tell me about libraries you might use, programs from earlier in the block you might draw from, algorithms you might use, important data structures you might use, and functions you might write to scaffold your program.
  • What you don’t know ~ Identify what you might need to learn or figure out in order to complete your project. Are there certain libraries I’ve mentioned that you need to use? Maybe an algorithm you’ll need to develop? A programming skill that you’ve struggled with? How do you plan to tackle these difficulties?
  • Collaboration plan ~ If you want to work in a pair, your project proposal must include a paragraph (3-5 sentences, ≥40 words) about how you plan to collaborate. I’m not worried about the logistics of remote meetings; I want to hear you explain how you plan to share the work (divide and conquer? pair programming? multiplayer collaboration?).

This proposal isn’t a binding commitment. I expect your project to evolve as you work on it. Also, I may respond to your proposal suggesting that you scale back or think bigger if your project seems too complex or too simple.

Program Outline (due 24 Nov.)

This is exactly what it sounds like: I want you to outline your program, beginning to end. The format of this outline is up to you, but it needs to be fairly detailed. Some possibilities for how you might outline your program:

  • pseudocode
  • bulleted list of functions with a description of what each will do
  • flowchart or other diagram

No restrictions on length for the outline, but I expect it to be detailed enough to give you a good start on actually writing your program.

Project Presentations (10 Dec.)

Show us your program and tell us about your process of creating it! I want to see what you’ve built and what it does, but I also want to hear what you learned, what didn’t work, how you overcame difficulties you ran into during the project, and what you might do to augment your program in the future.