By Sunday, December 8, at midnight, you should submit your final project, electronically. The last week of class there will be a blackboard sign up sheet where you must sign up for a time to demo your project. Demos will be Monday Dec. 9-Friday, Dec 13. Each demo is 10 minutes, one-on-one.

Be sure to make regular backup copies of your project, on different drives, so if you lose the most current version, you will be able to recover quickly.

    Make sure your project contains

  • interactive input using Entry boxes. Does your program defend against bad input?(IEB)
  • interactive output using Text(OTXT)
  • a text input file(not just a picture)(IFL)
    Include with your submission any files your program needs to run
  • a text output file(OFL)
  • mouse input making use of the location of the mouse click.(IMS)
  • a GraphWin .(GW)
  • functions of your own design not belonging to any class.(FNC)
  • some randomness using the random class.(RND)
  • At least one class of your own design with objects and methods that are used. (CLOD)
  • A list of objects of a class of your own design(LOOD)
  • Well organized code using classes and multiple functions.
    No global variables.
    No function, including main, should be much more than a page long.
    • This means a max of 50 lines of code.
    • This 50 lines does not include comments or lines of white space to make the code more readable.
  • Good comments and well formatted code:
    • Every method and function (other than constructors, gets and sets), needs a comment before the header line describing what it does and what its parameters are. For constructors, there might be a need for explanation of parameters.
    • There should be comments explaining the main steps of the algorithm, incorporated into the code.
    • reasonable and helpful variable names and function names
    • good indentation
  • main as the last function in the file.
    Also a call to main at the end of the file.
  • a record of references:
    • who you talked to and about what:
      "Jen Porter told me how to move the list items when playing a card from the hand."
      "Paul Li looked at my code and found the reason it was crashing."
      "My friend Frida Rodriguez played my game and made suggestions about what it needed to be more user friendly."
    • what written sources you used:
      "I based my Province class on Dr. Baruch's model from class."
      "I used a setUp based on the one in lab 20."
      "I used a tic-tac-toe board similar to the one at tictactoe.com"

Marking special features.

In order to insure I give you credit for the features you have included in your project, put these terms (written here in RED), exactly as written (except for color), in comments in your code:
  • (IEB) somewhere you read from an Entry box
  • (OTXT) somewhere you write to the screen using Text
  • (IFL) somewhere you read from an input file
  • (OFL) somewhere you write to an output file
  • (IMS) somewhere you use the mouse's location
  • (GW) where you open a GraphWin
  • (FNC) somewhere you call a function of your own design
  • (RND) where you use a random number generator.
  • (CLOD) where you define a class of your own design AND somewhere create an object of a class of your own design.
  • (LOOD) somewhere you use a list of objects of your own design

  • The header for your project should be of the form
     /*  Project Name
    programName.py
    Your full name
    Your nickname if you use one 
    Your Section number
    Your SU login name*/  
  • The algorithm should be clearly integrated into comments in your code.
  • Make a folder named yourloginFinalProject. For example, mine would be mjbaruchFinalProject In it put a copy of
    • any data files that your project requires
    • an interesting sample output file
    • one screenshot of your program in action (.png, .jpg, or .pdf) No bigger than 1MB.
    • a file with the list of references (.txt, .rft, .doc, or .docx)
    • the source code for your project ( .py)
    zip it into a folder with the same name. (.zip not .rar)
    • On a mac, right click the folder and choose compress.
    • On a PC, compress or 7-zip->compress
  • IMPORTANT Make a copy of your project and all related files frequently, so if you do something wrong, you haven't lost it all.
  • Upload the zipped project.

You will demonstrate your project to me Dec 9 - Dec 13. I will not grade any projects that are not demonstrated.

While I want projects on time, I also need to receive projects that run. Therefore, I will accept late projects as follows: Up to 2 points off for each day late (up to a max of 10 points off) through Friday, Dec 13. No projects will be accepted after that unless you have received permission from me.

If you have not handed in your project by midnight Wednesday, Dec. 11, I expect to see you to discuss your project during mandatory office hours, Thursday, Dec. 12, 12:30-2:30, in the lab. This is NOT optional. Bring a laptop with your project or make sure a copy of your project is loaded on the computer in the lab.