Slashdot Mirror


Collaborative Software For Pair Programming?

DavidMatuszek writes "I will be teaching Java again this Fall. Students work in pairs, but unfortunately (after the first hour) typically not physically together. I would like to find collaborative software that is (1) dead simple to use, because that's not what the course is about, and (2) free. Google Docs would do, but students will be sharing code — plain text — not RTF or HTML or Word files. Is there such software for plain text?"

9 of 302 comments (clear)

  1. Please by Anonymous Coward · · Score: 3, Insightful

    Please don't make them work in pairs, it's a horrible way to learn programming. I'm assuming you have enough computers, why not?
    Sure--learning to work on a program with others is a necessary skill, but you should already know the basics first.

  2. Re:Use subversion either hosted or your own server by RichardJenkins · · Score: 4, Insightful

    If you're willing and able to release the source code, why not encourage them to use a free account on sourceforge or github?

  3. Gnu screen by jgrahn · · Score: 3, Insightful

    If the course is about Java, why do you expect them to do pair programming? (I assume you mean Pair Programming, not just cooperating to solve the tasks. If you mean the latter, it's just a matter of revision control using SVN or whatever, which they should do anyway.)

    Anyway, one free tool that comes to mind is screen(1) (aka Gnu Screen) in multiuser mode. That makes two or more users share a bunch of Unix terminals in real time.

  4. Just cancel pair programming by h4rr4r · · Score: 4, Insightful

    Cancel the pair programming. All that happens is one student in the pair writes all the code. They might swap back and forth, or more likely one will end up doing it all.

    1. Re:Just cancel pair programming by ShakaUVM · · Score: 3, Insightful

      You assume the hardworking student will just let that happen... that's not my experience (i had 4 years of compsci study where every programming course was done in pairs. This was in the late 80's). When one of the pair was slacking, the other one tended to either do the same (and both failed the exercise), or just do everything himself and complain to the assistents about it, generally leaving the other with an F.

      Uh, no. You really think the hardworking student is going to allow himself to get an F? You forget that our teachers have been exposing kids to this collaborative stuff since 1st grade now, hell, including peer teaching, in which the teacher explains something to the class, and then the smart kids explain it to their not-so-smart friends. They won't complain to their TA, they'll just roll their eyes and do all the work, like they're used to.

      Speaking from personal experience, teachers love pair programming because it halves the amount of homework they have to grade, and because if you have limited seats in a computer lab, you can squeeze more people in.

      That said, I actually do like doing pair programming.

      But pair programming is only useful when both people already know how to program (you're not towing an anchor), but you're doing something complicated enough you're worried about bugs. In my neural nets class, the math was so hairy that Bob Boyer and I really had to go over each line of code in order to make sure it was correct. I don't think either of us would have been able to do it on our own (or at least, not without a lot of pain). Our work's been used in various open source spam filters and referenced in patent applications, so it's pretty cool. =)

  5. Some tools I use... by SpryGuy · · Score: 3, Insightful

    Etherpad for real-time text file collaboration

    Yuugu for sharing desktops

    Ventrilo for voice communication

    Whatever source control solution you wish (TFS, Subversion, Perforce) for non-real-time collaboration with text documents (programs)

    Yahoo IM or the chat/IM client of your choice for casual low-bandwith and non-time-critical conversations and sharing of information, links, etc

    Email for everything else

    --

    - Spryguy
    There are three kinds of people in this world: those that can count and those that can't
  6. Re:Use subversion either hosted or your own server by davester666 · · Score: 5, Insightful

    Um, he's doesn't appear to be talking about a repository, but rather, software to enable pair-programming, only with the pair not sitting next to each other (or in the same room). Say, some software like SubEthaEdit on MacOS X, where two people can simultaneously edit the same document, along with say, Skype or some other voice/video service where the two people can view/interact with each other.

    At least that's what I gathered from reading TFS.

    --
    Sleep your way to a whiter smile...date a dentist!
  7. Re:Use subversion either hosted or your own server by Opportunist · · Score: 4, Insightful

    I vote for the central server. And for having it in the hands of the teacher.

    That way he can far better check whether one student does all the work while the other is doing the homework for another class for both of them. Yes, it's also a way to share the burden, but not the way it's meant to be. The server could be made tamper proof and if something's suspicious he could always check the versions and see what was done by what student. Even if they're smart enough to hand both logins to one person and that person fakes doing work as his partner, the IP addresses would give it away if they cheated.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  8. Re:Good grief by Phroggy · · Score: 3, Insightful

    That's all fine and good if you both are hired at a company, for instance, and have to work as coworkers. If, on the other hand, you're paying good money, you shouldn't have to cater to other peoples' needs in a learning environment.

    On the other hand, if you're paying good money, you might want an opportunity to develop a skill which will help you when you eventually are hired at a company and have to work as somebody's coworker.

    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;