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.
A third advantage is that for most students, having a team should reduce the workload and therefore also the stress level. For the first two years that I taught 61B, the Spring 61B design project was a solo project. Many students found these projects (Gitlet in Sp15, and Editor in Sp16) very stressful, especially those new to programming. Sp17 and Sp18 students reported a much lower level of stress compared to Sp16 when it came to the project.
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 review and partnership dissolution rules coming soon.