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?"

64 of 302 comments (clear)

  1. Use subversion either hosted or your own server by ls671 · · Score: 5, Informative

    I would recommend to use Subversion. You could setup your own server but there is also hosted solutions available. I searched Google for "hosted source control" and I found this link :

    http://weblogs.asp.net/fmarguerie/archive/2005/04/27/Hosted-source-control.aspx

    The bonus would be to teach your student how to use version control and how to work together on the same files. Subversion (and older CVS) integrate into Eclipse and most other development environment. There is also standalone clients available if your students use a simpler editor like vi or notepad ;-))

    --
    Everything I write is lies, read between the lines.
    1. Re:Use subversion either hosted or your own server by the+eric+conspiracy · · Score: 2, Informative

      Mercurial would be better for this because both students would have their own repository and no central server would be required.

    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. Re:Use subversion either hosted or your own server by sys.stdout.write · · Score: 3, Funny

      I would recommend to use Subversion

      I agree. But don't forget to do the thing the students will care most about: shave your beard.

      You look like Richard Stallman.

    4. Re:Use subversion either hosted or your own server by SanityInAnarchy · · Score: 3, Informative

      Seconded.

      Well, actually, Git would probably be better, but that's a matter of opinion. But even with a central server, Git is faster and simpler than SVN for most things.

      --
      Don't thank God, thank a doctor!
    5. Re:Use subversion either hosted or your own server by HaZardman27 · · Score: 3, Informative

      If these students are embarking upon a journey into computer science, I would say that they should get used to scraggly beards.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    6. Re:Use subversion either hosted or your own server by zorg50 · · Score: 2, Insightful

      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.

    7. 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!
    8. Re:Use subversion either hosted or your own server by 0100010001010011 · · Score: 3, Funny

      And that's just the women.

    9. Re:Use subversion either hosted or your own server by ls671 · · Score: 2, Interesting

      > I think that you're answering a different question than what the
      > submitter asked.

      Well, I could be, sorry if I am.

      Subversion allow you to enter comment for every change you make and these comments won't go in the source code.

      For the voice/text chat part, we usually just use messenger or something similar.

      Also, I think this would be a great opportunity for the students to learn how to use a real-life tool instead of something they are less likely to reuse in the future.

      But as you said, maybe this is not what David is looking for but I answered to the best of my knowledge ;-))

      --
      Everything I write is lies, read between the lines.
    10. Re:Use subversion either hosted or your own server by greg1104 · · Score: 3, Funny

      That would be very limiting, because you can't write a successful programming language without facial hair

    11. 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.
    12. Re:Use subversion either hosted or your own server by SanityInAnarchy · · Score: 3, Informative

      Well, svn is also quite complex. Compare a git merge with an svn merge.

      I suppose I should say, easier to use, once you know how. The learning curve might be sharper. On the other hand, it's much easier to set up a Git server than an SVN server -- ssh access is all you need.

      --
      Don't thank God, thank a doctor!
    13. Re:Use subversion either hosted or your own server by FlyByPC · · Score: 2, Interesting

      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.

      If the students used Remote Desktop, nobody would know. I'm posting this during my lunch break at work, but you wouldn't know it from the IP address...

      --
      Paleotechnologist and connoisseur of pretty shiny things.
    14. Re:Use subversion either hosted or your own server by morganmcguire · · Score: 2, Insightful
      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

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

      Emacs in screen -x. Or vim. But they'll freak out with modal editing, I promise. :P

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    16. Re:Use subversion either hosted or your own server by antic · · Score: 2, Funny

      The bearded ones disguised as men.

      --
      'Thats they exact same thing a banana wrench monkey.'
    17. Re:Use subversion either hosted or your own server by skeeto · · Score: 2, Informative

      Emacs can actually do this by itself with X, with each user getting their own cursor so they can type at the same time too. The command is make-frame-on-display, which simply asks for what display to use in addition to the current one. This will even work with Emacs running on one machine, and being displayed on two other machines which have X forwarded via ssh.

  2. Complicated Solutions Exist, So Dumb Them Down by eldavojohn · · Score: 2, Interesting

    Your e-mail address indicates you hold a position at UPenn. While I understand you trying to facilitate their collaboration by providing the right tools, shouldn't they be developing/discovering these tools themselves? I mean at U of MN, we each Unix accounts where we could create directories and set permissions on them. I would create a directory under the directory for that class and grant permissions to my partner and then we would both work on that directory through telnet/ssh/sftp/whatever and keep communicating. Most of the time, we would sit side by side in the lab brainstorming and talking about the project.

    I suggest this because it's ... well, probably more important to my career as a developer than learning Java.

    If collaborating while writing code isn't natural to them, you should be pushing it. I'm not sure what server resources you have at your disposal. What if they have a lot of files? What if you need different permissions for each pair? I would say set up a SVN server but for each pair? And there goes complexity although I found TortoiseSVN to be very simple. It's great experience for them to work with a source control system though.

    So what you should do is write a guide (or better yet, have an grad student write a guide) telling them how to share directories between each other and only each other.

    If these are going to be one file projects (likely) and you don't care if everyone can see/modify everyone else's project (unlikely) why not make a Wiki with ground rules? Just put your code up on you and your partner's page and the whole history is right there.

    Your other option is to go to a higher level course or your department and ask for a solution. You're in a computer science department and you're looking for a particular solution that isn't out there. Everything is too complex: cvs, git, svn, etc. So write up some basic requirements and give it to a class of grad students or someone looking for a research program. I'm thinking like a dumbed down interface to git is all that is needed to be developed. You know, like some really simple java application that points to your local directory and then server and then updates, commits or a few other basic commands? And open source it when you're done coding it :)

    --
    My work here is dung.
  3. How about gobby? by StylusEater · · Score: 5, Informative

    How about gobby... http://gobby.0x539.de/trac/ ?

    1. Re:How about gobby? by gd2shoe · · Score: 2, Insightful

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

      --
      I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
  4. Etherpad by BSDevil · · Score: 5, Interesting
    Try http://etherpad.com/ -

    EtherPad is the only web-based word processor that allows people to work together in really real-time. When multiple people edit the same document simultaneously, any changes are instantly reflected on everyone's screen. The result is a new and productive way to collaborate on text documents, useful for meeting notes, drafting sessions, education, team programming, and more.

    --
    Cue The Sun...
    1. Re:Etherpad by jd · · Score: 3, Informative

      Uck! Marketroid speak! It's not exactly new, there was a multicast-based text editor as part of the MICE suite, and there were some very nice "whiteboard" programs out there which allowed you to use OLE linking to share data between two applications real-time.

      The first certainly was around in the early 1990s, the second was around in the mid 90s.

      EtherPad may be "new" in that it uses HTTP as the underlying protocol, but collaborative editors are ANCIENT. The biggest problem they've faced is that so few people have used them that they have never really maintained critical mass.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  5. 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.

    1. Re:Please by Anonymous Coward · · Score: 2, Informative
    2. Re:Please by FooAtWFU · · Score: 2, Insightful

      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.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
  6. SubEThaEdit or some other choices... by liquidhippo · · Score: 5, Informative

    If you are working on Mac OS X, then SubEThaEdit is a great choice for collaborative coding. As for other options, check this wikipedia page: http://en.wikipedia.org/wiki/Collaborative_real-time_editor

  7. SubEtha? by galego · · Score: 2, Informative

    SubEthaEdit (Hydra once upon a time) allows live collaborative editing. not sure of the security or other implications/issues. I tried it once or twice. Was a decent editor otherwise ... no real big frills.

    --

    Que Deus te de em dobro o que me desejas

    [May God give you double that which you wish for me]

  8. My first assignment for your students would be .. by PolygamousRanchKid+ · · Score: 3, Interesting

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

    If they make a good choice, they will be all smiles. If they make a bad choice, they will have learned something that they will encounter again in their careers.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  9. Good grief by Anonymous Coward · · Score: 2, Insightful

    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.

    1. Re:Good grief by pjt33 · · Score: 2, Interesting

      Not that it's what this is about, as someone else has already pointed out, but getting the brighter students teaching the slower ones benefits both groups. Being able to communicate things which are obvious to you to people for whom they aren't obvious is a valuable skill.

    2. 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;
  10. 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.

    1. Re:Gnu screen by Unoti · · Score: 2, Informative

      Teach them screen, yes. We use it constantly where I work, which is an environment where we have distributed developers working together all around the world. Screen is not dirt simple, but it's a real life practical skill that's worthwhile to teach the students. I'd rather take the extra time to get everyone comfortable with screen and have them do real collaboration than to mess around with pretend solutions like Google docs or etherpad. We use Etherpad and Google docs, too, but for pair programming and troubleshooting, Screen is hard to beat.

    2. Re:Gnu screen by charlesnw · · Score: 2, Informative

      I think that screen is very easy to use.

      ssh
      screen -S "blah"
      ctrl + a :multiuser on :acladd user (repeat for every user you want to have access)

      Took just a couple minutes of googling to find a howto the first time I did it.

      --
      Charles Wyble System Engineer
  11. Just Plain Stupid by pdxguy · · Score: 2, Insightful

    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.

    1. Re:Just Plain Stupid by tthomas48 · · Score: 2, Interesting

      Actually yes. Modern music is almost always collaborative. Sculpture is often done with more than one person. And modern theater is pretty much gotten to the point where you frequently have multiple collaborators (not to mention musical theater which has been paired pretty much since its inception).

      I find that some people are not compatible with paired programming, but when it works it can be amazing. My old boss and I would write code for entire days without getting up once. Not particularly healthy, but ridiculously productive.

    2. Re:Just Plain Stupid by SomeJoel · · Score: 2, Funny

      pair solo singing

      I believe this is called a duet.

      --
      <Complete your profile by adding a signature!>
    3. Re:Just Plain Stupid by Chabo · · Score: 2, Informative

      Actually, there are tons of good examples where pairs resulted in fantastic creative endeavors. Go see a Rogers and Hammerstein musical, or a Gilbert and Sullivan operetta. Or watch "The Matrix" or "The Big Lebowski" while sitting in an Eames lounge chair.

      Except that pairs almost always divvy the work between them in a very delineated way:

      With Rodgers composing the music and Hammerstein adding the lyrics...

      Gilbert, who wrote the words... Sullivan composed the music...

      Partnerships between two people with very similar opinions and skillsets (the Coen brothers, for instance) are extremely rare.

      --
      Convert FLACs to a portable format with FlacSquisher
  12. Bespin or Cola by illumina · · Score: 2, Informative

    https://bespin.mozilla.com/ - is a pretty slick in-browser code editor, that, if I'm not mistaken allows shared editing like Google Docs.

    There is also an Eclipse plugin called Cola that allows simultaneous editing, but I'm not sure how stable it is, I've only seen a video demo.

    And whichever method you choose, source control should be mandatory, ideally distributed (git or mercurial), though SVN is better than nothing.

  13. 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 h4rr4r · · Score: 2, Insightful

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

      Most likely one student will just not learn anything.

    2. Re:Just cancel pair programming by GreatBunzinni · · Score: 2, Insightful

      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.

      --
      Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
    3. Re:Just cancel pair programming by Monkeedude1212 · · Score: 2, Insightful

      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.

    4. Re:Just cancel pair programming by MpVpRb · · Score: 3, Interesting

      I am SO glad that this stupid idea did not exist when I started learning programming.

      If it had, I probably would have quit the class.

      I just happen to learn better alone, just me and the machine.

      I don't want to have to win a debate with another person before trying something, I just want to try it...now.

      ...BTW...now that I know what I'm doing, I work VERY well as a member of a team.

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

    6. Re:Just cancel pair programming by JeffTL · · Score: 2, Insightful

      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.

    7. Re:Just cancel pair programming by smash · · Score: 2, Informative
      Just thought i'd respond to this.

      Back in the day, when I was about 15 and starting out trying to write demos (as in demoscene - we managed to replicate a few effects we'd seen back in the 90s from other big groups - after going "Wtf, how does that work?"), a friend and I started coding together.

      The actual CODING is a one man job, sure; but when you're trying to solve a problem, having 2 minds work on the ALGORITHM gets you better results, quicker IMHO.

      Sure, you'll possibly end up with the same algorithm/code eventually anyway, but having a second set of eyes and brain analyzing the process you're going to use picks up potential problems earlier. While you're thinking you're clever with some part of the problem, the other person is finding the glaringly obvious bug that you haven't seen (yet).

      2c.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  14. 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
  15. Microsoft Live Mesh isn't bad by farina · · Score: 2, Informative

    If you want a folder based sharing solution for Mac or Windows...Microsoft's Live Mesh works fairly nice. I use it for my small company and share all sorts of files with my co-worker.

  16. Eclipse DocShare (Cola) by slim · · Score: 3, Informative

    I initially read the question as being about real time remote collaboration.

    If that's the case, there's Eclipse's DocShare plugin: http://wiki.eclipse.org/DocShare_Plugin

    I haven't tried it, and I don't know how mature it is. But I watched a video presentation on it a while ago and it looked very promising.

    1. Re:Eclipse DocShare (Cola) by greg1104 · · Score: 2, Informative

      There are a couple of presentations, perhaps including the one you allude to, as well as other answers to this question all right where you'd expect them to be: pair programming.

  17. Eclipse + ECF + XMPP (Jabber) by jazzkat · · Score: 3, Informative

    Eclipse offers realtime collaborative editing via XMPP and the Eclipse Communication Framework:

    http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf

    Set up a Jabber server and away you go.

    I have not tried this, so I can't speak to its quality.

  18. 'pair programming' overrated... by Junta · · Score: 2, Informative

    At least it is overrated outside of an educational lab.

    At least when I was in college, pair programming required two people looking at the screen and no more than one typing at a given time. You could use GNU screen, vnc, whatever for this, but realistically speaking, it is inefficient and by and large isn't feasible in the real business world after the days of .com ended.

    At the other end of the spectrum, if you operate in a vacuum, there are definite high penalties of problems being caught later than they should and requiring more rework then they should to acheive the goal.

    I personally go with a revision control system which emails me the patches the other person does, encourage frequent checkins, and review every change. I don't have to sit through them typing and reworking their snippets of code as they catch their own mistakes in their own logic flow, and yet I review the changes shortly after they make them and can offer feedback within the hour. It takes me much less time to review the diff than it does for them to create and 99% of the benefit is still acheived. It's a very happy medium. Most any sane revision control system will let you set up checkin hooks to email changes to appropriate distribution lists.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  19. Well nobody else said it... by Bill_the_Engineer · · Score: 2, Informative

    You're teaching Java and need pair programming...

    Sounds like you need netbeans... http://collab.netbeans.org/http://collab.netbeans.org

    I think it sounds tedious, but you did ask...

    --
    These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
  20. SubEthaEdit allows collaboration... by ghostis · · Score: 2, Informative

    SubEthaEdit does collaborative coding on Mac, if I recall correctly.

    http://www.codingmonkeys.de/subethaedit/

    --


    Computer Science is all about trying to find the right wrench to bang in the right screw. -T.Cumbo?
  21. lmgtfy by schmichael · · Score: 2, Informative

    Multi-user screen: http://aperiodic.net/screen/multiuser Gobby (multi-user text editor): http://gobby.0x539.de/trac/

  22. Re:Don't make the pair programming compulsory by Dolohov · · Score: 2, Funny

    Me, I hate watching someone else program, it's like watching your dog take a shit. But it's a good experience for one term -- some people will find that they hate it, but some will find that they can live with it, and some will find that it works very well for them. Education works well when it bumps you out of your comfort zone from time to time.

  23. Collabed? by msimm · · Score: 2, Informative

    I haven't used it but Collabed looks interesting. Of course most kids would probably end up doing it with im and the occasional email, but it still looks interesting.

    --
    Quack, quack.
  24. Bespin? by mpath · · Score: 3, Informative

    There was some talk a while ago about this. I gave it a shot back then and it was a CPU-hog. With the latest strides in JavaScript (both browsers & the technology), it might be worth another look:

    https://bespin.mozilla.com/

    --
    I'm not sure what the secret to success is, but the secret to failure lies in trying to please everyone -Bill Cosby
  25. Sitting Next to Each Other by Ruke · · Score: 2, Insightful

    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.

  26. Re:My first assignment for your students would be by julesh · · Score: 2, Insightful

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

  27. Screen by Sodki · · Score: 2, Insightful

    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.

  28. screen(1) by Turmio · · Score: 2, Informative
    Setup a publically accessible Linux box at your school. Load the development server with a selection of text editors to experiment, Sun Java JDK and screen (if using Ubuntu, everything is installable by running just one apt-get(1) command). Give each pair a shared account on the machine. Have them connect to the development server using what ever SSH client they please (Terminal.app + command line ssh on Macs, what ever GUI terminal emulator on Linux clients + command line ssh or Putty for Windows clients). First one to log in starts a screen(1) session. Second one will attach to the session by running screen -x. Now they both share the console session in real time. Both can type input and the other one will see the updates immediately. Have them write code using any Unix text editor such as vim or emacs (or pico or jed or what ever for wussies).

    Summa summarum.
    • It can't get more text based than this.
    • Connection will be perfectly usable over a low-bandwidth link (though you should have reasonable latency, say 100ms or less, for jerk-free operation).
    • Minimal requirements at student's end
    • Having to work on text-based command line may sound a bit kinky at first if the student's are not familiar with it, but hey, you need not to be a long-bearded Unix weirdo in order to set up and use this kind of system. It's really simple when you think about it and let your prejudice go and spend 15 minutes learning the basics first.
    • Definitely free as in beer and freedom!