Computer Science 217
Assignment #3

Mike Jacobson

Due: see Evaluation below



Purpose

You'll be writing a Python program to interface with the Quickdraw graphics utility, and structure your program using functions to reflect its design.

Important Note

Make a Scene

Write a Python program that, when used with the Quickdraw graphics tool, draws a scene (indoor or outdoor) of the University of Calgary campus. Your program must produce a sequence of Quickdraw commands that are piped into the Quickdraw utility, as demonstrated in class and as described on the Introduction to Quickdraw page.

Your scene must be subject to the following constraints:

What constitutes ``high-level elements'' is intentionally vague because a) to precisely specify it would likely be very lengthy and b) it would hamper your creativity. It's like trying to say what constitutes ``nine items or less'' in the express checkout at Safeway; some common sense must be used, and a carton of eggs is one item, not twelve.

Basically, the intent is for high-level objects to be discrete, distinct visual items. If you have a bunch of trees that all look alike except for maybe the size or color, that's one item. If you have two obviously different types of tree (e.g., pines and oaks) that are rendered by different code, then that's two items. Decorations on an object, like windows or doors on a building, would be part of the building.

Prize!

Your TAs will be identifying the best 2-3 scenes for me for posting on the course website. The best of these, as chosen by the class, will receive a prize. If you are not comfortable with having your picture displayed on the course web page, please communicate this to your TA by email and in the comments of your Python program.

General Hints

Evaluation

You must do two things:

  1. Hand in a printout of your solution to the assignment boxes by 4pm Friday, 12 March 2010. Make sure it has your name and/or student ID number on it, and double-check to ensure you're using the correct assignment box! The assignment boxes are on the second floor of the Math Science building. Note that you may turn your printout into the box early. If your TA is accepting solutions in any other form (e.g., email) then they will let you know - however, you must still observe the deadline.
  2. Demonstrate your solution to your TA in tutorials during the week of March 15. To keep things fair, the solution you demonstrate must be the same as what you handed in on the printout, or you will not be given credit for the demo. Your TA may ask you questions about what the different parts of your solution do.
If you do not hand in a printout or if you do not demonstrate your assignment during tutorial time, or both, you cannot be given a grade above a zero on this assignment.

Your printout must show your Python program. Note that you must have a program in a .py file - you cannot turn in a solution that only uses the Python command line.

Your solution must be demonstrated using your account on the CPSC machines.

Tutorials during the week of March 15 are allocated for demos. Your TA is not obliged to see demos outside this time; they have their own schoolwork to do!

The TA has the right to assign a mark of zero for the entire assignment if you fail the demo.

2/3 of the marks assigned are for your solution (as shown on the printout). These marks will be assigned for documentation, like appropriate variable names and comments, for the structure of your program, and for meeting the constraints listed in the specification above. The remaining 1/3 of the marks are for functionality and the aesthetic quality of the scene you generate.