In this final project assignment, you will conceive of, design
and implement a GUI-based Python application of your choice. Examples
include the following:
- An Animation Controller - Build a GUI
controller for an animation of your choice.
- A Simple Game - Build a GUI controller for a
simple game of your choice (e.g., a board game like memory or an
image-based guessing game).
We will discuss the components and complexity required for this
project. You can find some fully-implemented sample applications here:
code/samples/* and some images of past projects.
Deliverables and Grading
The following project “deliverables” are required:
- Project Proposal
- This is a brief, written proposal for your project.
- Grading: 2%
- Due: Submitted along with a weekly homework assignment (as
specified by your instructor).
- Project Design -
This is a planning document for your project.
- Grading: 2%
- Due: Submitted along with a weekly homework assignment (as
specified by your instructor).
- Project
Walkthrough - This is a walk-through of your project code
with one
of us.
- Grading: 3%
- Due: by 5:00pm of the reading recess day
- Project Showcase
- This is a showcase in which everyone exhibits their final project.
- Grading: 3%
- Due: by the beginning of your final exam period
- Project
Submission - This is your final submission of all your
project code
and resources.
- Grading: 90%
- Due: by 5:00pm of the day of your final exam period
Project Complexity
We will grade, in part, on the significance and complexity of your project.
Generally speaking, here is a breakdown of the likely grading for different
sorts of projects:
- A-ish Grade — Strong applications that are either
unique (i.e., not based on the sample programs) or are B-ish projects
(see below) extended to include some additional interesting features,
e.g.: file reading/writing (e.g., leader board); timers; file-based
difficulty levels; …
- B-ish Grade — Solid applications that are similar in
overall structure to the sample programs but have some simple additional
features, e.g.: Connect Four; graphical hangman; memory;
SpaceInvaders-type game with significant upgrades to the
ParticleSimulator; …
- C-ish Grade — Basic applications that run and extend one
of the sample programs in some interesting way, e.g.: CountryGuess with
different kinds of clues (picture clues) or questions (math puzzles);
ParticleSimulator with different kinds of particles/creatures/behaviors;
non-graphical hangman; …
- D-ish Grade — Weak applications that are barely working
(with program crashes, bugs, etc) or are minimally modified versions of
our sample code, e.g.: CountryGuess with different questions;
ConnectFour that is mostly just a 4x4 TicTacToe; SpaceInvaders that’s
mostly just a re-skinning of the ParticleSimulator; …
For full credit, projects must be properly designed, implemented, tested and
documented.
Reuse vs Plagiarism
If you intend to use code from other people outside of the
class, talk to us first and remember that we'll grade you on the code
you write, not on what other people write. If you do make use of
existing code and libraries, be sure to clearly indicate who wrote
what parts of the code; using code without proper attribution is a
form of plagiarism.
As a reminder (from the policies), you must work on your own for this project
assignment. Feel free to discuss ideas with us or with your classmates, but don’t
copy code (i.e. plagiarise). Here are examples of what plagiarism looks like:
- You find a program online and copy the entire contents of the
file into your submission without attribution.
- You find code online, and change the variable names.
- Your roommate writes some code, which you add to your
program. You add documentation that shows you understand the code, but
never indicate the source of the code.
- Your older sibling sends you a function that will help your
program. You add it to your submission without attribution.
Consider these rules of thumb:
- If you found it efficient to use copy/paste to create some
portion of your application, you must supply documentation that
indicates the original source of the code.
- If the moment you figure out how to do something occurs while
you are looking at a website, you should document that website.
Note that these rules of thumb apply to the code supplied in this course’s
materials as well.