Term Project Assignment


Important Notes


  1. Description
  2. Project Options and Requirements
  3. Grading
  4. Policies and Rules
  5. Schedule and Deliverables

Description

Your task is to design and implement a program of your choosing. This is a wide open assignment, and you are expected to be creative in your approach to it.

Each of you will be assigned a Mentor TA for your term project. While every staff member is happy to help you at any time, it is expected that your Mentor TA will provide most of your support and guidance during the course of your term project. Also, your Mentor TA will play the largest role in grading your term project. You are required to discuss your project with your Mentor TA during the last week of the semester so you know where you stand and what additional work may be required to achieve your desired grade.

You have an extended period to finish this assignment, with no other required assignments during the last week. You are expected to invest at least 25 total hours into this project, and it is further expected that your project will clearly reflect the quantity and quality of design and craftsmanship that goes along with that much time on this task. Many of you will exceed the 25 hour bar, but this is a minimum expectation for passing the term project.

Project Options and Requirements

Grading

Your term project will be graded using three general categories. There is some overlap, but you should pay attention to each of these to ensure the best grade:

  1. Code Organization
    • Your code should be clean, well-organized, and be written with good, consistent style. Someone who is reasonably proficient in Python should easily understand your code and how it works.
    • You must make meaningful use of OOP in your term project! This will make your code more elegant and your life easier by compartmentalizing your code.
  2. User Interface / User Experience
    • Your project should be visually appealing. It's ok if your project is not a work of trained artistic brilliance, but the user interface should make it evident that you've spent some time polishing your project's appearance. (For example, if you are making a chess game, use images or something visually interesting to represent the pieces, rather than just the letter "K" for King, "P" for Pawn, etc.)
    • Your project must be richly interactive, and the user experience should be positive and engaging. Your app should be easy for a new user to use.
    • Your app should feel complete and cohesive.
  3. Algorithmic Complexity
    • This category is difficult to describe, but in short, are you demonstrating your 15-112 skills? Algorithmic complexity might come from clever and effective use of data structures, evidence of sophisticated problem-solving, interesting algorithmic approaches to implementing your features.
    • Avoid hard-coding, repetitive conditionals, or exceptionally inefficient approaches where more efficient alternatives exist.
    • Your app should be reasonably efficient.

Policies and Rules

Note that the main course policies still apply, unless they are overruled by the policies described here.

Schedule and Deliverables

You will have 3 deliverables for this term project. TP1 and TP2 combined will count as one quiz grade. This is not a traditional quiz, but will be entered in the quiz category in our gradebook. Your TP grade will be determined solely by TP3, the last deliverable.

Your mentor will assess your deliverables in a meeting with you, though they will not assign you a number grade until after consulting with other TAs after the meeting. Keep in mind that these meetings are your chance to show off your code! Make sure that your mentor knows about all the features you implemented and what made them difficult so they can consider that when grading.

The purpose of the intermediate TP deliverables is to give you feedback, and the grade is part of that. Getting 100 is exceedingly rare, because there is always room for improvement. Just like the quizzes, median grades in the high-C or low-B range are typical, so do not view an 80 as an indicator that you are behind everyone else. If you do not like the grades you receive, take the feedback to heart, improve your work habits, and increase your rate of progress. Most students do, as reflected by their higher TP3 grade.

