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.
...it's for drinking, partying, having casual sex and possibly absusing some illegal substances.
It must be true, popular culture says so.
STOP MISUSING APOSTROPHES, YOU MORONS!!!
Who turns someone in for something like this anyway?
What, me worry?
Rigid "honor codes" lead to ridiculous situations. I am reminded of a story from a friend who went to Davidson, where someone she knew was disciplined for honor code violations after taking an extra can of soda that a machine mistakenly dispensed. A true honor code should be flexible. Otherwise, what is the point? Everyone knows what they are supposed to do when the rules are cut-and-dry, the purpose of an honor code should be to foster honorable/moral behavior in situations the rules do not cover.
[quote]
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...
If the student did research in a book?
Violation?
If the student asked his father or mother?
Violation?
If the student joined an online discussion group?
Violation?
???????
I would send the following mail:
To whom it may concern,
I would like to apologize for my behavior. It was wrong and immoral. I suppose, because of my youth, that I thought it would be justifiable to learn. I now see otherwise, and hope to discontinue this behavior for the rest of my career.
I thought that it might be a good dodge to spend some of my time in first year learning, and that it might be an investment towards my GPA for me to acquire knowledge from other human beings. Oh well, I guess we all learn our lessons of life somehow. I understand that in discussing in an academic forum setting is wrong and I promise that for the endurement of my University career, I will absolve any attempt at communicating with my peers, as it seems to only decrement my academic standpoint and tarnish the reputation of the University, as well as compromising the institution of Education on the whole.
I promise I will avoid learning for the rest of my college career and rely only on myself and my own experiences with the natural environment to do so. Furthermore, I resolve to lock myself in my room for the remainder of the semester in hopes that social interaction will not tempt me into deteriorating my Computer Studies goals. As well, I will avoid going to lectures and tutorials, as well as any open labs, since the professors and TAs may accidentally teach me something, in which case I will compromise the goals the University seems to have set forth.
Sincerely,
****
Glad to know open academic forums (What Universities are intended to be) are still just that.
Karma: Non-Heinous
wouldn't it be good to wait until we hear the school's side of the story? It is very easy to claim that you were only trying to learn the course material, but with only a single quote -- which was certainly taken out of context -- to indicate the school's view on the situation, it is hardly fair to weigh in on either side.
Tarsnap: Online backups for the truly paranoid
I go to Georgia Tech. Yes, the student was accused of cheating. Yes, this is because he was caught cheating. Yes, the article states this, and then goes on to tell how it's "not that bad." Whoever wrote this summary of the article needs to brush up on their reading comprehension skills.
As for what happened to the student....He had a substantial amount of code (probably around 30 lines) that was verbatim with another student. As the article says, he should have not turned it in and lost the 2% instead of cheating. He can't handle responsibility for his actions so he and his dad pitch a fit and blame it on the college of computing.
Tech may not be the top CS school, but I think our program is pretty good, and their strictness when it comes to cheating only adds credence to the degree you get when you graduate from the Computer Science department. The strictness is not a reason to avoid this school, but a reason to come here.
Shouldn't this be:
"Georgia Tech Cracks Down on Larnin'"?
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
I agree in more ways than I want to admit. And I'm going to be a teacher next year! I've come to the conclusion that schools are set in place not to educate, but to make you proftable. It's not about learning, it's about money. How many times have I heard my professor say, "If only we had more time..." Why don't we get into the really important stuff? Because there isn't enough hours in the day to meet all the requirements that make me look like a good job applicant and see why math or computer science is really cool on another level.
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
James Tiberius Kirk: "Spock, the women on your planet are logical. No other planet in the galaxy can make that claim."
in a perfect world, all professors would have absolute and complete knowledge on every topic they teach, and a firm grasp on any topic they might come across in class.
however, this is not a perfect world.
at my lovely college(GVSU), most of the professors I've had are incompetent, can't teach, or just plain don't know the subject matter.
One of my Profs has went so far as using ANOTHER Professors code to teach his classes(IRONY) while not even understanding it. When my classmates asked him for help because none of it made sense, he admitted he only know what it was SUPPOSED to do, not if (or how) it actually worked.
so yeah, I'm disenfranchised with the the entire college situation. there are only a handful of Professors in the CS department who 'have a clue.'
I'd say that I seriously spend about 80-90% of my time working on classwork with someone else because it just doesn't make sense(with the rare exception of Prof. Wolffe- his classes are difficult, and you learn a ton).
I personally learn better having a colleague explain it to me than a professor, simply because I either have a hard time understanding my professor(I can't comprehend accents very well) or the professor just doesn't have a clue.
and don't even get me STARTED on Gen-Ed's!
but then again in CS, it's all about the degree- I occasionally forget I'm supposed to teach myself everything.
Looking for Book Reviews? Check out Literary Escapism.
For the bonehead award, Programming I was basically just Pascal on personal computers. Well, I had gotten into "trouble" for not commenting my source code. So, for my final program, I wrote it in Pascal, compiled, disassembled, rewrote the assembler code to Pascal inline assembly statements, and lined up the original Pascal as the assembly inline comments. My prof wasn't amused.
But, on the other end, I took another programming course which was supposed to be COBOL, c, and FORTRAN. The first day, the prof said that we will not need our FORTRAN book and would not write any FORTRAN programs or be tested on FORTRAN. However, we were instructed to learn FORTRAN on our own. Well, almost no one kept their FORTRAN book or even bothered learning FORTRAN. I was lucky enough to have already learned most FORTRAN working on physics stuff. Our final program was to write a source converter in c to convert FORTRAN programs to c. Not only did we have to know FORTRAN, but we had to KNOW FORTRAN!
Click here or here.
And the CS13xx courses have newsgroups for asking questions and have tons of TAs. There are recitations and labs and office hours. There is plenty of a chance for students to ask for help and get help. Unfortunately, too many students are lazy bastards and don't want to put forth the effort of doing the assignment honestly and getting help when they need it.
Generally people who have not coded before have problems in the intro classes. I've found that after this, they either become humble but good coders or get frustrated and leave. I have seen it go either way.
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.
Gentoo Sucks
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.
There's no point in questioning authority if you aren't going to listen to the answers.
My god, this sounds like something I was ranting about earlier today. %90 of the people in my final class from my CS major couldn't write a few lines of code to save their lives. We are doing the whole final project in C# (project requirements, not our choice). Being a programming class, and being that it is the capstone of the major, you'd think that the people would take the time to at least look at the language right? Wrong. I've written the entire project so far. They don't even have a clue how the code works.
On the bright side, I did get them to do all of the documentation for the project but still....it really scares me how many technically inept people are graduating along with me in my major. On the other hand, it made it a lot easier for me to score the job that I have =)
You obviously haven't read any technical research papers. You always cite other work you borrowed techniques from.
And I remember specific classes at Georgia Tech where I was either told (as a student) or I told students (as a TA) to write down in their HW the names of people that they discussed it with.
Most of you are misinterpriting the idea behind this type of rule. Yes, in the real world collaboration is increadably important, infact it is so important that we actually take classes in software design where the entire class is in groups. Learning how to interact with people and function in teams, methods of interaction and teamwork, dealing with problem members and managment, these are REQUIRED classes, and yes, groupwork is a required part of them. We even cover different philosophies of team interaction, the ancient methods and new concepts such as Extreme Programing. However, these rules are for the very begining, we are talking CS1 and 2 here, collaboration is not permitted. Yes, when I was taking the classes, I complained about the very constraining rules, and I did say that "In the real world, collaboration (and while I'm at it, not re-inventing the wheel) is important." However, it is also important to learn the basics yourself. Everyone in the entire university must take CS1 and most CS2, these are just intro programing classes to get people familure with coding and thinking on there own. That is their point, and to accomplish that, they must seperate the students out. Some of the strictness is misunderstood. The java API is not looked down upon, we are told to print it out and sleep with it under our pillows, to use it so much that by the end of the year it looks a bit the something from the 12th century. Granted that is in jest, but the point is, documentation, man pages, that type of stuff is encouraged. It is just the first few classes need to focus on the individual, not the team. You must first build yourself before you can build on yourself, and in order to assure that, rules must be in place. The CS majors know, or eventually realize once they reach the 2000 and above CS classes, that they benifitted from the artificial division. Maybe they knew everything going into CS1 and 2, but now all (or most) of their peers are strong on their own. So when it comes time to work together, each programmer could stand on their own, but together their skill is greater than the collective sum. In addition, it goes to teach the true value of working together, they know first hand how hard it can be to stand alone. Maybe it is difficult to see looking in, but there is a good concept behind the rules. Yes, they might not need to be there if everyone was honest, but unfortunately this is not a perfect world, and the restrictive environment helps in the long run.
The intro course is quite fucked up, though. For some strange reason they refused to accept AP credit for it but rather accepted the AB CS test for the Java class despite the two having nothing in common.
Dyolf Knip
I'm an CS undergrad at Columbia University in New York and I can at least say that from my experience, college ISN'T for learning.
What I mean by that statement is the following: CS professors here assign homeworks but don't give you any guidance or assistance on how to do them. At least at Columbia, CS homeworks are essentially depth first searches using trial and error as a heuristic. Googling for answers is not a frequent method of finding answers, but often the only method. Professors are essentially useless. It's nice to know that all my money has gone to the free teachings of Google. Sigh...
As far learning from others, I personally would argue that two minds are better than one. Of course the problem lies among students who aren't trying to learn, but trying only to get a good grade. Professors claim the line is too fine to allow learning from other students. My claim is that if students want to copy, it's their own loss. When it comes time to actually do something on their own, they will be completely lost. Try proving P=NP by copying an answer from a friend.
Perhaps it's analagous to the seatbelt law. If people don't want to wear seatbelts, it's their loss, yet wearing seatbelts is still a law (at least in my hometown of NJ).
Such are my experiences here for anyone deciding where to go.
I'm a graduate student in CS at Georgia Tech, and I recently graduated from their undergraduate program.
Georgia Tech is in no way against teamwork. In fact, in many LATER courses, it is not only encouraged, but required to pass. In the introductory course, however, students are expected receive a firm foundation in the BASICS of programming and computer science like recursion, searching, sorting, algorithmic complexity, data structures, trees, graphs, etc. If a student cheats his way through ANY of these concepts, and expects to survive a later computer science course, he will not only damage his own grade, but the grade of his teammates as well.
I'd also like to point out a couple things either pushed aside or conveniently not mentioned in the article. First, the student in question was NOT accused of discussing his assignment with another student. To my knowledge, regular discussion of assignments is a very commonplace occurrence--especially on the four newsgroups available for the class. He was accused for CHEATING. No cheatfinder, however good, is going to find out if people DISCUSSED anything. It's only going to find people who have VERY similar, copied, code. Secondly, I'd like to mention that the person in question is also, apparently, the son of a Washington Post editor.
I found a copy of the course-specific honor code here. 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.
Slashdot - News for Herds. Stuff that Splatters.
I've seen a lot of posts suggesting two defenses for the university:
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."
-Stu
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?"
Well, I'm a Computer Engineering student at Georgia Tech, and as such, I was required to take CS 1311 (what is now known as 1321).
One thing that I noticed about the class was that discussion was rampant, and so was cheating. I openly admit to discussing general points of certain programs and concepts with my best friends. Did I get caught? No. Was I guilty of something? No.
Everyone's code is automatically scanned and then the suspect programs are then checked by an undergraduate assistant. At some point, someone decides that there is enough evidence to point the finger.
If anything, the system doesn't catch enough cheaters.
While the circumstances of this particular case seem a little harsh, the fact is, cheating is a HUGE problem these days in university.
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.
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.
Bull. Schools are made for education. I've had teachers at the High School and University level that did nothing but tell completely irrelevant stories all day. One of them in high school, would occassionaly just start chanting, "Hey Hey LBJ How many babies..." for no particular reason. (I'm not kidding). I had another at the college level that would repeatedly insult students who asked questions. Yet at the same time, I've had teachers and classes that left me thinking about things for hours, days, weeks after class ends.
... are all worth jumping through a few hoops.
There are times in high school / college GECs and even some core curriculum when you are jumping through hoops, but AI with Jim Davis, Software Systems with Paul Sivilotti, 3D Graphics with Rick Parent, LISP with Matt Curtin, Algorithms with Mathias, 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.
Write a java applet that does x with y functions using a hashtable. You can consult any paper materials you have on your person. No talking to anyone in the classroom except the teacher. You have an hour.
In my CS courses, tests in this format are given all the time. The Chairman of the TCU CS Department, Dr. Richard Rinewalt, has been head judge of the ACM programming contest-THAT programming contest-for several years. He supports this format and knows that it works. I believe it's reasonable to trust what he is doing.
Having taken several undergraduate CS courses at Tech as well as having earned a Master's in CS there ('95), I read the editorial with a very self-interested eye.
Frankly, I've got mixed feelings.
On the one hand, as many have persuasively pointed out almost no one can defend the notion of prohibiting general conversation and interaction involving course material/ideas/concepts as a good thing for learning in the long run. And I agree with this -- for obvious reasons, engineering as well as literature students should be encouraged to discuss technical as well as philosophical ideas and approaches.
On the other hand, this is an introductory course meant to intellectually test (both figuratively and literally) the capabilities of the students, and it is by design meant to generate a gradient/differentiation of the students' skill sets. This is perhaps the one course that may demonstrate to non-CS majors the work involved in understanding a problem set, designing a solution, and implementing the solution via a programming language -- this is a good thing, and the fact that it's challenging to many doesn't mean that the assignments are patently unfair.
As far back as 1993 (and probably before) Ga Tech was submitting programming assignments to "similarity/copying detection programs" which aimed to detect, and thus deter, near verbatim occurrences ("copying") of code in students' submissions. Students were told UP FRONT that this was being done, and that they would be caught if they cut-n-pasted even a portion of their friend's (or classmates' whose directories/file permissions were a bit too lax allowing visibility to group/world users) assignment.
I think we need to be careful about indicting an entire university or department based on an editorial. At a minimum, we need the cold, hard facts (ie, the likely verbatim similarities -- variables, spacing, comments, etc. -- involved in the code submissions) before getting too one-sided either way.
Yes, you could use this "details unknown" case to condemn Ga Tech's College of Computing of being too much of a nit-picking hard ass, but you surely can't use it question the integrity or individual accomplishment of those that successfully completed their curriculum -- and in the technical fields of CS and engineering, this is a Very Good Thing.
Andy
You're implying a lot of neurological theory here that doesn't necessarily exist. More likely it was an issue of confidence. What I have seen more frequently than any other problem in the CS program I went through was a lack of understanding of what it means to be "programming." That is, it doesn't mean sitting there with your UML diagram in one window and your editor in another...it's 5 browser windows full of google searches, three books open on your desk (or floor) and the debugger and a shitload of printfs. It is like, when you first go fishing you are thinking about your casting technique, but when you start doing it you spend half an hour trying to rip a hook out of some half-dead fish's throat with a pair of needle-nose pliers so you can "throw it back" to die 15 feet from your boat.
Karma: Good (despite my invention of the Karma: sig)
Coming from a dual tech-language arts background, you just don't know how encouraged I am to see such a quality turn of phrase like this posted on slashdot. I feel better about the whole ordeal already. :)
More seriously, I think the above post is likely much closer to the truth than the "nuanaced" slashdot summary. But that's just my opinion.
In Computer Science, much of the work revolves around problem-solving techniques, which cannot be learned second-hand
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.
I teach university computer science courses as part of my job. Yes, I agree, it looks like GATech went way overboard here, but unfortunately this is burying the root problem.
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.
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."
However, it is also important to learn the basics yourself. Everyone in the entire university must take CS1 and most CS2, these are just intro programing classes to get people familure with coding and thinking on there own. That is their point, and to accomplish that, they must seperate the students out.
... there is also an LAS compsci program which I know little about). These rankings change from year to year (and source to source), so I don't know where the U of I stands currently, but I'd be surprised if it had slipped all that much.
... reinforcing the very lessons they are to be learning. And if you choose to be a lazy bastard and let someone else do all the work, then try to rewrite it so that it is sufficiently different, you'll either learn despite yourself, or screw it up sufficiently to get the grade your laziness has earned you.
... so there is a disincentive for people to be too free with their solutions built in. In short, the complexity and demands of the assignments coupled with the grading model (bell curve), and a systematic check for plagorism, were sufficient to prevent and punish cheating without resorting to draconian absurdities such as disallowing any discussion of assignments amongst students.
What utter nonsense. Please keep in mind that you are being taught that your University is right and its critics are wrong in each lecture you attend, if not overtly, then certainly on a subliminal level.
I attended the University of Illinois at a time when it was considered the 2nd or 3rd best university for computer science (Engineering College
In any event, that particular university had an impeachable reputation in computer science. They never had such an asinine rule that students could not discuss the subject and their homework assignments amongst themselves. Not only would such a rule have been unenforcable, or led to the kind of absurdities you are defending here, but it would have precluded one of the most important facets of education, through which people learn any subject, at any level, rudimentary freshman level through advanced post-doctorate: studying, discussing, and digesting the material.
Instead, the homework assignments were made to be sufficiently challenging that, even if you were to collaborate with others, you would learn the material and your grade would reflect how well you learned it. Keep in mind if your work resembles another's too closely you'll get nailed for cheating, so even if several people solved the problem together they'd essentially have to reimpliment it differently from one another
Then there is the bell curve to contend with
Georgia Tech is simply wrong on all counts, and probably too arrogant to recognize and fix the real problem, which isn't their students, but their approach to education.
Maybe it is difficult to see looking in, but there is a good concept behind the rules. Yes, they might not need to be there if everyone was honest, but unfortunately this is not a perfect world, and the restrictive environment helps in the long run.
Now it becomes clear what Georgia Tech is teaching its students. Obedience, and the sublimation of one's intellect to the authority of others, without question. The fact that you would write something like that with a straight face (and for your sake, I truly hope this was a clever troll and not meant in earnestness) is indicitive of the kind of education you are receiving at your university.
I humbly suggest you start shopping around for a more sensible university to transfer to, one that concentrates on teaching science and technology rather than obedience.
The Future of Human Evolution: Autonomy