Class Notes: Term Project Assignment
Must read by: Mon 3-Apr at 5pm


Critical notes:

  1. Description
  2. Schedule
  3. Grading criteria
  4. Policies and Rules
  5. Deliverables
  6. Helpful Guides


  1. Term Project Description
  2. Your task is to design and implement a program of your choosing. Your project may be a game, or a math or science application, or a baseball statistics package, or a productivity application (think Word or Excel, only very "lite" versions), or anything else you choose. 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 weeks of the semester, so you know where you stand and what additional work may be required to improve your grade.

    You have an extended period to finish this assignment, with no other required assignments during the last three weeks, and no other major course responsibilities between midterm2 and the final exam. You are expected to invest at least 25 total hours into this project in this time, 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. Some of you will exceed the 25-hour bar, but this is a minimum expectation for passing the term project.

    The term project is very open-ended, but there are a few restrictions:

  3. Schedule
  4. Many events happen during Term Project Season! This is your guide to all of them.

  5. Grading Criteria
  6. Your term project will be graded using four general categories. There is some overlap, but you should pay attention to each of these to ensure the best grade:
    1. Code Organization: Is your code clean, well-organized, and written with good, consistent style? Can someone who is reasonably proficient in Python easily understand your code and how it works? If needed, could you explain how your code works to someone else? Using object-oriented programming, well-named variables, comments, and descriptively-named helper functions can all help improve clarity and demonstrate that you know what you're doing.
    2. User Experience: Your project must be richly interactive, and the user experience should be positive and engaging. Is your project enjoyable to use, and user-friendly? Does it have several interesting and engaging features? Does the experience feel complete and cohesive?
    3. User Interface: Have you put some time and effort into making your project aesthetically appealing? Is the interface clear, readable, not too cluttered, and self-explantory? Can someone unfamiliar with your project quickly understand how to interact with it? 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.)
    4. Algorithmic complexity and sophistication: 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, good use of relevant concepts like OOP, etc. Avoid hard-coding, repetitive conditionals, or exceptionally inefficient approaches where more efficient alternatives exist.

    Because of the open-ended nature of the project, we cannot (and will not) tell you whether or not a particular project, algorithm, or set of features is going to give you an A. In fact, TAs are prohibited from answering grade-related questions like "With my project as it is now, do you think it will get _____ grade" or "If I do _____ will I get _____ grade" or even telling you whether you will probably get a particular grade, so please do not ask these questions. All that we can tell you is whether or not you have hit MVP yet (which is described later in this document). In order to get the best grade possible, listen to the feedback you receive and be efficient about where you invest your time. Please also understand that because we can't predict the future, we are simply giving you the best advice possible based on our understanding of your project. Your mentor is not responsible for your grade, and your grade is determined solely by what you turn in.

  7. Policies and Rules
  8. The term project is different from the other assignments and exams in 15-112. Therefore, it has its own special set of policies and rules. Note that the main course policies still apply, unless they are overruled by the policies described here.

  9. Deliverables
  10. You will have 4 deliverables for this term project. TP0 and TP1 combined will count as one quiz grade ("tpQuiz1"), and TP2 will count as a second quiz grade ("tpQuiz2"). These are not traditional quizzes, 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 mostly assess your deliverables in person or over zoom, though they will not assign you a number grade until after consulting with other TAs in the class after the meeting. Each of the deliverables comes with a rubric, but these rubrics are fairly general, as projects vary so widely. In general, we expect a large amount of effort to go into the design, writeup, implementation, and presentation of your project.

    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-B or low-C 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, however, 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 (the one that matters twice as much as every quiz combined).

  11. Helpful Guides
  12. Here are some short and helpful guides on some TP topics. Please note that these were created using last semester's slightly different (but very similar graphics framework):
    1. TP Guide on Features
    2. TP Guide on MVP
    3. TP Guide on Tech Difficulties
    4. TP Guide on Game AI
    5. TP Guide on Mazes
    6. TP Guide on Pathfinding
    7. TP Guide on Terrain