Term Project and Hack112


  1. Overview
  2. Personal Contributions
  3. Hack112 and Term Project Common Policies
  4. Hack112 Policies
  5. Term Project Policies
  6. Term Project Expected Hours
  7. Term Project Deliverables
  8. Term Project Component Grade Weights
  9. Term Project Grading
  10. Term Project Additional Considerations

Note: this is a large and detailed document. Even so, everyone is expected to carefully read all of it prior to Hack112 (which runs Sat 12-Apr to Sun 13-Apr).
  1. Overview
  2. We present the Term Project and Hack112 together in this document because we hope that the project you start in Hack112 grows into your term project, so these are really two parts of a single whole (for most of you). The term project and Hack112 serve multiple important purposes:
    • First, it is your chance to prove that you know the 112 material well and can apply it effectively.
    • Second, you can showcase your project in your portfolio, which you can use to help get a job.
    • Third, you can sharpen your collaborative skills working in a small group (which we strongly encourage). Employers highly value collaborative skills and a team-first mindset.
    • Fourth, you will hopefully have some fun!

    Hack112 comes first. This is an optional but very strongly recommended single event over one weekend where you work in small groups on ambitious projects with the help of our amazing TAs. This is a true hackathon, but one designed just for current 112 students. It is also a lot of fun!

    After Hack112, we then enter Term Project season. While Hack112 is optional, doing a term project is required. That said, we hope that you will continue working with your Hack112 team on your Hack112 project. That is the ideal. But that is not required, and you can change teams and/or projects after Hack112 if you prefer. Please see the details below about that.

    As for what project you should build, we leave that for you to decide, but we hope that you are bold, ambitious, even audacious. Your grade is largely based on your effort, and you can use all available resources (including our amazing TAs, as well as anyone or anything else, so long as you properly cite your sources). With few limitations (such as that you must code in Python), you can try anything. So be bold and try to make something wonderful! That said, also be practical, so that you have a good chance of building something that actually works. We are here to help you with those tradeoffs.

    Have fun and do great things!

  3. Personal Contributions
  4. As this is a group project (for most of you), and as you can use any resources you wish (including AI), it is critical that you understand the basic requirement that you must make significant and original personal contributions to your project.

    You may not just use AI and other group members to do nearly all the heavy lifting for you. You must do some signficant, original work yourself. And you must make it very clear to us which part of the project is your original work. We will indeed grade you on your effort, on you being an effective group member, and on the overall quality of your project. But foremost, we will grade you on your personal contributions.

    To that end, every project must contain a file, contributions.txt, which clearly lists for each project member precisely which parts of the code are substantially their own original work. This is in addition to the citations in the code, which are also required as noted below.

    If you do not make it clear to us which parts of the project are original work of yours, you will receive zero credit for the term project. And if you mistate which parts are originally yours, this would be an Academic Integrity Violation, which may lead to course failure. So please do not do that!

    Have fun, do great things, work closely with your group, use AI, use other resources. Just be sure to do all that while following the rules, and be sure that you make it very clear to us which parts of the final project are your original contributions.

  5. Hack112 and Term Project Common Policies
  6. These policies apply to both Hack112 and the Term Project:
    1. All projects must comply with our collaboration and academic integrity rules (see syllabus).
    2. All projects must be written entirely in Python.
      • Note: in rare cases, we may make an exception. To qualify for such an exception, you must first meet with the course faculty, and then you must obtain an explicit approval in email from the course faculty before you start working on the project. Also, if you do receive such an exception, you should not expect to receive help at TP OH or over Ed.
    3. All projects must run locally (not in CS Academy).
    4. All projects must be stored in GitHub.
      • We will provide a GitHub Repository for each project, along with required GitHub training. This must be used regularly, by all members of the project. In addition to this serving as a backup copy of your project for you, we will use your github activity on this project as an important indicator of your effective effort, team organization, and development content, so you must make new commits at least once a day unless you have not worked on your project that day. We will share more information later.
    5. All projects must go beyond the core 112 material in at least one substantial way, say by meaningfully using a module, library, algorithm, or data structure not included in 112.
    6. All groups must pre-confirm common availability.
    7. We will provide a form for students to submit anonymous concerns about their group.
    8. Students must maintain a daily log (in a Google form we will provide), recording their daily time (solo + group), and a very brief description of their personal contributions to the project for that day.

  7. Hack112 Policies
  8. These policies apply only to Hack112 (and not the Term Project):
    1. Hack112 is optional but very strongly encouraged.
    2. No solo projects. Only groups of 2-4 (and everyone must be on the 15-112-s25 current roster).
    3. Groups must pre-confirm their common availability for at least 5 hours during Hack112.
    4. Groups must submit all pre-completed work; only get credit for new work done during Hack112.
    5. Expected time-on-task: 8 hours during Hack112.
    6. Hack112 Grading: Hack112 is chiefly just for the joy of working together building great things, but it also is a friendly competition with some winners. That said, it has no traditional grading.

  9. Term Project Policies
  10. These policies apply only to the Term Project (and not Hack112):
    1. The term project is a required part of the course.
    2. Groups are optional but very strongly encouraged.
    3. Groups must be of 1-4 (and everyone must be on the 15-112-s25 current roster).
    4. Groups must pre-confirm their common availability for at least 1 hour on at least 5 days per week.
    5. You can start the term project before Hack112 (and this is a good idea for more ambitious projects), but the rules specified here, including hours on task, keeping code in GitHub, and keeping daily reports, start as of the start of Hack112. Actually, you can start your TP prior to Hack112 and get credit for those hours so long as you fill out the TP Daily Report for them.
    6. Expected time-on-task: 20 hours, but Hack112 counts (at least in part) towards those hours (if the group remains intact afterwards). See below for details.
    7. TP Reflection
      There will be a "TP Reflection" (a graded event) in lecture in Week 14 where students will write a paragraph or two reflecting on the technical details of one or more of the most important features of their project.
    8. TP Attendance "Quiz"
      There will be a TP Attendance "Quiz" (which is not a real quiz, but which counts as a real quiz). Students will get credit for attending lecture (in its entirety!) on Tue 1-Apr (the Term Project Assignment lecture), for the two lectures in Week 14, and for the TP Showcase. This will count as an ordinary quiz. It is expected that everyone will attend, and thus that everyone will get a free 100% quiz added to their semester computation.
    9. TP Style
      TP submissions (tp3) will be submitted to our style autograder, and style will count significantly towards the tp3 grade.
    10. TP Citation
      Unlike homework assignments, for your TP projects you must cite your sources, including ChatGPT or other AI tools, online sources, and even your own prior work. Any work that you did not originally create for the term project must be clearly cited so we can easily determine which parts are originally yours and which parts are not. In particular:
      • Your project must contain the file citations.txt, and that file must include easily understandable and verifiable citations to all the major sources you used for your project.
      • In addition to citations.txt, your code must also include citations directly in the code that make it clear where you use code that is partly or entirely not of your original design, and what the source is for that code.
    11. TP Ed + OH
      Given the rich variety and complexity of projects, even our amazing TAs will have limits on just how much help they can reasonably provide. With that, you can rely on our usual high standard of help on 112 core topics. Beyond that, we'll do our best with other topics, within reason. Also, during TP season, there will be a 10-minute rule at OH (and then only if the time is being used productively), and a similar reasonable restriction on Ed response times. This means some questions will not be answered in TP OH + Ed. In particular, we probably cannot do much debugging with or for you. That's ok, though -- this is supposed to be your chance to prove that you can do this largely on your own (well, with your group mates, and with the vast world of resources available to you).
    12. Safe Option
      Students may elect to complete a "safe" option where we provide more assistance on the project selection and overall design. Students selecting this option are more likely to pass the project with a C, but are unlikely to receive much higher than that. Otherwise, all the TP rules still apply. Look to our posts on Ed for more details about this option.

  11. Term Project Expected Hours
  12. Since term projects are graded in large part based on effort, we need to have some understanding of the expected amount of effort (in total hours). Since effort and hours are hard to measure, instead we consider "plainly apparent effort", or if you prefer, "effective effort". We know what 20 hours of effort looks like, and that is what we are looking for.

    Also, this is 20 hours of effective effort per person, regardless of group size.

    However, you also get some credit for your Hack112 investment (if any). We do not give hour-for-hour credit for Hack112, but we do give a lot of credit, making it very much worthwhile for you to do it! Specifically:
    • If your team and your project stay intact (the same team + project for the TP as for Hack112)
      • then you get 8 hours of Hack112 credit and need 12 more effective TP hours beyond Hack112.
    • else if everyone on your TP team also did Hack112
      • then you get 4 hours of Hack112 credit and need 16 more effective TP hours beyond Hack112.
    • else (someone on your team did not do Hack112)
      • then you get 0 hours of Hack112 credit and need 20 more effective TP hours beyond Hack112.

    In tabular form, that is:

    Hack112
    Credited Hours
    Non-Hack112
    Effective TP Hours
    Option A: Same team + same project for both Hack112 and the TP 8 12
    Option B: Not Option A, but everyone on your TP team did Hack112 4 16
    Option C: Not Option B, so someone on your TP team did not do Hack112 0 20

    As for solo projects, these would all fall under Option C, and so require 20 effective TP hours outside of Hack112.

  13. Term Project Deliverables
  14. We will provide more details as each tp deliverable deadline approaches. Here is the general plan:
    Date and Time Deliverable Format
    Mon 14-Apr (8pm) TP1 1. List of group members (with confirmed availability)
    2. Project description
    3. Progress Report (written)
    Sat 19-Apr (8pm) TP2 Progress Presentation
    Wed 23-Apr (11:59pm) TP3 Final Project Presentation

    Presentations will be scheduled for as soon after the deadline as possible, at the grader's discretion, but generally the next day. Presentations can also be just before the deadline if everyone agrees to that.

  15. Term Project Component Grade Weights

  16. TP Component Weight
    Effort20%
    Daily Reports10%
    TP1 Check-in10%
    TP2 Presentation10%
    TP3 Presentation10%
    TP3 Quality20%
    TP3 Style10%
    TP Reflection10%

  17. Term Project Grading
    • TP Graders
      • Each project will be assigned a single TP Grader for the duration of the project.
      • TP Graders are not mentors (as in past 112 term projects). For help and guidance, students need to go to TP OH or ask on Ed.
      • While your TP Grader will have the deepest understanding of your project, TP deliverables will include additional graders to ensure fairness and accuracy.

    • TP3 Quality Grading Scale
      TP3 quality will be graded on this scale:
      • Amazing: 25/20
      • Excellent: 20/20
      • Very Good: 15/20
      • Good: 10/20
      • Needs Work: 5/20
      • Deficient: 0/20

    • TP Grading Criteria
      When we say "your project" below, we mean "the original contributions you made to your project and which you clearly identified to us for grading purposes". That said, in general, projects are graded by equally considering two general categories:
      • User Experience
        Your project must have a rich, interactive user experience. It should feel like a single cogent app. It should be user-friendly, with easily discoverable features, so that someone unfamiliar with your project can quickly understand how to use it properly and fully. Your project's User Interface (UI) should be clear, understandable, and aesthetically pleasing. Your project need not display artistic brilliance, but the UI should clearly evidence that you spent time polishing your project's appearance.
      • Code and Algorithm Design
        Your project must demonstrate a 112-level of sophistication in code and algorithm design. Your project must also include at least one important element that goes beyond the core 112 material in a meaningful and substantial way. Your code must be clean, well-organized, reasonably efficient, and written with good, consistent style adhering to the 112 Style Guide. In particular:
        • Projects that use notably poor style may have some points deducted, beyond the deductions from the style autograder.
        • Projects that use particularly egregious style will be given a significant deduction.
        • Also, if applicable (and it nearly always is), your code should make meaningful, well-designed use of OOP. This will make your code more elegant and more scalable (which is crucial, given the size of this project).

  18. Term Project Additional Considerations
    • Missing or Improper Citations
      As noted above, proper citations are required for your term project. To be clear, you must cite all sources that were helpful to you in creating your project, even if you do not copy code directly from them. Sources include but are not limited to: information you find on the web, anyone who is not your group member or a current 112 TA, any work not originally done for this term project, and AI. For AI in particular, your citation should include which AI and what prompt(s) you used.

      It must be very clear to us which parts of your project are original, and which sources you used and how you used them. If this is not clear to us, you may face considerable deductions and, potentially, Academic Integrity Violations (which may result in course failure).

    • Missed Meetings
      If you miss a required grading session, we will not offer a make-up session, and your grade will be substantially lower. In particular, in addition to a deduction for missing the session, you will receive 0 for your presentation score, and without your input, your TP Grader will have to make conservative estimates regarding the quality and scope of your work. Also, if you are late to a meeting, you will not be given additional time for that meeting (so do not be late!).

    • Grade Release Date
      TP3 grades will be released by Mon 28-Apr, so that you have time to then decide whether or not you plan to sit for our final exam (which is on Fri 2-May).

    • Regrades
      Because the TP grading process is so complex, with so many checks and re-checks for consistency by so many TAs and course faculty across hundreds of unique projects, there is no TP regrade process. That said, if there is a genuinely major grading error, such as if we somehow entirely miss a complex feature that you implemented, you will have one day after tp3 grades are released to inform us of this error. Thus, TP grades are finalized a couple of days later, on Wed 30-Apr.

    • Grace Days
      These only apply to homework and not to the term project. You may not use any grace days for any TP deadlines.

    • Extensions
      We also generally do not provide extensions on TP deadlines, and so we do not allow students to submit the deliverables late. However, if you have a medical or other genuine emergency, email the course faculty to see if an extension can be arranged.

Good luck and have fun!