Recently, a computer science student at the University of Illinois did some class homework and posted the answers to GitHub, the code-sharing platform widely used by open-source software developers. And the university was peeved.

Last week, using a DMCA takedown notice, the standard way to request removal of copyrighted material from the net, the university tried to force GitHub into vanishing the coursework from its service. After criticism from students, the school has rescinded the notice, but the incident goes a long way towards describing how the software world has changed in recent years.

In short, the world's developers are moving towards a model of open collaboration. And though that works well for them, it clashes with the way the world of programming traditionally operated—as embodied by the University of Illinois.

A Noble Enough Idea

The university wanted to remove GitHub repositories that contained "course materials and solutions to assignments in three of our CS courses," according to Professor Rob Rutenbar, the head of the school's computer science department. The implication is that school was trying to stop cheating.

That's a noble enough idea. But in this case, it works against the prevailing attitudes in the software world.

Across Silicon Valley and beyond, GitHub has caught on big time because it lets you track changes to your work—a version control system, in computer parlance—and it lets you do this in the open. This is a great way to promote collaboration on software projects, and naturally, the general attitudes behind the site are now filtering down the country's university students.

The trouble is that while students often think of programming as a collaborative act, some universities still think of it as a private, proprietary thing. "The whole concept of using a DMCA takedown on the student who is openly working is broken," says Andrew Dunn, a graduate student at Northwestern University.

Learning to Merge

Yes, the clash is a little more complicated than that. "They're stuck with a damned-if-you-do, damned-if-you-don't situation," Mike Berry, a computer science professor at the University of Tennessee, Knoxville, says of his counterparts at the University of Illinois. "They don't want to suppress, but at the same time its an academic integrity issue."

But clearly, this is about more than cheating. Many students publicly complained about the situation, and in the end, Rutenbar listened.

"Once we dug into it as an organization with our students, we recognized that the DMCA take-down requests weren't the best way for us to approach this issue," he says. "[W]e choose our students because they're extraordinarily bright, thoughtful, and unafraid of speaking up. And they've spoken up on this one." And rightly so.

It's important to strike a balance between teaching open collaboration, and teaching kids how to code, Rutenbar says. "We’re taking very young students who often come to us with some basic software skills, developed in a collaborative environment, and experienced in use of the internet as the library to find useful bits and pieces" he says. "Then we put them in a class where we need to carefully assess each student’s individual understanding of the material"

Better Borrowers

Twenty five years ago, when Mike Berry was a student, the idea of collaborative coding was virtually unknown. "Years ago we had nothing. So we learned by creating," he says. "Now you don't have to learn by creating. You can learn by merge. In some sense it becomes a little bit more of an engineering exercise."

What that means is that today's students need to be better borrower. Finding tools out in the open and adapting them to fit their particular problems. That's made today's programmers polymaths of sorts, able to tackle problems in new fields—big data, artificial intelligence, bioinformatics—that would have required years of specialization a few decades ago.

But they also have to be able to do the programming, says Berry. "The question mark is do you have the critical analysis," he says. "Do you have the ability to discern whether the code is doing what it needs to do for your purposes; and how do you do that unless you know how to write it yourself."

Berry and Rutenbar are now experimenting with testing students on computers that are completely disconnected from the internet. They use them to find out if their students can code on their own. And you won't pass if you cheat your way through college using GitHub.