Georgia Tech Cracks Down on Learning
The Washington Post has an article today on a Georgia Tech student who almost flunked his intro to comp sci course for just discussing his homework with someone else. Note that no one including the faculty accused him of actually copying any code from anyone. However, the "honor code" at Georgia Tech "forbids its introductory computer science students from seeking any help from other students on their homework." The faculty recorded part of his violation on the forms as "He was trying to learn it." This is something that high school seniors might want to keep in mind when selecting which university to attend.
No one who matters actually ever believes that stories or capsules on Slashdot are accurate. As soon as I read this I knew it was BS. The article summary makes it sound like this guy walked up to another student and said
"Hey, did you use a sprintf() or two strcpy()'s to do merge those strings? sprintf()? Cool. Oh crap I just got expelled."
Meanwhile, I'm sure the conversation was more like
"Holy shit dude.. I haven't been to class in 6 weeks and I have some homework due tommorow or I'm going to fail. What's your advice? I see. I see. I don't understand what you're talking about, let me see your code."
"OK, thanks for the help! Oh crap, I got caught. Crap, I'm expelled, but at least my dad built the Dr. Herbert J. Furnsworth III Memorial Science Lab. Hey Dad, let's raise a stink."
"OK son. Maybe we can even get it posted on Slashdot, where even the most foul turd can be sprayed with enough perfume to make it smell like the cosmetics counter in Macy's!"
While not directly related, this seems to be indicative of the same mindset that public schools have taken on: it's better to deal with quantifiable things. It's better to teach the mechanics of a thing than to teach the student the underlying lesson. A history test is for memorizing dates, not for learning why events happened or what that event's impact might have been. An honor code isn't a framework for living your life, it's a rigid, static thing that exists in a vacuum.
I'd rather have students learning why Napolean was sent trudging back through the snow than the date he headed back toward France. And I'd rather have teachers and professors (assuming they're capable) given the responsibility and authority to make their own decisions - especially when dealing with things as nebulous as an honor code.
This episode reminds me of the recent case where the teacher flunked several students for blatant plagarism only to have the touchy-feely school board overturn the decision. Guess they didn't want to anger the voters and risk losing reelection.
It's sad, really. We're turning out a bunch of automatons in the name of improving the percentage of students who can pass a standardized test. These overly-strict honor codes are simply the same film projected on a different canvas.
Sixty years ago, schools in the U.S. taught Greek and Latin. Now they teach remedial English (or Spanish depending on your local election demographics).
Slashdot comments... splitting hairs since 1997.
I find it interesting you refer to 30 lines as a substantial amount of code. The article suggests the program was a rather large one, and that 30 lines was a small fraction of the overall code. My own computer science experience in the past suggests 30 lines probably was a teeny fraction of the code.
Of course, the pureist will say, copying is copying, and even if it was 2 lines that's cheating. The problem is I see no proof he copied from another student. You may scoff, how else would the code be the same, well, that's easy.
I remember more than a few times sitting in the lab working next to 5-10 of my classmates. A common activity was to repeat the problem to each other to be sure we understood it. "The assignment said the program should output the data in sorted order case insensitive, one on a line, right?" "Yes." That's not cheating. Then someone else might pipe up "Didn't the GTA give us a handout with a sorting example on it?" "Yes," another would pipe up, and a third would produce the class handout for all to read. Again, no cheating yet. Of course the GTA example was case sensitive, so it had to be changed to be case insensitive. It also worked on plain strings, and the data was stored in structures (which were all remarkably similar due to a similar process) so that change had to be made as well. Those two changes were done independantly.
In this case I proport no cheating has happened. Students conversations were limited to the problem statement, not the solution. Materials "shared" by the students were class handouts that all had, although perhaps not at that moment. The probability code ended up the same, high. Identical, moderate.
Several times after assignments were returned to us (graded et all, even after the course) I would then compare with a friend to see how to do the things I got marked down on, and vice versa. Several times I found whole functions that were only a few characters off of being identical, even though we never colaberated at all. Everyone uses x, p, i. "print_sorted_output" is a common function name choice. Add to the copied GTA (course) suppied code and you get a lot of similar programs.
We don't have enough facts to determine if this student is guilty or innocent. The fact that 30 lines are roughly the same, or even identical does not, in my mind, prove he cheated. There must be other evidence to help lead us to that conclusion.
As for Georgia Tech, there is a root problem here. They have a separate computer science college,so it's hard to tell where they fit. Most schools put computer education in the College of Arts and Science, or in the College of Engineering. This is important. If you look at other Arts and Sciences, students are encouraged to work together. If you are majoring in dance, and another student views your "final project" (a dance, of course) and suggests "hold your chin up higher while you spin" that's not considered cheating on your homework. If you write a book, and let another student read it before turning it in, and they say "you should be more emphatic in chapter 2" that's not cheating. On the other hand engineering has right and wrong answers. If you show someone your calculations on the load capacity of a beam for homework that's cheating.
So what is CS? Is it a creative discipline, like dance, or painting, or writing? If so the root of improvement is working together, public performance, peer review. On the other hand, is it a hard science. There is a "right" program, and everyone should get the "same" answer, so any sharing would help a student leap to a conclusion without doing the work?
I was in several classes in which work was assigned to "development teams" of 4 or 5 students. We were expected to hold "development meetings" and discuss "development strategies" whilst constructing the piece of software we'd been told to create.
A noble idea, right? Work together, just like in the real world? Get help from your peers, everyone does their share, all that happy horseshit?
Did it ever work that way for anyone? The smart kids in the group (if there were any) ended up doing all the work. The stupid kids hung around for one or two meetings and maybe sent off the occasional email asking when the next meeting was, but never contributed line one of code. The worst part came at the end of the semester, when we were all asked to rate our fellow teammates. What can you say? "This stupid retard was too busy fucking around and getting drunk to write any code, and when we asked him to debug this function, he sent it back exactly the way he received it"? Well, you can, but it doesn't seem to matter, as everyone always got the same grade.
Come to think of it, group work is exactly like working in the real world, because it's full of people who don't do jack shit and make you wonder why they're still hanging around like a festering boil on an unwashed butt cheek. Honestly, I don't know how some kids in my class got their degree.
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
The bit about a new policy saying students will not being allowed to look for answers anywhere other than course material or Georgia Tech staff?! That's what research and learning is all about: using any resource available to you. This doesn't directly map to plagiarism and cheating. For example, using an alternate text book often helps more clearly understand a concept not well explained in the assigned text. Lastly, how on earth did they manage to write down "He was trying to learn it" in any context that makes sense?
I hope you're not pretending to be evil while secretly being good. That would be dishonest.
The ACM programming contest is an awful model for assessing coding ability. The entire contest is based on time pressures and it encourages writing bad code, not doing design work and not commenting anything (it all just wastes time).
Something that makes a good competition does not nessecarily make a good exam.
They were *not* cracking down on cheating.
a computer science student is wrong to try to seek answers to questions ANYWHERE other than from course materials or Georgia Tech staff. Rooting around in old books in the library, checking the Internet, calling your cousin at Caltech--all are forbidden.
If you research a problem outside the "official" materials you are flunked. I'm sorry, but reading Knuth's The Art of Computer Programming on your own shouldn't ever be used to flunk you from a required freshman CS class. Yet at Georgia Tech, it is against the rules!
What the student did in this case was against the academic rules for the course. Now it's possible, even probably, that those rules are arbitrary and unfair, but what he did violated them.
I repeat, its not cheating to read another textbook. Its *not* cheating to say, "I can't make my doubly linked list work because I don't understand C pointers. Can anybody explain C pointers so that even I can understand?" My God, they seriously listed part of the freshman's offense in exactly these words: "He was trying to learn it."