Stanford Turns To Pair Programming: 1 CS Education For the Price of 2?
theodp writes: Stanford students may pay $44,184 in tuition, but that may not even entitle them to individually graded homework. The Stanford Daily reports that this quarter, Stanford's Computer Science Department will implement 'pair programming' in the introductory computer science courses CS 106A: Programming Methodology and CS 106B: Programming Abstractions. "The purpose of this change," reports the paper, "is to reduce the increasingly demanding workload for section leaders due to high enrollment and also help students to develop important collaboration skills." The CS 106A Pair Programming Q&A page further explains, "Our enrollments have grown rapidly, and we are trying to explore creative new ways to manage student work that will also reduce the heavy workload on our section leaders," adding that students who don't get with the Pair Programming program and elect to go solo will not be awarded "late days" that can be used to avoid penalties on overdue assignments, unlike their paired classmates. Google in November put out an RFP to universities for its invite-only 3X in 3 Years: CS Capacity Award program, which aimed "to support faculty in finding innovative ways to address the capacity problem in their CS courses," which included a suggestion that "students that have some CS background" should not be allowed to attend in-person intro CS courses. Coincidentally, Google Director of Education and University Relations Maggie Johnson, whose name appeared on the CS Capacity RFP, was Director of Undergraduate Studies in Stanford's CS Department before joining Google.
otherwise known as group work.
a corrupt system just gets more corrupt as time goes on
Makes sense, right?
Students go to school to learn.
I always did better with personal access to my teachers and I never knew more than the teacher/instructor/professor (that is, Not Graduate "Assistants").
I always did better with personal attention. Some concepts are not easy to grasp.
But Standford, refusing to hire more "Educational Helpers" gets the students to teach each other.
And they wrap this dismal plan in teaching the student how to work together. (I always liked linking my fate to ignorant classmates.)
More money for less education.
Bunch of turds.
Preferably smart.
has got to be the dumbest thing I've ever heard.
You pay 41K+ tuition... oh, you've had basic programming in HighSchool due to STEM... um.... you cannot attend class in person. Oh, and you have to write your programs Mongo, And (in that bright, cheery voice) your grade is dependent on their grade. Have a nice day.
Sorry - this is just BS.. you are overworked - do what everyone else has to in the real world... hire more people. Project Management 101... time...resources...money.
Another symptom of the college bubble - paying more and more for less and less. Even with TAs there is such a flood of students that the grading is overloading the system. Students now can't even get a unambiguous assessment of their capability in a subject.
OK, so now when an employer wants to see grades and transcripts, what should they make of those grades? Was that person riding the coat tails of a smarter partner? Yeah, I'm sure partners would change class to class, but some students are pretty savvy and will know to sit next to the smart kid in class for this reason.
Left MS Windows for Linux Mint and never looked back!
Vote for Bernie in 2016!
- Not allowed to attend classes in-person?
- Lose privileges for daring to go solo?
- Evaluated for shared group work?
So they are making it look more and more pretty much like a very expensive MOOC.
The education bubble has been something people have been talking about for years. It is coming. What am I getting from most of these classes that I couldn't get from a good online course? Or better yet an online course with some sort of proctor in a class room that managed the class? professor isn't going to grade my work anyway. So what is the difference?
That way at least you might get a top class lecturer.
I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
We nerds are going to get all the girls now? Suuuure!
they used to call this EXTREME PROGRAMMING 12+ years ago and were pitting programming as pairs as the hottest thing since sliced bread.
just goes on to show that the teaching programming and how the programs should be structured and all that.. they don't know, so they just change whatever every year a little bit for sake of changing things and then when there's enough years it goes back in cycle, sometimes with a new name for the old thing. I think they were just calling it XP back then because there were athlon XP's and windows xp around..
world was created 5 seconds before this post as it is.
https://www.youtube.com/watch?v=dYBjVTMUQY0
Pair programming works by having a more experienced coder working along side a less experienced coder. The fruits of that asymmetry is what it's all about.
If you wanted pair programming in an academic setting, it would mean giving a dedicated tutor to every student in that class.
This, however, is just working in pairs. Not the same at all.
Hopefully without the buttsecks.
If this course goes the way of the intro-CS classes of old, then one person will do all of the work, and the other will be bewildered and lost. Once expanded to the entire curriculum, the graduates will be evenly split between the learned and the lost.
I often wonder if programming is an inate ability that can only be polished and improved. It is like fine art or music, it is immediately obvious who the great performers will be. The brilliant students eclipse the teacher in ability. As such, the rote of the teacher is to expose the students to the ideas and works of the great masters, and to help the student with their carreer.
Pair programming isn't on the face bad and there are several aspects to it that are good, but it has to be implemented properly.
A lot of the early research on using it in an educational setting (see publications by Laurie Williams or Charlie McDowell ) found that it works best if you know the students who will be using it can already program individually. Otherwise you tend to get cases of severely mismatched abilities where one person does most of the work and the other just coasts by. So you also need a reasonable approximation of each student's ability so you can arrange pairs based on that. There's also other research that looked into pairing based on personality or other attributes that found some results to indicate some approaches are more preferable than others.
Using it right out of the gate when you don't have a good gauge of the different ability levels of the students could be detrimental in some cases. If used correctly, pair programming can be beneficial for students and teacher alike, but here it looks as though they're trying to use it as a solution to cut down on the amount of work they need to do. There are probably better ways of approaching that problem.
Pretty sure attractive female students (and a few attractive males) never needed to do their own homework in the first place. Pretty sure cute girls would get their choice of overachieving nerds to pair up with.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
It's a system where the loud homosexual guy explains and takes credit for all the work.
Funny how this system explicitly recognizes that throwing more bodies at a project will make it later (... by "awarding" late days to the teams and not the individuals...)
Admittedly, it wasn't specifically a CompSci class, but when I took our engineering school's 'Intro to Programming' course, we were paired up for the assignments. The only rule was that I wasn't allowed to pair up with Sebastian, as we were the two who had significant programming experience before we got to college.
When I took Numerical Methods my sophomore year, we were paired up in class, but that was partially because the computer lab we worked from didn't have enough computers for all of us. When it came time for the final, they had to book a second lab so that we'd all have computers to compile on. (which meant those of us in the room w/ newer machines had an advantage over the other room, as our code would compile in 1/2 the time)
But let's face it -- group projects are pretty typical in college. And pairing up for labs is normal too ... we don't accuse chemists of getting 1/2 an education if they didn't do every last titration themselves, or a geography major of getting 1/4 an education if they have 3 people in their study group.
The goal is get the people to learn the materials -- if done right, the two people learn from each other. Yes, it can be a drag if you get an idiot for a partner ... but unlike in high school, the people who know their stuff are in demand for their skills, not looked down on for being a nerd/geek/whatever other disparaging term.
If you have two people making forward progress then it's better than one person struggling along and getting nowhere. Maybe I'm being a bit socialist in my views, but there are sometimes when we need to step away from the 'everyone for themselves' typical American attitude and look at the nordic standards for schooling. You don't want your school to get a reputation for being the one that produced someone who screws up in some major way. My undergrad is in civil engineering -- and if I find out I'm in a building that one of my classmates worked on, I'm going to leave ... immediately.
Build it, and they will come^Hplain.
Spot on. There are studies that clearly show the only case where pair programming is more efficient is for the novice in novice-expert pairs (while slowing down the expert); expert-expert and novice-novice pairs both lose productivity.
So everyone is pushing CS and STEM as hard as they can, but the schools don't have the manpower to support the influx of students? That's Brilliant.
Except for a few, this will be how it turns out. The result are just more bad coders. As if the world were not already overflowing with them...
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
This should significantly increase female enrolement in computer courses, now that they don't actually have to do any work to get good marks. This will also incrrease dating chances for (male) nerds.
Given that this whole mess will decrease the value of a degree from Stanford, you might be better off looking elsewhere. After all, why pay a premium for a "name" that is in the process of trashing its' brand?
Ah! Here's where everybody gets it wrong: you can get the same education at any university.
Why go to Stanford, Harvard, etc ...
Yes, name recognition but, those schools have such competitive admissions, an employer knows that they are getting someone sharp - regardless if they even finish. Isn't amazing how many billionaires are dropouts from those schools? But yet they get noticed for their ideas? Investors hang out at those schools because they know those schools attract the type of people who come up with billion dollar ideas.
If I knew a really sharp kid, I would say try to get into Stanford, Harvard, MIT, CalTech, etc ...., go one semester - maybe two - and then drop out and finish your degree at state.
NOW ... you can put one of those awesome schools on your resume and show a degree. When asked why you left Stanford, "I ran out of money."
No one will question that.
On the contrary, once upon a time (and perhaps still) the CS and engineering classes were one of the few places female students would have to do their own homework. Because the male students didn't even have the minimum level of suavity and othr social skills to convince a woman to spend time with him even with grades on the line. And to the non-nerdy girls, a choice of overachieving nerds was less appealing than the choices at the campus cafeteria. (the nerdy girls didn't need help with their homework anyway)
... or just put on your resume that you have gone through all the free CS video lectures.
As long as you were accepted - get that acceptance letter. Anyone can watch online lectures, but to actually get accepted? Nope.
and Apprentices do real work not theory based book work also that system costs less with much less skill gaps as well.
(Aside: what, no woman-in-CS tie-in? What with women being more social, and all that? Just wondering.)
Pair programming is one of those ideas so awful that it could only come from a university.
Sure, if I want to bounce ideas off of someone for something specific, that's great; they're likely to see something that I don't. But I can hardly imagine anything worse than someone else having to have their fingers in the whole pie, all the time, just because we are supposed to be a "pair".
What would be really interesting is to offer to pair with anyone taking the same subject in Khan Academy. Then you could really contrast value of the education between the two systems.
I seriousness I had the opportunity to "pair" in one of my CS classes in college. It was a team of three on one project; the weekend before the project was due the third member took off for a road trip without telling us while the remaining two of us finished building a spreadsheet from scratch in C++. Fun times! It was VERY educational though, I learned never to fully trust anyone without some experience working with them first. I imagine there will many "lessons" like this to be had in mandatory pair programming also.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Of course not everyone is the same, but it's one class. OMG what will you do in larger team projects at Uni, cry harder? There is more to learn at University than how to get good grades, there is growing up in general. Every special little ninja thinks they are the exception. Good luck.
In that case you might as well go to the University of Wooloomooloo
Not true. Stanford is highly selective. Only the best of the best get in. So a Stanford degree shows a potential employer that you passed that admissions filter. What you actually learned while you were there is much less important.
For a small project I was paired with a UC Berkeley grad, 4.0 GPA even according to the project manager. The project manager was so f'n thrilled to have this guy on board. He was a nice guy and all but wow, a classic case of someone who should have probably stayed in academia. Our target environment was constrained in terms of CPU and RAM but he could not write code for such an environment. His head was just stuck in his school environment of a big expensive fast box with lots of RAM plus sizable VM.
Some people are great at regurgitating back what they are told and shown but ask them to solve a new and different problem and they are lost. Some of these people are able to get exceptionally good grades. Perhaps that is the problem, they are merely learning to take the test?
That said, can an elite school produce an elite programmer, certainly, however so can a more ordinary school. Like most things one gets out of a university what one puts into it. Its mostly about the effort the student made. Elite schools produce mediocre programmers too.
So the problem here is that Stanford wants to enroll more students without spending more on the resources required to actually support those students.
They want to charge for two students, but pay for the faculty and staff of one.
In other words, much like the cable companies and Internet access to Netflix, they want to double dip.
I.E. This is bullshit and a good example of why if you think a stanford education makes you special, you're right. Special as in retarded to the point that you don't realize you're being ripped off.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
>> may not even entitle them to individually graded homework
Since Stanford aren't going to evaluate students work individually any more its clear that getting a Stanford degree is now just all about money.
Stanford should just take this thinking to its logical conclusion. Imagine the expenses they would save by ending the sham of keeping lecture halls and labs open, and just selling degree certificates on the internet.
Pair programming works by having a more experienced coder working along side a less experienced coder. The fruits of that asymmetry is what it's all about.
If you wanted pair programming in an academic setting, it would mean giving a dedicated tutor to every student in that class.
This, however, is just working in pairs. Not the same at all.
The studies I've seen show that novice-novice is still pretty damn effective as a productivity and learning strategy.
Despite the summary I've TA'd 1st year courses and we had a great experience from having people work in groups. 1st year students can spend a lot of time stuck on really simple problems that are due to some weird misconceptions or simply a lack of familiarity. Having them work in pairs means instead of just giving up they start trouble shooting together, when they finally did get to asking a question it was at a much higher level, this meant I could spent more time assisting the individuals or groups who really needed it.
Most importantly the people who go into CS tend to be introverted and terrible collaborators, I know I'm personally far too ready to sludge through problems alone and ask for help far too late. If I'd had some pair-programming experience when I was in undergrad I think I would have benefited immensely.
I stole this Sig
a classic case of someone who should have probably stayed in academia. Our target environment was constrained in terms of CPU and RAM but he could not write code for such an environment
He wouldn't be good there either. If he can't understand limited resources, he won't be able to help other programmers understand it. If you can't apply knowledge, you're only as good as a search engine. Access to knowledge is trivial in this age.
the basic problem they have is that they have three times the workload than a few years ago. shouldn't this mean they should have three times the staff to properly handle the workload? "O NOZ DAT COST MONIEZ!!!11" is not a valid excuse because the students are paying the university which in turn is paying for staff!
Anons need not reply. Questions end with a question mark.
Software Engineers need to reject this Redundant Array of Inexpensive Developers concept on every level, from education to employment.
We are (or are aspiring to be) professionals. No other profession would accept this expectation of self-commodification. It is a blatant attempt to eliminate any distinct value the engineer might achieve, and to directly siphon off their knowledge other employees they can choose between at will, driven entirely by management profits and convenience.
Back when employees were still sometimes called "personnel", rather than "human resources", this notion would have been laughed off the table. Still should be.
Other commenters point out that instructors and TAs may be overwhelmed by the large number of students. Which begs the question: if you have more students, why isn't the tuition used to hire more teaching staff?
The answer is to be found in bloated administration. For most colleges and universities, there is kind of a "magic number" of 1, that being the maximum acceptable ratios of administrative staff to teaching staff. Colleges and universities with more administrators than teachers have "jumped the shark". Those with less are still focused on actually providing an education.
Stanford goes one farther. I actually downloaded and read through their latest annual report. It is impossible to determine the faculty/staff ratio from the information given. However, according to this overview of the growth of admistrative/professional staff at colleges, Stanford has seen an increase of 125% in administrators and 405% in professional (non-teaching) staff during the time that student numbers have increased by 27%. Even among US institutions that is remarkable.
Fire 4/5 of the "professional staff" and half of the "administrators" and you might be able to afford a few more professors to teach the students. What a concept!
Enjoy life! This is not a dress rehearsal.
I got my CS degree from a fairly well known UC school over 30 years ago. In upper division courses, we had three or four (depending on year) young (25 years old) female students. Two were, to put it politely, undesirable (not good looking, not very smart, and socially awkward). One was thought to be fairly attractive (although not my type) but not very smart. One was also attractive (as well as being cute) AND smart (she found math/theory courses trivial while I found programming courses trivial - both of us would easily get straight A's in either though). I was a complete nerd, but ended up living with the last girl for a few years. If I could get that, I always wondered why others didn't but I guess the rest of the guys must have been extremely nerdy (more so than I realized) or had an aversion to smart women.
We actually didn't study much together, although we occasionally would ask the other to explain/help with something. (Although, it might have been easier to explain to my family that we were "pair programming" rather than evading the issue of exactly who my "roommates" were).
Luckily pair programming is about more than just productivity.
Did those productivity assessments include TCO, including rework due to bugs discovered eight months later?
Heck, learning Pascal at UCSD in 1976, we were in groups of three and there was much emphasis on "egoless programming", peer code reviews and all the things that keep popping up as the latest greatest thing.
Yes, this is just a team assignments with a team size of 2 to reduce the amount of assignments to grade. Pair programming has a defined meaning with defined goals and that isn't any of them.
This is one reason why everyone laughs at us when we try to call ourselves engineers. Pair programming, scrum, open spaces, closed spaces, TDD, etc... all have specific (and researched, go read the research papers) reasons to apply them to gain specific goals and they all have drawbacks too. But mostly people just toss whatever they think sounds nice into one policy then claims they're awesome while others see it for the crap that it is and the project falls apart. Do electrical engineers do that too?
They can't afford TAs because they're busy building rec centers with tuition money... priorities!
first downsizing education system here.. less work for faculty, higher student:teacher ratio, half the assignments to grade.... all at the same sky-high student cost, of course....
next up, shipping off students to be educated in india for 10 cents on the dollar, then shipping them back once they've got their degree
a classic case of someone who should have probably stayed in academia. Our target environment was constrained in terms of CPU and RAM but he could not write code for such an environment
He wouldn't be good there either. If he can't understand limited resources, he won't be able to help other programmers understand it. If you can't apply knowledge, you're only as good as a search engine. Access to knowledge is trivial in this age.
I don't know. I think academia is an area where one can stick with what one knows. One professor of mine was a well regarded computer vision researcher. He wrote his computer vision code in LISP back when he was a grad student. Decades later he was still using LISP.
But if that novice becomes a master quicker, it might still be worth it in the medium-to-long term, no?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."