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?"
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.
How about gobby... http://gobby.0x539.de/trac/ ?
Cue The Sun...
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.
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
. . . 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!
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.
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.
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
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.
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.
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;
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