4 ms·
> in groups of two I wouldn't doubt there's good research showing pair programming is a great way to learn, but anecdotally/observationally I really have troub
by throwaway287391 5y ago
> in groups of two
I wouldn't doubt there's good research showing pair programming is a great way to learn, but anecdotally/observationally I really have trouble believing it's effective. In my experience, in at least half of pairs there will be one more skilled programmer and one less skilled programmer and the better one does the lion's share (if not all) of the work -- this is doubly true if the partnerships are randomly assigned. Even if the worse one is trying their best to stay engaged and follow along, it's just hard to do if the other person is faster than you, and you might even feel like you're being a bit of a useless nuisance by asking questions when the other person is clearly capable of working on their own. (I've been on both sides of this in different contexts, BTW.)
But I imagine my intuition must be wrong since this is such a popular teaching method -- interested to read any research/counterpoints on the subject.
- enriquto 5y agoI only have anecdotal evidence. But in my lab we have tried all combinations (working in groups of n, for n=1 to 4, randomly assigned or not). All setups may fail, for different reasons, but the setup that is consistently less likely to fail is two students that get along well with each other. The case when one of them is more skilled is actually very good, because then they teach the other one. There's often other work to do, like presenting the solution, or writing a short report, and they can share that work as they see fit. As a student, many years ago, I have been in both situations: the more skilled of the group who taught the other, or the less skilled that was taught (and worked really hard because I was ashamed to be a "useless nuisance"). Both experiences have been very positive in my case.
- mkingston 5y agoI was swayed by the argument against working in pairs, then swayed back by your argument in favour of working in pairs. I think the key part that changed my mind was "two students that get along well with each other". I wonder if you emphasise this in your instructions to students? And if so, how?
- enriquto 5y agoWe just let them group themselves. If there's an odd number of students, a group of three is allowed. Every couple of years there's a "bad experience", in which one of the students does all the work, or some kind of conflict. But so far it seems to be a good choice overall (after the deal, the students generally say that it was a happy experience).
- throwaway287391 5y ago> The case when one of them is more skilled is actually very good, because then they teach the other one. Right, I get that that's the theory, it's just that I've never personally seen it work out so well in practice. I can imagine how it's extremely useful and rewarding for both partners if you have two very motivated people, and the better one is keen to teach and even genuinely open to suggestions from the "worse" one, and the "worse" one is keen to learn. That's the model for a good partnership that most people probably have in mind when they propose doing a project like this. I've just never actually seen a partnership work out like that -- it feels like it requires both members of the parternship have top ~quartile motivation/empathy/communication skills (which as you could imagine might end up being pretty rare among randomly selected CS students...). In any case thanks for sharing your experience -- good to know that it actually can/does happen!
- makeitdouble 5y agoTo me the key part is really this: > There's often other work to do IMO there needs to be somewhat of a give and take situation (which can also work on other angles with pairs that already like each other for whatever reasons). When finding a balance is just hard, straight rewarding the more knowledgeable/faster half of the pair could work too, provided there is a reliable way to identify them and how much they helped their counterpart.
- visiblink 5y agoI don't know about C.S., but anecdotally, I studied with another student as an undergrad and taught him Zoology. It was good for me (I was forced to explain all the concepts thoroughly) and good for him (he did fairly well in the course). Win-win.
- anonymousDan 5y agoOut of interest, do you actually force them to follow pair programming best practice (e.g. periodic switching)? Or just put them in groups of two and let them at it?
- rytor718 5y agoIm not the person youre responding to but I have a similar experience and I usually let the pairs make their own decisions about how they work. I've found that to be many times more effective than "switch every x minutes" or interfering in any other way. Let them work it out. I only step in if there's a problem (students not showing up, refusing to work, etc -- which is very, very rare).
- teddyh 5y agoI always felt cheated when teachers do this. Either I’m the better one in the pair, and I’m forced to waste my time doing the teacher’s job teaching simple concepts instead of learning anything new myself, or I’m the less knowledgeable in the pair, and instead of listening to a professional I’m stuck being tutored by an amateur who doesn’t know how to explain anything.
- ModernMech 5y ago> I’m forced to waste my time doing the teacher’s job teaching simple concepts instead of learning anything new myself IMO you can't say you really understand a thing until you've taught it to someone else. Your teachers gave you the opportunity to hone your own teaching skill, something you will use your entire CS career. Just wait until you are a senior dev holding the hand of someone more junior than you. If you think there is a skill gap between you and your peer in the same class, imagine the experience gap between you and someone 20 years younger than you.
- teddyh 5y ago> Your teachers gave you the opportunity to hone your own teaching skill If I wanted a lesson in teaching, I would take a class in it. Teachers should teach the subject as advertised. http://www.machall.com/view.php?date=2005-01-26 http://www.machall.com/view.php?date=2005-01-26
- recursive 5y agoDoing group work is a very normal part of software development. Lacking any particular "advertisements", it seems entirely reasonable for a software course to provide experience that is consistent with that.
- recursive 5y agoThis was my feeling too, and so I always found a way to weasel out of groups. In the decades since though, I have come to think that it was a mistake. In the ways you describe, academic group work is pretty similar to being a professional developer, unless you're in a solo project. The experience of dealing with people would have been more instructive (for me) than whatever ostensible subject material we were covering at the time.