Below is the schedule and requirements for each deliverable:

  1. Wednesday 7/24 at 11:59pm: TP Option Selection Form due
    Fill out the TP Option Selection Form to let us know if you're doing Sudoku or a custom project! Also specify on this form if you want to complete a tech demo.
  2. Thursday 7/25 - Friday 7/26: Tech Demos
    Tech demos will be scheduled on one of these two days. You should be prepared to complete your tech demo by Wednesday 7/24 at 11:59pm to ensure you are ready regardless of when in this window you are assigned to do a tech demo.
  3. Friday 7/26 at 11:59pm: Custom TP approval deadline
    You must have approval to do a custom TP in writing over email by this time. If you do not have approval by this time, you must do the Sudoku project.
  4. Sunday 7/28 at 8pm: TP1 Deliverable Due

    Meet with your TP Mentor for your TP1 checkin and submit the TP1 deliverable on Autolab. By TP1 you are expected to have finalized the design plan for your project, and you should have a decent amount of working code (200-400 lines, depending on complexity). This code may be prototype code, and so perhaps may not be part of your final project. It may or may not have any user interface. But there still should be some code that shows clear progress in some parts of your project.

    Below are the TP1 deliverable requirements. You should submit all the required files within a single zip file on Autolab, under the TP1 assignment. If your file is larger than 10MB, submit the core part of your project to Autolab (at least including all your Python code), and submit the rest to your mentor via some standard, reasonably secure file sharing method such as Google Drive.

    • TP1 Meeting [0 pts] You'll meet with your mentor to check in and demonstrate what you've accomplished so far. See the Policies and Rules section for missed meeting deductions.
    • Preliminary Code [40 pts] You should submit code artifacts showing some work on the project. This does not need to be a complete working demo; it should just be a real start towards solving the core problems of your project. For most students, 200-400 lines of decent code would indicate a good start.
    • Timesheet 1 [5 pts] Keep track of the time you spent on the project up until TP1, and enter it into the form.
  5. Tuesday 7/30 at 8pm: TP2 Deliverable Due

    Meet with your TP Mentor for your TP2 checkin and submit the TP2 deliverable on Autolab. By TP2 you should be at a Minimum Viable Project (MVP) stage, with the majority of the project's core code implemented (600-800 lines, depending on complexity).

    Below are the TP2 deliverable requirements. You should submit all the required files within a single zip file on Autolab, under the TP2 assignment. If your file is larger than 10MB, submit the core part of your project to Autolab (at least including all your Python code), and submit the rest to your mentor via some standard, reasonably secure file sharing method such as Google Drive.

    • TP2 Meeting [0 pts] You'll meet with your mentor to check in and demonstrate what you've accomplished so far. See the Policies and Rules section for missed meeting deductions.
    • Working Demo [50 pts] You should submit code artifacts showing a working demo of the project. The code may be missing features, it may have a less-than-polished user interface, it may have bugs, it may even crash more often than desired, but it has to basically work for some reasonable definition of "work". Once your mentor confirms that your project has reached MVP status, you are guaranteed to get a Term Project grade of at least a 80% on TP3.
    • Timesheet 2 [5 pts] Keep track of the time you spent on the project from TP1 to TP2, and enter it into the form.
  6. Thursday 8/1 at 10pm: TP3 Deliverable Due

    Below are the TP3 deliverable requirements. You should submit all the required files within a single zip file on Autolab, under the TP2 assignment. If your file is larger than 10MB, submit the core part of your project to Autolab (at least including all your Python code and README file), and submit the rest to your mentor via some standard, reasonably secure file sharing method such as Google Drive.

    • Project Codebase [90 pts]

      The codebase should include all your Python files and any other files (images, music files, etc.) required for your project to run. Your project should run robustly, should be algorithmically complex with good code organization and style, and should have a good user experience.

      When grading your project code, we also consider effort (especially around the pass/fail line). The term project should take up the majority of your 15-112 time in the last week of the semester (about 25 hours). Spending this time and showing real effort and progress in mentor meetings will factor into your score.

    • README [3 pts]
      Include a file, readme.txt, which must include the following components:
      • A short description of the project's name and what it does.
      • How to run the project. For example, which file the user should run in an editor. If your project uses data/source files, also describe how the user should set those up.
      • Which libraries you're using that need to be installed, if any.
      • A list of any shortcut commands that exist. Shortcut commands can be used to demonstrate specific features by skipping forward in a game or loading sample data. They're useful for when you're testing your code too!
      A competent programmer should be able to run your project after reading the README file, so make sure to include all necessary files in your submission!
    • Timesheet 3 [2 pts] Keep track of the time you spent on the project from TP2 to TP3, and enter it into the form.
    • Video Demo [2.5 pts]

      Important Note: since a video that closely follows our submission specs is essential for our grading purposes, we will not grade any project that does not include a reasonably well-made video. This means that you will receive a 0 on the TP without a video.

      This should be a 1-3 minute video (and no more than 5 minutes in any case) that captures the main idea of the project. It should show the most important and coolest features of the project, with narration to explain how it works. This demo should not provide a full walkthrough of the whole project, and does not need to cover every single feature; think of it as more of a trailer for the project as a whole. Your video demo should be uploaded to YouTube (or some other video hosting service), and your submission on Autolab should include a file called demo-video.txt that contains a link to the uploaded video. Do not include the video file in your submission, only a link. Also, please make sure your video is accessible without a password (it should be public or unlisted if uploaded to YouTube).

      The quality of the video and audio does not need to meet any particular standard (as long as it meets your standards such that you'd be happy to include it in your own portfolio). Feel free to use a video camera or a screen capture program to record. As for creating the videos, one approach is to use Zoom -- create a meeting just with yourself, share the screen (with sound if you wish), record the meeting, and you're set. Also, on Macs, Quicktime is a great option.

    • Live Demo [2.5 pts]
      In your TP3 meeting, you will need to provide a live demo to your mentor and one other TA. This demo can be up to 5 minutes long and should cover all the core components of the project, especially anything your mentor might not notice when they test the code themselves. This is your chance to convince your mentor that you deserve a great grade!
  7. Thursday 8/1 to Friday 8/2: TP Grading Sessions

    Meet with your TP Mentor for your TP3 live demo. You may only present work that was completed before the TP3 deliverable deadline. Note that the TP3 meeting is very important, as it is where your mentor will decide what your grade should look like. We strongly suggest that you be ready 5 minutes early to your time slot, with your computer prepared to give a demonstration, so that none of your time is wasted. Your demonstration should take no more than five minutes so that your mentor has adequate time to ask you questions. If you miss your TP3 meeting, not only will you have the standard missed-meeting deduction, but we will grade your project without your input, which will likely result in an even further lowering of your grade.

  8. Friday 8/2 at 4pm: TP Showcase

    Attend the Term Project Showcase, and watch demos of amazing projects by your fellow students. Note: this event is required, and as stated in the syllabus, missing it will cause you to get a 0 on your overall semester attendance grade. But the event is a lot of fun, and we hope you enjoy celebrating all the wonderful projects you and your classmates made!