Class Notes: Term Project Assignment
Must read by: Mon 13-Nov 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 tool, or a productivity application (think Word or Excel, only less fully-featured), 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, it is expected that your Mentor TA will provide most of your high-level 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. Note, however, that your mentor cannot provide extensive debugging help or technical support, so you will need to rely on the skills you've built this semester.

    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.
      • You must make meaningful use of OOP in your term project! This will make your code more elegant and your life easier by compartmentalizing the functionality of your code. You must write at least one meaningful class with attributes and methods, and preferably more. We will teach you more about OOP and animations after midterm2.
    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 3 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 point breakdown as described below, and you will be assessed on the four grading criteria mentioned earlier in this document, but these criteria 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 Game AI
    4. TP Guide on Mazes
    5. TP Guide on Pathfinding
    6. TP Guide on Terrain