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.
The rest of this document will expand on each of these points.
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.
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.
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!
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.
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 |
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:
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, you might write something like this:
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:
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.
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.
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.
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:
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.