--- title: Project Logistics, Fall 2020 tags: Projects-F20 --- # Project Logistics, Fall 2020 :::info Update 10/20/2020: We'll have 2 projects this semester instead of 3! ::: In CS0111, there will be two projects throughout the semester. Please read this handout for more information about project logistics, because projects are a larger undertaking than the usual homework assignment. More project-specific material, such as project-specifc deadlines, content, and grading criteria will be found in each project's respective handout, released 2 weeks before their due date. ## High-Level Overview of Project Logistics The rest of this document will expand on each of these points. * ~~- Each student must individually turn in some initial notes on how to approach the project (via Gradescope; this is *Deadline 1*)~~ (no longer a part of Project 2) - You will be part of a project group (2-3 students) that collaborates on a high-level design of the project. (This part generally does not involve writing code.) One member of the group submits it (via Gradescope; this is *Deadline 2*) - Your project group will meet with a TA to review your design (this is the *Design Check*) - Your project group can split into subgroups to write the code. One student from each subgroup will submit the code (via Gradescope; this is *Deadline 3*) - Each student individually submits a description of how their group members worked together on the project (via a Google form) Each project will be released on a Tuesday and be due two weeks after, with the other deadlines described above in between. Note that there will be no coding assignment due on the Tuesday between the project release and the project due date, but there might be a written/ethics assignment. ## Project Groups and Design Check TAs :::info Update 10/20/2020: Decreased project group size for project 2 ::: Students will be working in 2-3 person groups for at least part of the project. Before the release of each project, each group will receive an email informing everyone of that group's members and design check TA. Your project group should be different for each project (except in extenuating circumstances), so expect three different emails throughout the semester. If you haven't received this email by the time the project is realeased, **email the HTAs immediately.** #### Note on choosing your project group: * Before group assignments are sent out, you will have the opportunity to request up to 2 other different students to work with. Be on the lookout for a Google form for each project that will allow you do to so. If you request fewer than 2 people, you will also be working with other students, in addition to those you've requested. * This form will also give you the opportunity to list students who you do **not** with to work with. * *Starting with Project 2, different from Project 1*: This form also has a question for you to select whether or not you'd like to complete your final implementation on your own or as a group. Even if you are not requesting specific partners, *please fill out this form to indicate your preferences for your final implementation* so we can group you with students who feel similarly. * If you don't have anyone you'd specifically like to/not like to work with, people will be assigned to groups based on time zone and the same mixed/experienced/beginner preferences that were surveyed during Homework 0. * **Do not request to work with students who were in your previous group.** * These forms are due *before project groups are released.* This gives us enough time to sort people into groups! * [ Partner request form for Project 1](https://forms.gle/5WDahuG6g8cYhkfM9) * [Partner request form for Project 2](https://forms.gle/M631Pddp515qu4ZK7) **due Monday by 5pm EST (this is a hard deadline)** ### Project Subgroups After completing the design check (the second deadline detailed below), you should start the implementation of the project. For the implementation phase, you can choose to submit a single submission for the whole group, or to split off and submit individually. If you're in group of 3, it is also acceptable to split into a pair and an individual. Each subgroup will submit one copy of its final code for the project. If you work closely enough with another student in your group that the code would be largely the same, you should be in the same subgroup. Regardless of how a project group splits, the members of the project group may help each other with both conceptual questions and debugging. You may not look at and debug the code of people outside of your group. *This will be considered a violation of collaboration policy.* That said, you are still encouraged to talk to any students about the project at a high level to fill out any conceptual gaps! **Everyone in the same subgroup is responsible for understanding the code that got turned in. The midterm and final may ask follow-up questions about the project. If your subgroup simply divides the work, you run the risk of not being prepared for the final checks or the exam.** If you split up work, take time to make sure everyone in the group understands how all of the pieces work. ### Summary of the Collaboration Policy The following table summarizes the collaboration policy for projects. | | Code Together | Conceptual questions | Debugging help | | -------- | -------- | -------- | --------- | | Same Subgroup | yes | yes | yes | | Same Group, Different Subgroup | no | yes | yes | | Classmates beyond group | no | yes | no| | Course Staff (TAs) | | yes | yes | | People outside Fall 2020 CS111 | no | no | no | ## Deadline 1: Pre-design Check :::danger There is no pre-design check submission for Project 2. ::: With any large programming project, a large amount of planning and design often occurs before anyone even begins to code. Our first deadline, the pre-design check, involves two major steps: * Communicate with your group members to sign up for a design check appointment with your design check TA! Information about your design check TA, as well as their Google appointment calendar to sign up, is in the same email that contained your group member information. * All group members are required to participate in a design check Zoom call. * We highly recommend all group members attend the same design check if possible. It will help all group members be on the same page post-design check, and will make for a more fruitful discussion. Feel free to use a [when2meet](https://www.when2meet.com/) to help figure out everyone's availability! * If all members cannot make it to a single design check, each group is allowed to sign up for up to two separate slots. * If two slots is not enough to accommodate your group (and someone will need to have a design check on their own), please reach out to your design check TA to work something out. * Also reach out to your design check TA if none of the slots in their appointment calendar work for the group; it's best to do this as soon as possible. * Read the project handout fully, take some notes about your thoughts on the project/questions you might have, and submit those notes to Gradescope. Project handouts will be a little longer than the homeworks you've seen previously. so it's important that you make sure you've read those handouts carefully before you come together with your group. * Specific details about the name of the name of this file will be detailed in each project's specific handout. Don't overthink this! We're really just checking to make sure you've done your due dilligence before meeting with your group. Even something like taking notes as you read is okay, and this document will not be graded on correctness. If you have more questions than answers, that is also okay and expected -- write them down! As an example, if you were to submit some notes on [Homework 1](https://hackmd.io/@cs111/hw1), you might write something like this: :::info In this homework, we're trying to make different countries' flags. I think the Pyret Image documentation might be really helpful here. Some of the flags seem a little more complicated than others; for example, for Turkey, we'll have to rotate the star in some way. The crescent also seems a little tough to make; we might have to overlay circles in some way. The flag of Jamaica also seems a little confusing to me: how do we make the yellow x-shape? Some other questions I have: * How much do the proportions of the flag matter? * Does it matter if I make the flag all in one go, or should we save parts of the flags as names, like white-star = star(...) ::: ## Deadline 2: Design Check The design check will consist of a series of questions, usually written (though there may be coding questions, depending on the project). These questions will be detailed in each project's handout. After reading the project handout on their own, group members are expected to come together, work on the design check questions, and submit a single design check work on Gradescope. Only one submission per group is necessary, and the person submitting should add ALL their group members to the submission on Gradescope (feel free to come to hours if you're having trouble doing so). Groups should submit this work no later than *two hours* before their design check appointment that was signed up for during Deadline 1. This gives your design check TA enough time to read it before your discussion! The design check appointment itself will be a ~30 minute Zoom call with the design check TA where group members will talk about their answers to the design check questions. *All* group members are expected to come to and participate in the discussion. The design check TA may ask any group member questions about the work that was submitted. #### A note on design check grading: Your design check grade will be primarily based on whether you had viable ideas for each of the questions and were able to explain them adequately to the TA (for example, we expect you to be able to describe why you picked a particular plot or table format). Your answers do not have to be perfect, but they do need to illustrate that you've thought about the questions and what will be required to answer them. The TA will give you feedback to consider as part of your final implementation of the project. Your design check grade will be worth roughly a third of your overall project grade. Failure to account for key design feedback in your final solution may result in deductions. Remember that the goal of the design check is to review your project plans and to give you feedback well before the final deadline! Many students make changes to their designs following the check: doing so is common and will not cost you points. ## Deadline 3: Final Handin Finally, all project (sub)groups will hand in their final submission on Gradescope! Only one person from each subgroup needs to hand in the submission, but they should add the of the member of their subgroup to the handin on Gradescope (feel free to come to office hours if you're having trouble doing so). *For example: if a group of 4 splits into two pairs, each pair will submit their own handin. For each pair, the person submitting will add the other member of their pair to their submission.* ## Peer Assessment At the end of the project, you'll also be asked to fill out a form describing how each member of your group and subgroup contributed to the project work. You'll also describe your groupmates' strengths and weaknesses as project partners. **Your answers will NOT be shared directly with your groupmates**. This assessment serves two purposes: - It helps the faculty and HTAs manage any concerns that arise over group dynamics. - It helps us help you assess your skills at working with others on programming projects. If we see similar comments arising from multiple groupmates, we'll share an aggreated summary with the student in question. These assessments will not impact your project grade, unless they reveal that you did not actually contribute (much) to work that was submitted in your name. If you have concerns about this, reach out to Doug or Kathi.