Georgia Tech Cracks Down on Learning 979
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.
Assembly (Score:2, Insightful)
If they learn from each other... (Score:2, Insightful)
Maybe they do have a real motive for not letting students help each other: Greed.
isn't that how you do code (Score:2, Insightful)
Teaching people not to be open with there source is bad. the student learns this habbit.Then it leads to the whole open source community will be hit.
Honor Codes (Score:4, Insightful)
Notice the most indefensible part (Score:4, Insightful)
A brand-new rule says a computer science student is wrong to try to seek answers to questions ANYWHERE other than from course materials or Georgia Tech staff
[/quote]
An exam is one thing, homework is another. Homework is supposed to reinforce the skills you'll need later. One of those skills is research.
How To Be An Incompetent Engineer 101...
The Fallacy of Schools as places of Learning (Score:2, Insightful)
Reality 101 (Score:1, Insightful)
In my defense, I will say that at the major, Fortune-500 company that I am employed as a programmer, I spend my day talking to others about design and implementation issues, and all things CS.
I hope this post provides insight into why such a policy may exist, and the motivations that a university has to enforce it.
Love,
Anonymous Coward
Before we condemn the school... (Score:4, Insightful)
stupid slashdot headlines (Score:2, Insightful)
Also , GATech has one of the top engineering schools in the country, I don't think you should suggest people stay away from it just because of a stupid incident like this. They meant well, it backfired on them, and they will probably reevaluate their policy, as the article says.
Re:just preparation... (Score:2, Insightful)
The point of the do-it-yourself and do-it-by-yourself mentality at Universities is that knowledge it is nothing without integrity and a student who just knows the API's and interfaces will be obsoleted with those API's in 5 years. However a student who learns the fundamentals and reasoning behind these API's, will stand a chance at learning the new and interesting things the industry churns out.
Wow (Score:3, Insightful)
My philosophy: School is a hoop that I must jump through so that one day my students will not have to jump through so many. Never let schooling stand in the way of your education, or so Samuel Clemons says. My latest (guided) revelation is that I am part of a system that is ineffective at preparing students, and all we get are books about standards and attempts to change the system instead of deconstructing problems within the system. True change comes by recognizing the flawed assumptions that are inherent in the system, allowing us to come to a new and more authentic view of how education should work. But individual change is futile; all educators and all education must change as a whole or not at all. The task is difficult; are any of us up to the challenge?
F-bacher
What?!?!? (Score:2, Insightful)
Ooh, big deal. There is a pretty good chance of people getting similar code on the same project. I do not claim to be an expert in Computer Programming, but I do know that if two different people make a routine for the same thing it will pretty much look the same.
I do realize that the unnamed student that the article refers to actually did cheat, but there is no proof at all, and certainly not all the people with similarities in coding cheated.
Re:Unsurprising (Score:3, Insightful)
In a way, it's like boot camp, and things can get ugly, but when you come out, you are one helluva engineer.
I recall a statics professor explaiing why he doesn't give any partial credit, even if the only error was an incorrect sign: "Would you get any partial credit for building the bridge upside down?"
Personally, I don't want the people who are writing controllers for airplanes I fly in to be a bunch of cheating losers. Strict rules have their place, and I fully support Georgia Tech behind their decisions.
But... (Score:3, Insightful)
For example, we had this game where you had to pick up stones and make sure your opponent picked up the last one. You can only pick up three at once. Assume one line of stones... We were supposed to write an 'AI' (I use the term losely) that would play to win. The truth is that its as simple as making sure that it takes stones so that the remainder modulus 4 equals 1. That way, no matter what the other guy picks you can get it back down to that modulus 1, and when there's only 1 stone left he takes it. I was the ONLY one in my class to figure it out before class was over, but within a minute or so I was able to explain it to most of the others and they easily implemented my strategy.
My point is that computer science is not the same as other classes. Discussing the problem often means giving someone the method that they could not come up with on their own. They can implement it, but thats not the point of the class.
Collaberation as cheating? (Score:2, Insightful)
Number one example, my class on algorithms. Each week there was a written homework asignment. Each week, me and several of my peers would gather to work on this homework. We spent many, many hours teaching this material to each other. If one person did not understand a question, the others would go out of their way to teach it to him. We knew we would bomb the test if we didn't understand the homework. Yet by Georgia Tech's standards, we were cheating.
Luckily, I ended up doing very well on the tests because I studied a lot and had the help from my peers on the homework. It made the material bearable and understandable.
To deny students the ability to work together on homework denies the oppurtunity to some of the best learning opportunities of their educational careers. I would probably be much worse off without help from other students.
Re:Go to the U of Illinois@ CU (Score:3, Insightful)
The problem is that the people who are in to CS because they want a high-paying job are too damn stubborn to get frustrated after the intro class and muddle their way to a degree.
Re:just preparation... (Score:1, Insightful)
Universities can posture all they want, but this sort of thing doesn't prepare students for the real world.
Re:what? (Score:3, Insightful)
They were cracking down on cheating. 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. The proposed punishment, failing him in the class for cheating on one assignment that constituted 2% of his final grade, sounds excessive to me, but there does need to be some punishment for cheating.
Re:just preparation... (Score:2, Insightful)
Sure, because asking a co-worker to help you out or collaboration in general never happens in the real world.
I am sure it does. I am also sure that a student who got used to solving problems this way in a liberal college would eventually bug the hell out of the talented developers and eventually be demoted or working the same job for 5 years.
The preparation that Universities do is evident in the way most students can be self-sufficient on what he/she knows well and will ask questions on the hard stuff.
Re:Ok this is retarded (Score:5, Insightful)
"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!"
Compare with the Air Force Academy (Score:2, Insightful)
The idea was that homework was for learning the material, and if collaborating with your peers helped, then go for it. Tests were for determining whether you learned the material and were a major part of your grade. Classroom participation was also a major part of the grade, depending on the individual faculty member's approach. Correct grammar and spelling were also a major part of the grade - in ALL courses - not just English!
(Note - this was the state at the Air Force Academy many years ago when I was teaching there - don't know what their rules are today.)
I have to agree! (Score:2, Insightful)
I'm also not sure what people think the school's motivation for instituting an overly harsh policy towards cheating would be. These policies aren't put in place by a bunch of fat Nazis that want students to fail - they're put in place by professors and department heads together. If this policy is so bogus, how come no professors, who you'd hope would be more liberal than the bureaucrats, have come forward in defense of this student?
I go to the University of Minnesota, and from my estimation, this guy got what he deserved. If you outright copy a bunch of code from a classmate to complete your assignment without proper attribution, then you deserve to get shafted. The excuse that "everybody cheats" is invalid - because it's completely untrue.
What about you open-source advocates? Would you be happy if Microsoft, feeling the GNUoose tightening around their necks, decided to wholesale rip code from GPLed projects and claim it was their own? Would you stand by and say "Oh that's ok, everybody cheats?"
Should we rewind to the poor fellow who "accidentally" found a hole in a local news site's web using FrontPage and "accidentally" downloaded code for their pages and a password list or two, that Slashdotters so gallantly defended? This (the Post article) isn't news, it's an inflammatory editorial by a misinformed sympathizer.
The Bottom Line (Score:2, Insightful)
Re:Honor Codes (Score:5, Insightful)
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).
Re:Honor Codes (Score:4, Insightful)
Rigid "honor codes" lead to ridiculous situations.
And generally tend to encourage more cheating. If most of the students are already doing something which could get them expelled, it doesn't exactly give them incentive to report the "true" cheaters, for fear that they'll get reported in retaliation. It also gives teachers little incentive to penalize students for minor infractions. If I caught a student cheating on homework, I might give him/her a zero for that homework. But if the school rules force me expel that student, I might decide to let the incident go unreported instead.
Re:Ok this is retarded (Score:4, Insightful)
However, if your teacher told you to write a compression program using B-Trees, and the whole point of the problem is that you can acually write the code to create the B-Tree, read straight binary from a file, and compress and decompress text, then if you are borrowing old code that does any of this, are you really doing the work? Discovering that Java doesn't handle signed datatypes the way other languages did was part of what I learned from doing this. If you copy the code, do you learn that?
I helped people with their work a lot in college, but there is a big difference between me trying to help them understand why they should use a while loop over a for loop as opposed to me writing the loops out for them.
Going straight to the source (Score:4, Insightful)
I found a copy of the course-specific honor code here [gatech.edu]. Here's the relevant excerpt:
It actually looks pretty reasonable. I'd like to direct people's attention particularly to the last "good guideline" sentence. Now, what did the student do? From the original story:
Now, "chatting" is obviously vague; there's a big difference between "what are they asking us to do" and "how do we do it". However, it doesn't matter. According to the "good guideline" in the honor code, the student would be in the right even if he discussed answers with the other student, so long as neither was looking at or copying from the other's actual code and both could explain independently how their solution worked. If anything, the honor-code standard as stated in the referenced link seems a little too lenient to me.
It's entirely possible that the student did something more egregious than what's mentioned in the article. It's also entirely possible that someone's being a little overzealous about enforcing their own interpretation of what is really a pretty lenient standard. Assuming either to be the case would be premature, based on the information available. All of the political rhetoric, on either side, seems just a little bit misguided in the absence of anything but the most fragmentary and incomplete information.
The death of the university (Score:3, Insightful)
a) he can collaborate, but he has to CITE his references
b) he can't collaborate because they want to weed people out that can't do the work on their own.
(A) isn't really applicable in this case because of the university's anti-collaboration policy (as far as I can tell). If it were the case, I'd agree with the university, citations are important.
But (B) is bullshit.
There is this pervading attitude that if you didn't put in the EFFORT into solving the problem, then you can't have learned it or somehow your learning experience is "diluted".
Results are all that matters. Excessive effort is for masochists and bleeding hearts ("but boss, I worked all weekend!").
If I ask someone a question, and they explain to me how they got the ansewr, and I incorporate that experience into my skills & knowledge, then I:
- probably can solve similar problems on my own
- solved that problem
- got what I needed out of the assignment (i.e. immediate answer and long term thought pattern to reach that answer).
The problem usually stems from people that just ask questions for the immediate answer and then refuse to incorporate that into their knowledge, they just want the quick grade.
That's unfortunate, but it's more indicative of the failure of examinations to catch such losers than of the evils of collaboration.
Once you leave university, you're going to be judged on what you produce -- not how you got there. If you leverage the knowledge of others, you're going to go farther. That's why design patterns are so popula -- so you don't have to solve things from first principles unless the situation is truly unique and warrants such an analysis.
If universities are institutions of higher learning, I really don't see a much in the way of modern pedagogy. As one person already said, they're more about indoctrination than learning. And for that reason (among others) they're not going to last much longer in their current form (give it a few decades).
Picasso once said: "Good artists borrow -- great artists steal."
30 lines (was: Re:Ok this is retarded) (Score:5, Insightful)
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?
Re:Ok this is retarded (Score:3, Insightful)
Sure, of course we don't, I've never heard the phrase, "the police took the suspect into custody." Besides the kid didn't get an F, he got an I pending an investigation into the allegations. If he was cleared he presumably would've gotten his B.
Group work fucking sucks. (Score:5, Insightful)
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.
Cheating is a HUGE Problem in Colleges These Days (Score:3, Insightful)
Where do you draw the line between another student discussing the homework, and a student asking for the answer? How do you distinguish between academic inquiry and laziness?
There must be a strict rule that everyone abides by. In this instance, why didn't the student ask the instructor, or the TA for help? Those are the officially sanctioned channels for asking questions. ESPECIALLY if the honor code forbids students consulting others, why did the student do otherwise?
The problem is, cheating is undermining the integrity of many student's degrees. This is becoming a huge problem at my school - how do you detect the cheaters? Where do you draw the line?
While this case may be a bit extreme, the fact is you have to look at the overall picture. If the student was forbidden to discuss with other students, then he should have asked the teacher/TA.
Policy still sounds excessive (Score:5, Insightful)
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?
Re:The Fallacy of Schools as places of Learning (Score:3, Insightful)
There are times in high school / college GECs and even some core curriculum when you are jumping through hoops, but AI with Jim Davis [ohio-state.edu], Software Systems with Paul Sivilotti [ohio-state.edu], 3D Graphics with Rick Parent [ohio-state.edu], LISP with Matt Curtin [ohio-state.edu], Algorithms with Mathias [ohio-state.edu], Discrete Math with Chris Miller, etc
My first quarter at Ohio State, I had Samdeep Prabhu for an intro programming course. He was a grad student teaching his first class (of about 40-45 students). I was a quiet guy sitting in the back corner of the classroom. 3 years later I ran into him on campus. He greeted me by name (I didn't recognize him at first) and asked how my CS program was going and offered a little advice about some of the classes I was in. Now that's a teacher.
From a slightly different perspective, classes are only half of what a school is about. There is something to be said about being immersed in a culture of 25,000 people attending a university. In an environment like this you can learn as much from your peers as you do from your classes.
Re:If they learn from each other... (Score:3, Insightful)
First off, Software Development (as opposed to Computer Science) is all about getting the job done. This usually requires a lot more reading and absorption than problem solving skills, at least in my experience.
Secondly, I find I *do* learn most of my problem solving skills by looking at solutions and by watching how other people actually solve problems as opposed to how they explain solutions. Been doing it since I was about 3 years old, and it's served me pretty well. In fact, I'll wager if you'd never seen an algorithm that was good at doing something, you'd be terrible at creating them. Problem solving is all about synthesis. How to take what you know and apply it to what you don't know. Obviously some practice is required, but the more you know the easier it gets...
100 level CS students unable to finish their assignments alone is generally a better indicator of bad teachers than bad students. If weeding needs to occur at this level monitored tests are still the best method for telling how well students can truly do the work.
As an example of an effective test, try proving pythagria's theorem sometime with pencil, paper and no preparation.
Short opinion (Score:3, Insightful)
Computer science programs are LOADED with cheating. Not just a bit. A *lot*. The faculty at my institution didn't think we had a problem... until we looked. And what a problem it was.
It was, of course, inevitable. Lets face it.. CS is a hot program these days. Mom and Dad see lots job ops and strongly push junior to go into CS. Perhaps junior isn't really that interested in it; perhaps junior can't do math, but Mom and Pop are paying the bill, so...
Now you have a problem. Junior needs to pass (lest his winter vacations of beer drinking, etc. be untimely ripped from him).. but junior could care less about the material. He doesn't want to bother learning it.. and there is a *lot* there to learn.
How does one pass, yet do the bare minimal amount of work? Doesn't take a genius to figure this out... does it?
The trouble is that, in general, computer science courses (especially 'systems' type courses) usually heavily weight assignments. Sure, you could just do exams... but I believe that seriously cheats the students. Being able to parrot back 4 solutions to deadlock on a final exam is a world away from being asked to actually think through and then solve these problems IN CODE.
So we need assignments... but they are OH so easy to cheat on. Much easier than exams.
Net result: Every year thousands of people graduate with CS degrees that can not: explain the sleeping barber problem; do OMT diagrams; define a Turing machine; give an example of a non-computable function; demonstrate even the remotest knowledge of what the "NP" means in 'NP-complete', use structured programming concepts, comment code, apply even the most basic software engineering techniques, etc.
There seems to be a lot of people against these heavy-handed measures to weed out cheaters. I'm a libertarian at heart, so I agree in a lot of ways. On the other hand, do YOU want to graduate from a school that cranks out CS majors who go into a coma when someone says "Scheme" or "LISP"? Do you want people in industry to have experience with graduates from *your* university that can't even apply a simple waterfall model of software development?
If you don't take measures against cheating, the people who will lose (and lose big) are the good students. Think about it.
Re:Be tested for coding abilities in an hour! (Score:5, Insightful)
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.
Re:Notice the most indefensible part (Score:2, Insightful)
Maybe this is exactly what you/he should do?
Come on, for your average CS degree, you are expected (by your profs and prospective employers) to solve the problem FAST, and typing that phrase to google is just right! for deeper understanding, we should be asking other questions, like: "Find (on Google) at least 8 solutions people use for this problem (in their current code) and tell the class what you would change to make them better"....
Paul B.
As a a certified computer scientist I proclaim it not to be science at all
Re:what? (Score:5, Insightful)
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."
Re:A GT Junior's Perspective (Score:4, Insightful)
When I was a first year student, it went very poorly because I was excited about learning, and the school wanted to break me of it. Large lecture halls were not a place to ask questions; data structures courses were not a place to question why teaching linked list handling in a language that didn't support pointers was wise; etc. In the end, I dropped out and worked for the school for two years, maintaining their systems and writing code for funded research projects.
If schools think of freshmen as a crowd of clean slates that can be penned up for a semester or two for forced-rationing of rote learning, they're going to get graduates who are equal to the challenge of those first few semesters. Perhaps a few gems will squeek through, but I'll guarantee you that all of THOSE students will either test out of the first few classes or will "cheat" by discussing new concepts as they learn them. My great and little gods, can you imagine being a talented programmer who just learned what a hash is, and not being allowed to talk to anyone about it!? I was practically on the rooftops screaming when I learned what a hash was and why it was so beautiful!
Please, if anyone at any school with a policy like this reads this message, consider the point of view of the first year student who has been prepped all through high school to believe that college is where the rubber hits the road, learning-wise. When you hit them with more rote, mindless sentence memorization than they had in high school, what do you think the impact on the brightest, most promising students will be?