For the final assignment in this course, you'll be given only the idea for a program, and you'll need to complete both a design document and an implementation. You'll be graded on both parts.

  • Design document - This may be completed in pairs if you wish.
  • Python code - This may be completed in pairs (the same pair as the design) if you wish.


This assignment will be worth 30 points, with 10 points allocated to the design, 10 to the implementation, and 10 to how well your implementation follows your design. Be intentional and careful with your design document! It's very important.

Design Requirements

Your design document should be just like the one you created for assignment 12:

  • Be organized. Divide your document up into sections, one for each of the points above, and add other sections as needed.
  • Be detailed. There is a difference between "read the file in" (not specific enough!), "read the whole file in as a string", and "loop through the file" - be as detailed as possible when describing your design.
  • Be complete. Are you using any external modules? Which ones? What data structure will you use to represent an apartment? How will you store all the apartments in your program? What functions will you write? What are their parameters and return values?
  • And of course, check your spelling. This isn't an English class, but using proper grammar and spelling facilitate the clear communication of ideas.
  • You are welcome to include flow charts and other graphical representations of your design in your document!

There is no length requirement for this document, but if your design takes less than a page to describe, consider that you might not be going into enough detail.

Implementation Requirements

You have two options for your final program (click the links for more details):

Madison Dining Suggestions

How About That Weather We're Having?

Regardless of the theme that you choose, your code should:

  1. Include at least two functions (more are encouraged).
  2. Include at least one data structure (list, dictionary, array...)
  3. Handle errors without crashing!
  4. Include comments.

Submitting your files

As usual, you'll be handing in your lab work via the course Learn@UW dropboxes. Navigate to our 301 course page, and click the Dropbox link in the top navigation bar. You should see a dropbox for Program 14 - this is where you should hand in all of the files you create.

Note that the dropbox will close at 7:05pm on 13 May, so be sure to submit your files before then.