The solution to problem set N is due in week N+1, on Tuesday at 6pm (before class).
You must work on all problem sets in pairs. Pair programming means that you use one computer and one keyboard whenever you work on any part of the problem set. One partner, called pilot, uses the keyboard, while the other one – appropriately called co-pilot – watches. The co-pilot should look out for mistakes and enforce the design recipe.
I recommend switching roles in the middle of problems not (just) between problems. Doing so ensures that design knowledge is truly spread over the pair. While the development of software is not the focus of this course, following these basic pair programming rules will also introduce you to elementary software engineering techniques.
Most importantly, pair programming is one way to help you learn. While computers may be able to check the syntax and the semantics of your programs, they do not engage you in conversations about the material. In my experience, such conversations help students understand the various pieces from different perspectives and often eliminate small obstacles in the reading and programming material.
Nevertheless, you are responsible for your PhD and your knowledge. You therefore may not to go outside your current partnership to seek help.