COMP203: Midterm Project

The purpose of this project is for you to write and test a complex Logo program. The expectations for your program are outlined below, along with an estimate of the point value of each portion of the project. If you would like to write something other than one of the programs suggested, please submit a suggestion for my approval.

  1. (10 pts) Include a cover page describing your program. This should be one-half to two pages typed. It should include a description of how your program is organized (use a flow chart or, if you prefer, one of the methods demonstrated on pages 109-112) and mention any special features you'd like me to consider when grading your program.

  2. (10 pts) Make sure your program runs! I usually give generous partial credit, but if I can't copy and paste your code into Logo and then run it I may become stingy. (So, before you put it in the dropbox, copy and paste your code into Logo and try to run it!)

  3. (20 pts) Demonstrate what you've learned in class. Your program should employ variables, helper procedures (at least 4 separate procedures), and binary logic (if/else).

  4. (10 pts) Your code should be readable. Use helpful variable and procedure names (e.g. "get.move" rather than "step2") and use a ; to add comments where necessary.

  5. (20 pts) Your code should be modular. Different tasks (get.move, draw.picture, etc.) should be performed by different procedures. Don't forget that it's possible to test modules independent of the main program! (Please use at least four procedures. Depending on your task, a good sized program will use at least seven different procedures.)

  6. Start now! As you know, writing and debugging programs takes time. This is your first big programming project and will take even more time. I'll be happy to help out if you get stuck and will grant limited extensions to the due date, but I'm not available for private conferences the night before it's due!

  7. (30 pts) Your code should do something interesting! Programs with extra options or features (e.g. a two-player option for a game, or a rotation option in the linear algebra project) will receive extra credit. (Your program should use an if or ifelse statement and a value stored in a variable to provide four or more significantly different experiences to the user.)