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?"
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.
... well, probably more important to my career as a developer than learning Java.
:)
I suggest this because it's
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.
Cue The Sun...
. . . 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!
adobe buzzword
simple to use
can export it any format
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.
> 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.
Today there's little technical reason to offer any other interface into a UNIX host than ssh. If they need some other interface, they can setup a tunnel.
FTP, telnet should be actively DISABLED. WinSCP team, shame on you for adding FTP into your otherwise fine program.
The number of "developers" I've seen who thought FTP was require when ssh was available is staggering.
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.
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.
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.