6
$\begingroup$

Pair programming rather than solo programming is best practice in the CS classroom. Online IDEs like Cloud9 allow both members in the pair to work in a shared environment like google docs: working with independent keyboards and mice. What are effective practices for students working side-by-side to collaborate in such an environment?

I've experimented in my classroom and have arrived at my own solution, but I think the question deserves crowd creativity and crowd evaluation.

Note: I've experimented with Cloud9 in both online and onsite instruction, with different results. This question is about students working onsite, side-by-side.

Background:

Extensive use of pair programming in the K-12 environment is best practice over solo programming. Pair programming increases persistence and engagement, and reduces frustration and boredom. See for example Hanks et al. (2011) Pair programming in education: A literature review. Computer Science Education 21:2.

Schools are increasingly using Chromebooks, which preclude a locally installed IDE. Computer science is being taught in an increasing number of sections on a school's master schedule, precluding instruction exclusively in a desktop computer lab environment. Effectively teaching programming using Chromebooks is important.

$\endgroup$
  • 2
    $\begingroup$ If you have enough bandwidth for a voice channel, you might also be able to do distributed (not face to face) pairing. I struggled with that for years. While it isn't your specific need, some here may have suggestions. It would enable home schoolers as well as those students out for illness or otherwise. $\endgroup$ – Buffy Jul 1 '17 at 19:19
1
$\begingroup$

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 could try:

  • One person writes code whilst the other writes comments. This forces the two to discuss both what they're doing and what they're planning to do next.

Other paired programming techniques that don't involve simultaneous access:

  • Allocating a 'driver' and a 'navigator' to each pair of students: the navigator isn't allowed to touch the mouse of keyboard. The driver has to follow the navigator's instructions. Students swap after a set time.

  • Sabotage and share: get students to make deliberate syntax / runtime / logical errors in their code then share a link to their code in a shared document / forum. Get students to record each error they find and fix. Award points per bug fixed.

$\endgroup$
  • $\begingroup$ That's not how pair programming works. It does have a confusing name, but you can read the tag wiki or go to the wikipedia page. $\endgroup$ – ItamarG3 Jul 3 '17 at 11:24
  • $\begingroup$ Agreed, but the question was about how to adapt pair programming to get students to collaborate side by side effectively. For pair programming to work you need two motivated, well behaved individuals who are competent and confident in programming. That's not always the case in a classroom. $\endgroup$ – pddring Jul 3 '17 at 11:29
  • 2
    $\begingroup$ But pair programming is not about 2 people writing code on a computer at the same time. That's why I said that comment. $\endgroup$ – ItamarG3 Jul 3 '17 at 11:33
  • $\begingroup$ Hmmm. @ItamarG3. Pairing IS about 2 people on one computer even if distributed. Here is a pretty fair description, from the source. Wikipedia has an article also. I don't avoid it, I embrace it, at any level. $\endgroup$ – Buffy Jul 3 '17 at 12:08
  • $\begingroup$ I tend to think of pair programming as Rally Car: you have one person doing the driving, while the other is handling navigation. Which actually is what you have for the first bulletpoint of the second series. $\endgroup$ – Robert Jul 3 '17 at 15:04
1
$\begingroup$

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.

$\endgroup$
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.