Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Collaborative Software For Pair Programming?

timothy posted about 5 years ago | from the is-your-sister's-name-cynthia? dept.

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

cancel ×

302 comments

Use subversion either hosted or your own server (5, Informative)

ls671 (1122017) | about 5 years ago | (#28761195)

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 [asp.net]

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

Re:Use subversion either hosted or your own server (2, Informative)

the eric conspiracy (20178) | about 5 years ago | (#28761279)

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

Re:Use subversion either hosted or your own server (3, Informative)

SanityInAnarchy (655584) | about 5 years ago | (#28761363)

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.

Re:Use subversion either hosted or your own server (0)

Anonymous Coward | about 5 years ago | (#28761643)

I wouldn't say "simpler". Git can be quite complex. Just the fact that the repository is local and must be pushed and pulled in addition to commit makes it more complex. However, I agree Git is better.

Re:Use subversion either hosted or your own server (5, Insightful)

davester666 (731373) | about 5 years ago | (#28761733)

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.

Re:Use subversion either hosted or your own server (4, Insightful)

RichardJenkins (1362463) | about 5 years ago | (#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?

Re:Use subversion either hosted or your own server (3, Funny)

sys.stdout.write (1551563) | about 5 years ago | (#28761313)

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 [upenn.edu] .

You look like Richard Stallman.

Re:Use subversion either hosted or your own server (3, Informative)

HaZardman27 (1521119) | about 5 years ago | (#28761617)

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

Re:Use subversion either hosted or your own server (3, Funny)

0100010001010011 (652467) | about 5 years ago | (#28761825)

And that's just the women.

Re:Use subversion either hosted or your own server (1)

Joe Snipe (224958) | about 5 years ago | (#28761835)

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

I beg to differ [microsoft.co.il]

Re:Use subversion either hosted or your own server (3, Funny)

greg1104 (461138) | about 5 years ago | (#28762019)

That would be very limiting, because you can't write a successful programming language without facial hair [alenz.org]

Re:Use subversion either hosted or your own server (1)

localman57 (1340533) | about 5 years ago | (#28761317)

I agree. You could run a local subversion server in your lab. Require each student to have a flash drive (the 128MB ones they sell at walmart for $5 would be fine) where they can do checkouts. Each student pair would have their own repository.
Do the checkouts / checkins from the flash drive in the lab at the beginning / end of class. That way the students can hack code at home on anything from Win98 / Notepad to Vim on their Mac. They wouldn't even need internet at home.
Because you could do all the setup before the term started, the students could concentrate on the basics of what you want to teach them, ie programming constructs and software development methods.

Re:Use subversion either hosted or your own server (2, Insightful)

zorg50 (581726) | about 5 years ago | (#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.

Re:Use subversion either hosted or your own server (2, Interesting)

ls671 (1122017) | about 5 years ago | (#28761879)

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

Re:Use subversion either hosted or your own server (1)

Roxton (73137) | about 5 years ago | (#28761697)

That's not paired programming, though. This guy needs some kind of shared VNC + microphone setup.

Complicated Solutions Exist, So Dumb Them Down (2, Interesting)

eldavojohn (898314) | about 5 years ago | (#28761205)

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

Re:Complicated Solutions Exist, So Dumb Them Down (1)

MaerD (954222) | about 5 years ago | (#28761447)

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.

I find SVN pretty easy to use for just about anything that's plain text. Also, you don't need one for each pair. Honestly a main tree with a "branch" for each pair should be plenty.

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.

Uhm, if it's in svn there's no real reason to keep them from being able to see it. If cheating is your concern (on a project that involves creativity, if it's basic simple stuff or "from the book".. who cares) svn gives you the ability to easily compare code. Also, if someone purposefully overwrites someone elses project branch, you simply revert that change, and punish the student. (Accidents may happen, but if someone does bad things to someone else's project on purpose... an F and/or expulsion is probably called for).

Re:Complicated Solutions Exist, So Dumb Them Down (1, Insightful)

Anonymous Coward | about 5 years ago | (#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.

Re:Complicated Solutions Exist, So Dumb Them Down (1)

wjousts (1529427) | about 5 years ago | (#28761627)

my last crop of interns from the local university thought CVS was something that came with eclipse

At least they didn't think it was a drug store.

Pastebin? (1)

caramelcarrot (778148) | about 5 years ago | (#28761215)

One of the pastebin-type sites may well fit your criteria - some of them include revisions or even test-running code.

Obvious answer is obvious (1, Informative)

jornak (1377831) | about 5 years ago | (#28761219)

http://code.google.com/ [google.com]

'nuff said.

Re:Obvious answer is obvious (1)

ravenlock (693538) | about 5 years ago | (#28761563)

I think the OP is going for collaborative editing, not sharing code via a SCM. The feedback cycle is entirely different when you can just type up something and the other party sees it immediately, instead of having to commit, notify the other, then have them do an update.

How about gobby? (5, Informative)

StylusEater (1206014) | about 5 years ago | (#28761227)

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

Re:How about gobby? (0)

Anonymous Coward | about 5 years ago | (#28761535)

Wow, a realtime, cross-platform and actually functional collaborative native editor, even meant for programming. Performance feels great as well.

I had never seen this before. This will be very useful, thanks! Just what you need when you interactively collaborate (pair programming and stuff).

Re:How about gobby? (0)

Anonymous Coward | about 5 years ago | (#28761747)

I second this, I've used gobby extensively with a colleague and it has been a great solution.

Re:How about gobby? (2, Insightful)

gd2shoe (747932) | about 5 years ago | (#28761873)

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

Etherpad (5, Interesting)

BSDevil (301159) | about 5 years ago | (#28761245)

Try http://etherpad.com/ [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.

Re:Etherpad (0)

Anonymous Coward | about 5 years ago | (#28761361)

Try http://etherpad.com/ [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.

It isn't the only.

http://zeus.cs.drexel.edu

Re:Etherpad (1)

mrbene (1380531) | about 5 years ago | (#28761407)

I've used EtherPad to collaborate on text - it's great for fine tuning wording. The larger the file, the less likely you are to be in the same place at the same time tho - and your students might not need to have as immediate an interaction.

Re:Etherpad (1)

Jazzer_Techie (800432) | about 5 years ago | (#28761883)

I second this suggestion. I've used etherpad quite successfully for real-time collaboration for between 2-4 people. Pair programming is even one of the suggested use cases on the website.

Re:Etherpad (3, Informative)

jd (1658) | about 5 years ago | (#28761895)

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.

Re:Etherpad (0)

Anonymous Coward | about 5 years ago | (#28761961)

Seconding this, i helped test some of it and they got it done perfectly, much better than the horrible experience i had with Google Docs collab. (sadly)
There were some load issues, but those have more-or-less been solved.

The only fault was not so much a fault of the system, but a fault of the users, and that is ctrl+a abuse.
But it would be nice to have a setting for the creator to disable ctrl+a events.

Please (3, Insightful)

Anonymous Coward | about 5 years ago | (#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.

Re:Please (1)

doroshjt (1044472) | about 5 years ago | (#28761331)

Are they programming a shared program, like each tackle a separate module, or is one watching the other type?

Re:Please (0)

Sparr0 (451780) | about 5 years ago | (#28761367)

Do you realize that "sitting together at one computer" has nothing to do with Pair Programming?

Re:Please (2, Informative)

Anonymous Coward | about 5 years ago | (#28761927)

Really? [wikipedia.org]

Archane (0)

Anonymous Coward | about 5 years ago | (#28761259)

I use www.pastebin.com for my code sharing.

a friend and I use it at least once a week to look at code and make changes. plus you would have access to see it as well.

SubEThaEdit or some other choices... (5, Informative)

liquidhippo (988103) | about 5 years ago | (#28761271)

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 [wikipedia.org]

Could try (1)

gubers33 (1302099) | about 5 years ago | (#28761275)

JCreator, it is an easy to use java compiler that would work fine for an introductory Java Class, I have used it to write games. You could use a TortoiseCVS as a share on a schools server. Both programs are free opensource.

Re:Could try (1)

peterjb31 (1108781) | about 5 years ago | (#28761973)

JCreator is not open source and the light edition is only free if you are using it in academia. The free version also doesn't have a built in CVS client. In this situation there are many other IDE's out there which are Open Source and have many more features (Netbeans or Eclipse) and are cross platform for an added bonus.

SubEtha? (2, Informative)

galego (110613) | about 5 years ago | (#28761315)

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.

Plaintext? (1)

Dan East (318230) | about 5 years ago | (#28761343)

but students will be sharing code - plain text - not RTF or HTML or Word files

I'm with you on Word files being binary, but RTF and HTML are both plain text.

Re:Plaintext? (1)

jd (1658) | about 5 years ago | (#28761921)

I'd consider RTF to be RatherObscureText, rather than PlainText, and HTML is more ModeratelyobscureText. Both can be contrasted with TeX, which is AlmostPlainButBloodyAnnoyingText.

discussion forum (1)

poetmatt (793785) | about 5 years ago | (#28761355)

even good ole discussion forums where everyone quotes eachother and modifies, creates new threads for other topics, etc would work just fine. Subversion would make that easier and the google docs suggestion or open office can do this too.

Github (0)

Anonymous Coward | about 5 years ago | (#28761395)

If you want private, pay, otherwise it's free and super easy to use.
http://github.com/

My first assignment for your students would be .. (3, Interesting)

PolygamousRanchKid (1290638) | about 5 years ago | (#28761401)

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

Good grief (2, Insightful)

Anonymous Coward | about 5 years ago | (#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.

Adobe Buzzword (1, Interesting)

Anonymous Coward | about 5 years ago | (#28761409)

adobe buzzword
simple to use
can export it any format

Gnu screen (3, Insightful)

jgrahn (181062) | about 5 years ago | (#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.

Re:Gnu screen (1)

jellomizer (103300) | about 5 years ago | (#28761809)

While the course may not be about working in teams and having the students learn to collaborate. You should teach them that anyway. It is a valuable skill in Real Life (c) [tm]. Now you should have them do it their own way but give them guidelines on what they should consider. Use a versioning system sure. Emails IM to make sure they are not stomping on each foot. Or do it the Old way (GASP) write out what they will do each of their responsibility make a project plan and who will do what and when. Make prototypes etc....

You don't need to grade them on their project management. However learning isn't always about the class you teach.

Re:Gnu screen (2, Informative)

Unoti (731964) | about 5 years ago | (#28762017)

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.

Windows Live Mesh (1)

bivaughn (235462) | about 5 years ago | (#28761427)

The currently in-beta Windows Live Mesh (www.mesh.com) allows multiple users to share file folders and synchronizes changes of the files inside each folder between them transparently. It is amazing.

Re:Windows Live Mesh (1)

iamapizza (1312801) | about 5 years ago | (#28761545)

Another vote for Live Mesh - I use it as a 'lazy source control' at home. They've got versions of it out for the OSX and Windows Mobile already, I just wish they'd make one for Linux*.*. You (plural) may recall a /. post earlier about how many of us still haven't switched completely to Linux because there's always some software on Win*.* that we need that isn't available on other OSes. For me, this is it.

Re:Windows Live Mesh (1)

h4rr4r (612664) | about 5 years ago | (#28761655)

Use rsync, find and cron. If a file has been changed in the last X minutes move it.
TADA!

Re:Windows Live Mesh (1)

johanatan (1159309) | about 5 years ago | (#28761771)

LiveSync is better for syncing between personal computers (no storage limit and no need for central server). Mesh also has bugs around deleted, renamed, moved files etc. If you want a Mesh-like solution (i.e., with centralized storage) try: http://dropbox.com/ [dropbox.com] (it handles complex file operations perfectly and intelligently [unlike Mesh]).

Just Plain Stupid (3, Insightful)

pdxguy (726066) | about 5 years ago | (#28761479)

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.

Re:Just Plain Stupid (2, Interesting)

tthomas48 (180798) | about 5 years ago | (#28761661)

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.

Re:Just Plain Stupid (2, Funny)

SomeJoel (1061138) | about 5 years ago | (#28761713)

pair solo singing

I believe this is called a duet.

Re:Just Plain Stupid (1)

Jupiter Jones (584946) | about 5 years ago | (#28761993)

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.

Programming is an art, sure. But no more or less than any other engineering discipline. Go tell the Wright brothers or Hewlett and Packard that working in pairs is "just plain stupid".

There are valid arguments against Pair Programming. However, the old "creativity is a one-man show" idea isn't one of them.

JJ

Bespin or Cola (2, Informative)

illumina (98404) | about 5 years ago | (#28761497)

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.

Re:Bespin or Cola (0)

Anonymous Coward | about 5 years ago | (#28761929)

I second the Bespin advice, very nice and designed for this kind of task.

AC

Re:Bespin or Cola (0)

Anonymous Coward | about 5 years ago | (#28761953)

It does and if they mean simultaneous editing like Google Docs this is the closest you'll get. The other suggestions of Git and Subversion don't come close. If Bespin was integrated with Google Wave that'd be even better but I don't think that exists yet.

Git? (1)

grungy (634468) | about 5 years ago | (#28761499)

Why not use git? Or cvs or any other source control, really. If it's really pairs, they could just email the source back & forth, and that might be easiest, provided they can manage conflicts on their own. With three or more that could be a hassle, and then I'd set up source control. Heck, make your departmental sysadmin do it! Then it'll be painless :)

VNC (1)

dgym (584252) | about 5 years ago | (#28761515)

If you have somewhere to host them you could set up some VNC servers running a desktop and all the applications they need. Two people can share the same VNC desktop so you can do the joint development. What this doesn't do is coordinate things at all, but for that I would suggest VOIP as it doesn't need mouse or keyboard input.

One bonus is that they don't have to set up much software, just a VNC client and a VOIP client. Setting up the VNC servers is easy too, you only need to get a host installed with all the right software and then run as many VNC servers as you need on top of that.

Re:VNC or TeamViewer (1)

JonahsDad (1332091) | about 5 years ago | (#28761907)

If you can use VNC, go for it.
If that won't work, but you're both using Windows or OS X, try http://www.teamviewer.com/ [teamviewer.com]
Free for non-commercial use.

Just cancel pair programming (4, Insightful)

h4rr4r (612664) | about 5 years ago | (#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.

Re:Just cancel pair programming (1)

indre1 (1422435) | about 5 years ago | (#28761653)

Does it actually matter if both the students know exactly what each line of code does? In many cases, programming might just be a "side course" for some other specialty where understanding some code makes your life a bit easier.

Re:Just cancel pair programming (2, Insightful)

h4rr4r (612664) | about 5 years ago | (#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.

Re:Just cancel pair programming (1)

PolygamousRanchKid (1290638) | about 5 years ago | (#28761889)

One of my profs used to say:

"Most students say that they learn the most in this course from the lab exercises."

"Actually, I think that they learn the most from their lab partners."

Re:Just cancel pair programming (2, Insightful)

GreatBunzinni (642500) | about 5 years ago | (#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.

Make the students figure it out.. (0)

Anonymous Coward | about 5 years ago | (#28761541)

I recently graduated and although no professor had "forced" us to use collaborative tools on our projects we always ended up doing so.

Google Code was popular, as were a few other cheap/free SVN driven online solutions..

No Special Software Needed apart from Chat (1)

loom_weaver (527816) | about 5 years ago | (#28761557)

When I pair program, what works best is to have two computers. One person does the typing with the 2nd watching. However, when needed, the 2nd person can use their computer to look things up and do research on the fly when needed to support the 1st.

If information (such as a URL) needs to be passed from one system to the other then a simple chat client does the trick.

Some tools I use... (3, Insightful)

SpryGuy (206254) | about 5 years ago | (#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

Set up a Ning network (classroom). (1)

bughuntr (1602043) | about 5 years ago | (#28761603)

I would suggest looking at using http://www.ning.com/ [ning.com] I have taught several classes on technology, and rather than set up a server, or using "collaborative" software clients, I've used ning as my online classroom for students. It does take some configureation on your side, but it's rather simple to set up and customize. You can also set it up to be a closed network, so only your students can get into it.

Microsoft Live Mesh isn't bad (2, Informative)

farina (1602051) | about 5 years ago | (#28761607)

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.

What about Kibitz? (0)

Anonymous Coward | about 5 years ago | (#28761615)

Doesn't seem that anyone has mentioned "kibitz". This is a shell program (*nix) that allows two users to share one shell session. I find it works quite well for this kind of thing.

Eclipse DocShare (Cola) (3, Informative)

slim (1652) | about 5 years ago | (#28761683)

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 [eclipse.org]

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 DocShare (0)

Anonymous Coward | about 5 years ago | (#28761687)

Try the DocShare Plugin for Eclipse:
http://wiki.eclipse.org/DocShare_Plugin

Google sites or PBwiki (1)

prajjwal (965508) | about 5 years ago | (#28761701)

http://sites.google.com/ [google.com] should be a good place to start, or some other free wiki hosting site such pbwiki.com. A wiki is good for text sharing, very easy to get started with, and allows extra functionality (cross linking, multiple pages) that help collaborate, and is also good for submitting a final report!

Could it be... (1)

grepya (67436) | about 5 years ago | (#28761705)

Could it really be someone who's teaching programming at a major US university doesn't know about source control systems ??

EtherPad (1)

Hortensia Patel (101296) | about 5 years ago | (#28761711)

Realtime, web-based collaborative text editor. If you don't especially care about the data being hosted out there amongst the tubes, free. (I suspect that the people suggesting SVN et al don't quite understand what pair programming is...)

http://etherpad.com/ [etherpad.com]

Re:EtherPad (0)

Anonymous Coward | about 5 years ago | (#28761775)

Use gobby... you host it locally (well, the gobby client can act as a server, or you can run a standalone server, sobby).

http://gobby.0x539.de/trac/ [0x539.de]

shared screen (1)

karlh626 (1600799) | about 5 years ago | (#28761715)

vi through a shared screen

VNC, RDP + Yahoo IM/Skype for voice. (1)

HashDefine (590370) | about 5 years ago | (#28761721)

I have paired up remotely using VNC to share the editor session, and skype for the voice part. It works surprisingly well.

Google Wave? (1)

AndrewNeo (979708) | about 5 years ago | (#28761729)

I know that it's not out yet, but isn't this a perfect example of what Google Wave is for?

Git, SVN, CVS, IM, IIRC, Jabber, Skype, and ACE (0)

Anonymous Coward | about 5 years ago | (#28761731)

Code version control: Git, SVN, CVS,
Text communications: IM, IIRC, Jabber, AIM, whatever. gtalk
Screen Sharing: Skype - video, voice, text chat, desktop sharing all in 1.

Phone and conferences: google voice, & skype. The goal being free conferencing withot any long distance costs.

Interactive Text editing: ACE http://freshmeat.net/projects/ace [freshmeat.net]

Good thing I've never thought about this at all.

You have programmers... (0)

Anonymous Coward | about 5 years ago | (#28761759)

You have programmers and don't have an obvious solution to your niche problem. It sounds like you could have them, or an older year class, make it a project to solve that problem. Getting students to solve actual problems is important to getting them to realize what type of problems are actually out there and what it takes to solve them.

Try Gobby (1)

Ashcrow (469400) | about 5 years ago | (#28761781)

"Gobby is a free collaborative editor supporting multiple documents in one session and a multi-user chat. It runs on Microsoft Windows, Mac OS X, Linux and other Unix-like platforms. " It is GPL, easy to use and lets you code together very rapidly. http://gobby.0x539.de/trac/ [0x539.de]

Plone is a good choice (0)

Anonymous Coward | about 5 years ago | (#28761831)

Plone [plone.org] is a free and libre content management system written in Python, for the Zope Web Application server, that has quite easy to get up and running and is a good choice for your scenario:

You don't really need to customize anything as these extra features are available as plugins, which are easily installable. As a plus, you might feel the need to ditch Java for Python ;)

Eclipse + ECF + XMPP (Jabber) (3, Informative)

jazzkat (901547) | about 5 years ago | (#28761839)

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

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

Set up a Jabber server and away you go.

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

Mercurial hosted by BitBucket (1)

ptuxdev (1035182) | about 5 years ago | (#28761849)

I used BitBucket in my 2-4 developer teams - we all live far from each other or had to work late at night - BitBucket combines versioned code, via the distributed SCM Mercurial, with a wiki and bug tracking system which were all indispensable in helping us design, code, and test our project. This can all be done privately, commits made over the web with ssl or through and ssh tunnel, and BitBucket offers OpenID integrated authentication to their website along with traditional passwords. Best of all, your first 150MB of server space is free! and AFAIK eclipse and netbeans have a mercurial plugin

Groups (1)

peterjb31 (1108781) | about 5 years ago | (#28761881)

As part of my degree we had to do some group development projects and chose to set up a google group to put all the work on as it allowed us to upload any type of file. We also used the page creator in it to make links to versions as they changed. This was pretty simple to set up and use though slightly tedious as times.

Google Notebook (1)

Scraps232 (1379677) | about 5 years ago | (#28761893)

Google Notebook has been easy to use and could work out. I don't think it's plain text because it creates links out of www.example.com but it is easy to share a google notebook and allow access to it to multiple people.

NetBeans Collaboration Project (0)

Anonymous Coward | about 5 years ago | (#28761903)

You might also want to check out The NetBeans Collaboration Project:
http://collab.netbeans.org/

Netbeans Collaboration services (0)

Anonymous Coward | about 5 years ago | (#28761917)

Take a look at the Netbeans Collaboration tools. http://collab.netbeans.org/

Skydrive (1)

Demonantis (1340557) | about 5 years ago | (#28761933)

MSN has a service just like Google Docs, but built more like a "cloud"(hard-like) drive on the internet. If I remember correctly its skydrive.live.com or google it. I used it to trade code between lab computers at school.

Google Code (1)

AncientPC (951874) | about 5 years ago | (#28761943)

My professor went through many solutions (including our CS department's own subversion repositories) and eventually just settled on Google Code. It's easy enough to set up and use with a 30 minute primer on subversion (how to import, check out, commit, resolve conflicts).

The biggest drawback / concern was that you cannot make code hosted on Google Code private. However in our case we were working with 6-7 person groups on a major project so stealing code was not an issue since each team's implementation was radically different from each others.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...