Project 3: Final Project

Description

Instead of a final exam, you will complete a final project.

Important dates

  • Project design due: Friday, April 12 @ start of class
  • Presentations: Friday, May 3, Final Exam Period
  • Project due: Friday, May 3 @ Final Exam Period

Note: Generally, no extensions will be granted for the final project! Exceptions to this may be worked out at least two days in advance of a due date.

Guidelines

Unlike the other projects, you may work with one partner for the final project. You can also work individually if you wish.

You have wide latitude in choosing what to do for your final project. The only requirements are that it should be sufficiently complex and should somehow go beyond what we have done in class or lab.

Your project idea must be approved by your lecture instructor (who is also happy to help you brainstorm) via email or conversation prior to the design submission. Get started early! Waiting until just before the deadline to start thinking about your final project will be too late.

Projects must make use of Python classes to encapsulate and structure data – or have a well-reasoned explanation as part of the design document about why classes are uncessary.

Design

By Friday, April 12, you must turn in a design document describing your project and planning details of how you will implement it.

Your design document must include:

  • Your name, and also the name of your collaborator if it is a team project.
  • A description of the way(s) in which your project goes beyond what we have done in class and labs.
  • A description of the main algorithm which will control the project.
  • A description of how you envision the project code will be decomposed into classes, methods, and functions.
  • A timeline of steps you will take to complete your project with deadlines for each step. Plan not just what you must do but the ordering of steps that will allow you to complete by the final deadline.

You should be as detailed as possible for full credit in your description. Time spent on the design will pay off immensely as you implement your project.

A sample design document for Prof. Seme’s Star Trek game can be found HERE. You are welcome to use this as a starting point.

Presentation

Everyone will present their projects on Friday, May 3. Your presentation, using PowerPoint, Google Slides, Prezi, or some other appropriate presentation medium, will be at most 6 minutes long. (We are serious about this; presentations that are too long will lose points and/or be rudely cut off. Practice beforehand to make sure you have a good sense for how much time you have. Six minutes is not very long at all.)

Your presentation should include four slides and a quick demo of your project. The slides should answer the following questions, one per slide:

  • What is the name of your project, and who worked on it? (title slide)
  • What is the overall idea of your project?
  • What is interesting/unique about your project?
  • What was one of the biggest challenges you faced and how did you overcome it?

You might plan to spend, for example, 30 seconds on each slide and then use the remaining time doing the demo.

If you worked on the project with a partner, both partners must be involved in giving the presentation. For example, you might have one partner present the slides and the other present the project demo (but feel free to do whatever makes sense).

A sample for Prof. Seme’s game can be found HERE

What to turn in

You should turn in

  • Your presentation slides (if your slides are on Prezi or Google Slides or some other cloud-based system, just submit the URL).
  • A document explaining how to run your project and any other special notes to the grader.
  • All the Python source files, data files, etc. necessary to run your project.

Grading Criteria

  • A Level 2 project includes:
    • A design document submitted on-time and meeting the requirements given earlier.
    • A presentation lasting five to six minutes and consisting of four slides, meeting the criteria given above.
    • An implementation in which the following are true:
      • The program is sufficiently complex and goes beyond what we have done in class or lab.
      • Makes appropriate use of classes, methods, and functions to encapsulate and structure data.
      • No runtime errors, including those resulting from erroneous user input.
      • No syntax errors.
      • Instructor feedback is properly incorporated into the final program.
  • A Level 1 project:
    • A design document is submitted.
    • A presentation lasting no more than six minutes and addresses at least some of the criteria given above.
    • An implementation in which:
      • The program is sufficiently complex and goes beyond what we have done in class or lab.
      • No syntax errors.