You must work on all homework assignments 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
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.