Project 3 Partnerships
Author: Josh Hug

Partnership Structure

For project 3, we require that you work in pairs, unless you have a special reason that prevents you from doing so.

Why Partnerships on Project 3?

The process of working on a team can be quite different than working alone, and it’s great practice to learn how to efficiently work with other people, especially on large complex projects that involve tricky tools like git. While you might be perfectly capable,and even happier to work alone, you’ll only have so many big design projects in college, and we hope you’ll take advantage of this opportunity to develop this important soft skill.

Given that this project is open-ended, having another person to work with might also help with being able to find more creative solutions, especially to the problem of world generation.

Finally, there’s also the fact that when you go to job interviews, it is very likely that you’ll be asked to describe a time you worked with a team under some sort of duress. This project will likely provide such an opportunity.

Rules for Collaboration

For this project, you’re explicitly allowed to divide and conquer. We encourage you to explore the idea of pair-programming, but it is not required. It is also not required that you work in the same room, though it is highly encouraged because this is more fun.

We don’t require that both partners contribute equally, but both of you should do at least a significant amount of work.

Partner Logistics

We use the Project 3 Partnership form to form partnerships. If you indicated on the form that you are in need of a partner, then we will take your preferences and use a custom tool (developed by the TAs in EECS 16B!) to pair you up with someone with similar preferences. This should take care of most time-zone issues, though you may have a slightly different time-zone than your partner. If you didn’t fill out the form, then your partner was assigned randomly with someone else who didn’t fill out the form.

When the world was normal and we did things in person, CS 61B partners would typically meet in the Soda labs or somewhere else on campus and pair program on the assignment together. This means one laptop with the pair taking turns typing and both working and outlining solutions together.

With online times you can do a similar thing with Zoom and screen sharing! It’s not always the best idea to split the work directly in half as working in isolation is much worse than collaboration, though you can do so if you want. Pair programming will also solve the issue of dealing with nasty merge conflicts :). There are also plugins for IntelliJ (and VSCode, if you use that) that allow for editing of the same file, though course staff won’t provide official help with that.

Partner Dissolution

Sometimes your partnership just doesn’t work out for a variety of reasons. In extremely dire cases, we will allow a dissolving of a partnership. Here are some reasons we’ve dissolved partnerships in the past:

  1. A one-sided partnership. This means your partner hasn’t done any work on the assignment despite many attempts at communication.
  2. A variety of personal reasons where a student was uncomfortable

If your partner dropped the class, then this is equivalent to a forced dissolution. Keep reading if you’re in this boat

Fill out this form with the exact circumstances of your partnership as well as any commit history/other logs that you need to demonstrate the issue. If we believe that a dissolution is required, we will dissolve the partnership and you and your old partner will from then on be working alone. The reason we have you work alone is because it is extremely hard to find another unpartnered student, and you and the other student would likely have entirely different code bases, and you’d be better off starting from scratch. If you haven’t received a response in 24 hours then you may assume the dissolution was OK’d by us. If we read your responses and don’t think a dissolution is required, we’ll email you letting you know.

If we’ve OK’d your dissolution, you and your old partner can use the code from the point that the partnership was dissolved, but from that point onwards you must work in your own private student repo (i.e. your sp21-s*** repo). Any collaboration from after the partnership dissolution will be considered academic dishonesty. You and your old partner will have separate checkoff grades and hence be graded individually.

As you can see, dissolving a partnership actually requires more work since you will work on the project solo, so you should first attempt to work it out before trying to get the partnership dissolved.