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—
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.