Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming Software IT Technology

Collaborative Software For Pair Programming? 302

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?"
This discussion has been archived. No new comments can be posted.

Collaborative Software For Pair Programming?

Comments Filter:
  • Please (Score:3, Insightful)

    by Anonymous Coward on Monday July 20, 2009 @04:22PM (#28761251)

    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.

  • by RichardJenkins ( 1362463 ) on Monday July 20, 2009 @04:23PM (#28761287)
    If you're willing and able to release the source code, why not encourage them to use a free account on sourceforge or github?
  • Good grief (Score:2, Insightful)

    by Anonymous Coward on Monday July 20, 2009 @04:30PM (#28761403)
    Don't hold your brighter students back because you want the class to learn together! You have to accommodate all minds, not just the slower ones. I went through this, and quite simply I didn't learn anything but how to pretend to be interested.
  • Gnu screen (Score:4, Insightful)

    by jgrahn ( 181062 ) on Monday July 20, 2009 @04:30PM (#28761423)

    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.

  • Just Plain Stupid (Score:2, Insightful)

    by pdxguy ( 726066 ) on Monday July 20, 2009 @04:33PM (#28761479) Homepage
    IMHO, writing software, in Java or any language, is a creative effort. There are many fields of creative endeavor - artists, musicians, developers, etc. Pair programming is just plain stupid and nuts IMO. Do you ever hear of pair painting (canvas not houses), pair sculpture, pair composing, pair solo singing - no you don't. I had hoped this pair programming nonsense had faded into oblivion - I guess not, but let's try to push it over the cliff and into the abyss of poor ideas.
  • by h4rr4r ( 612664 ) on Monday July 20, 2009 @04:38PM (#28761537)

    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.

  • by Anonymous Coward on Monday July 20, 2009 @04:40PM (#28761567)

    Please don't dumb them down.

    I'm sorry--the solutions out there aren't that complicated--it's just that students have very real experience on 'interesting' projects. Don't introduce them to some 'dumbed down' VCS... my last crop of interns from the local university thought CVS was something that came with eclipse and didn't understand they could just use the CLI to work with it (they also don't understand what classpath is, and think it's something you edit in eclipse...why would you use apache ant?)

    On top of that--they didn't *want* to learn how to type "cvs update" and ...actually use the different abilities of it. If they couldn't figure it out in eclipse, they couldn't do it even with the manual.

    As it is, they were basically helpless when confronted with "make a branch for your ticket, and merge back onto the head when you're done."--even after walking some through it two or three times--they just didn't understand *why* you would use a branch. It never occurred to them there might be multiple versions, releases, or even an "always stable" portion of an application--much less that there could be a tool to help with it. Version control to them was just a sort of abstract filesystem.

    And that's just CVS--I wonder what would happen if they encountered GIT or mercurial...

    By simplifying the interface, you're not doing anybody any favors. Get them on a real, commonly used tool--I don't care if it's CVS, SVN, or even source safe--just get them using the real thing.

  • by SpryGuy ( 206254 ) on Monday July 20, 2009 @04:42PM (#28761599)

    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

  • by zorg50 ( 581726 ) on Monday July 20, 2009 @04:47PM (#28761677)
    I think that you're answering a different question than what the submitter asked. Subversion is great for people working on files, but has no collaborative/teamwork aspect to it (with respect to encouraging pair programming, anyway). A program that would allow multiple people to use voice or text chat while editing a document, etc, would be more along the lines of what David is looking for.
  • by davester666 ( 731373 ) on Monday July 20, 2009 @04:50PM (#28761733) Journal

    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.

  • by h4rr4r ( 612664 ) on Monday July 20, 2009 @04:50PM (#28761735)

    If they are supposed to learn how to do this, then I would say yes.

    Most likely one student will just not learn anything.

  • by gd2shoe ( 747932 ) on Monday July 20, 2009 @05:00PM (#28761873) Journal

    Hmm. It seems they've made great strides since I last played with the thing. I really hope Sobby is easier to set up than it used to be. Last time I tried to get anybody to use this with me, they objected to its difficulty in use and poor user interface. I'll need to look into this again. (I don't remember it having syntax highlighting; I'm really glad it does now.)

    Also, watch for Google Wave later this year. (Somebody's bound to write a plugin for syntax highlighting.)

  • by GreatBunzinni ( 642500 ) on Monday July 20, 2009 @05:06PM (#28761971)
    It will also force socialization and it's an excellent way for students to learn how to work in a team. That alone is more important than whatever grade they will get in any "learn how to program" course.
  • by Opportunist ( 166417 ) on Monday July 20, 2009 @05:18PM (#28762149)

    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.

  • by Monkeedude1212 ( 1560403 ) on Monday July 20, 2009 @05:22PM (#28762219) Journal

    It's true. Unless you end up pairing two students who think they can program better than their counterpart.

    Then you get 2 students handing in seperate Code, both amazing in their own right, saying that they wrote it themselves and had no help from their partners, insisting they get a better grade in the class.

    And then the consequences of the pair of students with NO programming experience, and are having trouble learning, and end up handing you a page that is well documented but not at all functional.

  • by ShakaUVM ( 157947 ) on Monday July 20, 2009 @05:47PM (#28762549) Homepage Journal

    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. =)

  • by morganmcguire ( 1590221 ) on Monday July 20, 2009 @06:10PM (#28762821)
    Absolutely! I use svn in all of my courses now (with the command line, not a GUI) and it works great. Some bonuses:
    1. Teacher can see whether students are working on projects, with a log of who did what, when. This is great for resolving extension requests and for grading group projects.
    2. Teacher can help students with their bugs from home at 2am, rather than having to come into lab to see their code.
    3. Students can move files between operating systems
    4. Use revision control as a way of submitting projects electronically, with timestamps
    5. Easy permission and group control allows making projects available, but read-only after deadline
    6. Put reports in HTML or Latex right in with the code and data

    -m

  • by JeffTL ( 667728 ) on Monday July 20, 2009 @06:21PM (#28762913)
    That's cute, but these are university students who have already sat through 13 years of that in K-12. They signed up and are paying for a class on computer programming and should get what they pay for, not an occasion to "force socialization" -- that's for down at the bar after the assignment deadline.
  • Re:Good grief (Score:4, Insightful)

    by Phroggy ( 441 ) <slashdot3@ p h roggy.com> on Monday July 20, 2009 @09:00PM (#28764469) Homepage

    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.

  • by Ruke ( 857276 ) on Monday July 20, 2009 @11:53PM (#28765719)
    My guess is that, no matter how neat of a collaborative program you introduce to your students, they're going to give up on it after a couple of minutes, and decide to just meet in the lab on Thursday, at like 5 or something. A good deal of your students live on campus, and the rest of them are there most of the time anyway. Meeting in person is the quick-and-easy solution.
  • by FooAtWFU ( 699187 ) on Tuesday July 21, 2009 @02:05AM (#28766353) Homepage
    Emacs in screen -x. Or vim. But they'll freak out with modal editing, I promise. :P
  • Re:Please (Score:3, Insightful)

    by FooAtWFU ( 699187 ) on Tuesday July 21, 2009 @02:07AM (#28766365) Homepage
    I do pair programming for a living. It's great for the senior guy to teach the junior guy what the heck is going on. That said, there needs to be a senior guy first.
  • by julesh ( 229690 ) on Tuesday July 21, 2009 @02:23AM (#28766435)

    . . . to do some research, and choose for themselves whatever suits their needs best.

    Chances are the students don't have the necessary permissions to install new software packages on the school's computers, so this would be a non-starter.

  • Screen (Score:2, Insightful)

    by Sodki ( 621717 ) on Tuesday July 21, 2009 @03:25AM (#28766743)
    Nothing beats screen. One student starts programming within a scren session; the other student joins that screen session (screen -x) and now they're both in the same environment at the same time, and both are in control.

"A car is just a big purse on wheels." -- Johanna Reynolds

Working...