Policies and Deadlines

Partnerships are due April 10th at 11:59 PM. After this time, if you do not have a partner yet, you will be randomly assigned.

  • If you are in 61B, you are required to and may only partner with other 61B students
  • If you are in 47B, partners are optional, but you may only partner with other 47B students
  • If you are retaking 61B, you may only partner with those who are also retaking the class

Partnership Structure

For Project 5, we require that you work in pairs (optional for 47B ), unless you have a special reason that prevents you from doing so. This term, we are not allowing partnerships on any other assignments.

Why Partnerships on Project 5?

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.

Collaboration tips and Merge Conflicts

We highly recommend that partners 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. Pair programming is an easy way to prevent merge conflicts from happening.

Merge conflicts are when two different users on a git repository both commit changes to the same file, and then some sort of merge is attempted (from doing git pull). Once a merge conflicts happen, you need to decide whether to keep your changes, your partner’s changes, or both, line by line (since git does not know how to order you/your partner’s changes). This is annoying, time-consuming and super preventable! Here are a couple ways to collaborate.

  1. Pair Program. As mentioned above!
  2. Work on different files. Try to split your projects into classes/components.

If you’re unable to meet in-person, 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. 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 them.

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.
  3. One partner has dropped the class.

To submit a Partner Dissolution, go to the groups tab on beacon and find the partner dissolution button. You should write about 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.

We will not be accepting anymore partnership dissolutions after the Project 5B deadline