4

I give 11 lab assignments in CS 1, and I assign partners for the first four or five so that students get to know each other, and then I let them choose their partners, or choose to work alone. I try to discourage them from working alone, but some students just don't want to deal with people, and I feel bad forcing them. (I also give six projects, worth ...


3

If you haven't used Pair Programming (PP) before but want to introduce it, there are two additional books you should read for background. They aren't textbooks for your class, but put PP into context. Extreme Programming Explained gives the complete context of PP in the agile development process. Pair Programming is one of the "small scale" practices of ...


2

I find it difficult to predict success with the setup you describe. There are too many forces working against you. If your students are all residential and/or do most of their programming in labs that you provide then success might be possible, but otherwise, not likely. Students resist pairing and don't really know how to do it effectively. They don't ...


2

Having them do it for homework, and pair program is a big ask. However here is some of my experience with pair programming. While working as part of a software team, we tried to introduce pair programming, but got lots of resistance, even from the evangelists (no one had done it before, but it seemed like a good idea). What worked Pairing with someone ...


2

I've been in groups before, and multiple people were supposed to code. It was a system where you had to be on the same computer for it to work. It fairly well approximated pair programming - we were discussing out loud, and one person was watching the other giving suggestions, and the other was coding. The people in the group that I was mostly working with ...


2

I have seen pair programming both succeed spectacularly and fail miserably. The difference comes from a combination of a few factors, which are, in a way, the advantages and disadvantages of Pair Programming. One clear advantage is that both students in the pair get experience in writing code, and later reviewing code. (The pair programming I saw had ...


1

tl;dr: This isn't an either/or sort of situation. You have a lot of options for structuring the exercise. There are a lot of possibilities and which works best depends on the specifics of your situation. Don't lose track of the fact that your goal is educational, however, and not code production. If the students learn but not much code gets produced it can ...


1

An extension I've come to appreciate is one where you have a "driver", "observer/navigator" and "keeper". This last role might be considerably more difficult, depending on the lab. The idea is to have someone who keeps track of the design. This means that at the start of the lab, the students should all (or just those who start as keepers) dedicate a bit ...


1

You have to be strict with the rules you set up and monitor the students carefully until it becomes a habit for them. For instance, if you decide that you want the pair to switch roles every 15 minutes, you could ring a bell or have some other signal for the students to pass the keyboard over, switch seats, or whatever else they would need to do change ...


1

I have experienced pair programming as a student. TL;DR: From my experience, I do not recommend pair programming, but I do recommend a course structure where students can ask each other for assistance. This way, students who need and want assistance can get it, and students who are able to give assistance can give it. The ability of the professor or TA in ...


1

Paired programming is very effective at work too. We use Skype for Business to share screens (i.e., editor/output windows) and communicate in real time. If you don't have Skype, you can use Slack. Add GitHub or Bitbucket to quickly share code, and you have a very collaborative environment.


1

If you are using Cloud9 and you want them to be working on the same code at the same time (Google Docs-style), you can have one user share their workspace with the other (with read/write permission). There is a "share" button in the upper-right hand corner. We have successfully used this for group projects on Cloud9.


1

I tend to avoid multiple students working on the same code simultaneously (Google Docs style) because it's really difficult to assess what has been done by each student or to stop one student dominating whilst the other doesn't understand what's happening. Either that or students tend to get distracted by what the other is writing. Having said that, you ...


Only top voted, non community-wiki answers of a minimum length are eligible