Working with a Partner
Looking for a partner? Post in the Search for Teammates thread on Piazza! Please make sure to mark your search as Done once you’ve found a partner. This post on Piazza will open after the start of Project 2.
WARNING: Collaborating with your peers on concepts is a great way to learn. Sharing a solution to any assignment is considerd a violation of acadmic integrity. Unless you are partners (by the guidelines below) you must not show your solution code for any assignment to any other student.
Online Partner Collaboration for Fall 2020
All course activities are purely online for the current semester due to COVID-19. To help with the switch, here are stome tips for remote collaboration for partnerships.
NOTE: The Final Project will have all of the same collaboration and partnership rules and suggestions as Projects 3 and 4.
Google Meet works well for one-on-one meetings and you can include a link to the meeting in a Google calendar invite.
- Go to Google Meet
- Select “Start a new meeting”
- Copy and send the link under “Meeting ready” on the right to your partner.
- Select “Join now”
- Use the “Present now” capability to allow both partners to view the code while one person types.
Tips for Effective Online Meeting
- Set a purpose for meetings and use a shared notes doc. Meetings might feel different when using video, even if your team was really good at working informally in the past. Try to set the purpose of your meeting in advance. Take notes in a shared doc so you can all contribute and follow along.
- Make sure to tradeoff which student is coding
- Ensure that both partners are only working on the project during the meeting by trading who is sharing their screen (it’s a lot easier to get distracted when your partner isn’t sitting next to you!).
- Keep videos open when you can. As long as you can see whatever you need to collaborate, aim to keep the video visible on your computer screen. It’ll help you see the expressions of your teammates and stay connected to each other.
Project Partner Norms
- Continue to have meeting regularly just like you would in person.
- Continue to follow the Working with a Partner guidelines.
Guidelines for Effective Teamwork
For Project 1 and Project 2, you may not work with any other person. These are projects which must be completed individually.
For Project 3 and Project 4, you may choose to work on these projects with one other student currently enrolled in EECS 183.
Although you are welcome to work alone if you wish, we encourage you to consider partnering up for Projects 3 and 4.
A partnership is defined as two people. You are encouraged to help each other and discuss the project in English, but don’t share project code with anyone but your partner.
Your partner need not be enrolled in the same lecture or lab section as you. You just have to be comfortable with working together and be able to meet frequently enough to work together.
Needless to say, it is expected that each partner will contribute equally to the project.
In order to form a partnership, you must register it on the autograder by choosing the “Create a group” option and entering your desired partner’s UM email address. You must choose to either work alone or form a partnership before you can submit to the autograder. Your partner will receive an email notifying them of the partnership; they must accept before you can submit.
A partnership is treated as a single student for the purposes of the autograder. This means the partnership still only receives a combined 10 submissions per day, and the single best submit will be graded for style. For the late day policy for partnerships, see the section below.
You may not switch partners during a project. If you begin working with someone, you must continue working with that person until the end of the project. (If you absolutely want to break up the partnership and work alone, submit an admin form notifying us of the situation). If your partner decides to withdraw from the course, you’ll have to continue on your own. However, you are allowed to switch partnerships between projects and have different partners for each project.
If you would like a partner but don’t know anyone in the class, we encourage you to post on Piazza if you want to find someone! Please make sure to mark your search as Done once you’ve found a partner.
Although working with a partner on certain EECS 183 assignments is allowed and encouraged, you are forewarned that this does not mean that each student completes only half of the work. The assignments are intended to give you the practice necessary to understand the course material and do well on the exams. We will expect that you understand all aspects of each assignment, and we will be testing your knowledge of the assignments on the exams.
NOTE: For the Final Project (which is after Project 4) you must work in groups of four students. Details of the Final Projects are released later in the semester.
Late Days and Partnerships
- You are able to use your late days when you work with a partner. However, be aware of the following:
- When your partnership submits late, both partners will use a late day per day late.
- If one partner has no more remaining late days but the other does, the late submission will count and be graded for the partner who has a remaining late day (and use it) but not the partner who has run out. That partner will receive an autograder score equal to the score of the best submission at the time when they still had late days available.
- Style grading is not affected by differences in late days; both partners will receive a style grade using the best submission even if one partner ran out of late days before then and will receive a different autograder score.
- If you plan to use late days on Projects 3 and 4 in a partnership, you will want to coordinate with your partner!
- Note that late days cannot be used for the Final Project.
Example when both partners use a late day
- Person A and B are partners
- Both Person A and B had one late day remaining for the semester
- The project was due Friday, and Person B made a submission on Saturday
- The Saturday submission was graded for both partners, and both Persons A and B now no longer had late days remaining
Example when one partner has run out of late days
- Person A and B are partners
- Person A had one late day remaining, but Person B had no late days remaining
- The project was due Friday, and the partnership’s best submission as of Friday 11:59 PM was 50/60 on the autograder
- Person A submitted on Saturday and received 60/60 on the autograder. Person A now no longer had late days remaining
- The submission on Saturday received 10/10 points for style. Person A received 70/70 for their final grade, and Person B received 60/70
Pair Programming describes a programming technique where all programming work is done by two programmers, working together at a single computer. Within the pair, work is split into two roles, known as the driver and the navigator. The driver is the person at the keyboard, responsible for the actual typing of the code being generated. The navigator is an active observer and monitor of the code being written. The driver and navigator collaborate on all aspects of the software development: design, coding, debugging, etc. They are in constant communication, asking and answering questions of each other. The two programmers may switch roles frequently in the course of a programming session.
NOTE: Working alone? Consider Rubber duck debugging!
Dos and Don’ts
Here are some tips to help clarify.
Do read these guidelines carefully before pair programming with another student. You must follow these guidelines or risk being investigated for Honor Code Violation.
Do choose a partner with whom you can work side-by-side at a single computer on a single project source.
Do work side-by-side at a single computer on a single project source.
Do trade-off which student is typing and which student is reviewing.
Do resolve compiler errors and other high-level design and programming issues with your pair programming partner.
Do share ideas about the overall problem and your proposed solution.
Do discuss the concepts covered in lecture, the textbook and the assignment web page to be sure that you both understand the problem before trying to solve it.
Do break the problem down into smaller pieces and break each of those pieces down until you both understand the solution to the piece of the problem.
Do write high-level descriptions of each part of the solution and how it will work together with other parts to solve the problem. This is important for all students, to ensure that you understand the problem before trying your idea for its solution.
Do put both of your names and uniqnames at the top of all code files. This is important to ensure that both students receive credit for the work.
Do get help from IAs, GSIs, or professors if necessary.
Do not pair program with someone without understanding these guidelines.
Do not pair program on an assignment with someone who has already solved the problem. Students who do this will not learn as much as those who pair with someone at a similar skill level.
Do not share code with anyone other than your pair programming partner or staff.
Do not split the work in half. It is important that both partners work on all parts of the program. Splitting the work may harm your or your partner’s understanding of that part of the solution.
Do not pair program with anyone who is not currently enrolled in the course.