Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Why Computer Science Students Cheat

Soulskill posted more than 4 years ago | from the your-comments-will-be-analyzed-for-plagiarism dept.

Education 694

alphadogg writes "Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration, and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

cancel ×

694 comments

Sorry! There are no comments related to the filter you selected.

How many ways are there to do simple things? (3, Insightful)

nebaz (453974) | more than 4 years ago | (#31900100)

If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

for (int i=1;i=10;i++) {
    System.out.println(i);
}

So would most other people. Would this flag me as a cheater?

Re:How many ways are there to do simple things? (1)

AnonymousClown (1788472) | more than 4 years ago | (#31900182)

If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

for (int i=1;i=10;i++) { System.out.println(i); }

So would most other people. Would this flag me as a cheater?

Or could you get away with it by just by doing a global replace of variables: 'i', 'index', or whatever?

And maybe replacing tabs with spaces and adding returns before '{' that are after 'if's, and so on.

Re:How many ways are there to do simple things? (2, Interesting)

ravenspear (756059) | more than 4 years ago | (#31900410)

pretty much.

I rarely cheated in my CS classes, but on some really hard assignments where I just had to reuse code for some sections to avoid going insane, I just copied some code and then made it look different by changing all names, sometimes rearranging order of things, etc but still having it do the same thing.

Re:How many ways are there to do simple things? (5, Funny)

fucket (1256188) | more than 4 years ago | (#31900416)

for (indexnt index=1;index=10;index++) { System.out.prindexntln(index); }

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900492)

that's exactly what plagiarism detection softwares chech

Re:How many ways are there to do simple things? (2, Insightful)

Surt (22457) | more than 4 years ago | (#31900186)

Typically even an introductory level course is more involved than that, even for the first assignment.

Re:How many ways are there to do simple things? (2, Interesting)

Derekloffin (741455) | more than 4 years ago | (#31900456)

While true, the general issue is that there are only so many ways to go about doing X. Further there are only so many of those that are good ways among those, and even fewer still that students are taught about. When you then compare against both the net and all previous solutions, the odds of a match coming up greatly increases. At a certain point, particularly when we're dealing with introductory courses, you have to ask, are these true or false positives. I know at my work, I rarely can tell if it was me or someone else who coded something originally because the code structure is just that tight that you won't see much variation.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900192)

This was the first thing I thought of as well. The programming languages taught in Academics more often than not have only one day to do something. I'm curious as to how many times students are caught cheating, they actually are.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900194)

Try:

for (int i=1;i System.out.println(i); }

Your loop wouldn't even get number one printed, so i'm guessing that unless the entire class is failing, there would not be much plagerism from your code.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900198)

If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

for (int i=1;i=10;i++) {

    System.out.println(i);
}

So would most other people. Would this flag me as a cheater?

No. Please read the summery:

"Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

Re:How many ways are there to do simple things? (1)

jhumkey (711391) | more than 4 years ago | (#31900200)

Only if you use '3 spaces' for the indentation. Since I (exclusively) do that, amongst all other programmers on the planet.

Re:How many ways are there to do simple things? (1)

qoncept (599709) | more than 4 years ago | (#31900326)

Most of my team tries to format code as consistantly as possible. I just love the days I get to debug or enhance the code written by the other guy.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900206)

Code tends to be intensely unique and varied between authors. Your example is too simple to compare to a whole program.

By the way, it's also wrong. I'll leave why as an exercise to the reader.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900214)

well for starters...
for (int i=1;i==10;i++) {
        System.out.println(i);
}

might work better.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900310)

That seems odd. But I've been trained in C, where it would be i=10

Re:How many ways are there to do simple things? (1)

Qzukk (229616) | more than 4 years ago | (#31900380)

But I've been trained in C, where it would be i=10

Only if you never want your loop to terminate, since during the loop termination check it would set i to 10, which would never be false.

(int i=1;i<=10;i++) is the correct "numbers from 1 to 10 [inclusive]" answer.

Re:How many ways are there to do simple things? (2, Insightful)

snowraver1 (1052510) | more than 4 years ago | (#31900448)

It would still be wrong. The loop condition (i=10) would be FALSE when the loop is initialized. (i=1). The correct form is for(int i=1, i

http://cprogramminglanguage.net/c-for-loop-statement.aspx

What site am I on again...

Re:How many ways are there to do simple things? (1)

blai (1380673) | more than 4 years ago | (#31900460)

If your matching condition is i=10, you'll get a true right away.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900508)

Uh... really? By C do you mean Ocaml?

Re:How many ways are there to do simple things? (4, Insightful)

CorporateSuit (1319461) | more than 4 years ago | (#31900420)

What are these unneccesssary scribblings you're adding to your code? This is a job for a single line:

System.out.println("12345678910");

Re:How many ways are there to do simple things? (4, Informative)

keithpreston (865880) | more than 4 years ago | (#31900218)

This would be flagged but wouldn't pass the manual review. As a former Graduate Teaching Assistant, cheaters are easy to spot because they are LAZY! They turn in the exact same files (same comments with same misspellings) with maybe a different name at the top. The only good way to cheat is to make sure every things is perfectly correct and has no identifying characteristics.

Re:How many ways are there to do simple things? (1)

hbean (144582) | more than 4 years ago | (#31900234)

I actually remember getting in trouble back in school for having similar code to some friends of mine that used a stack to count the number of A's and B's in a string. Exactly how many was is that supposed to be done? for(all char in string) if(is an A) push else if(is a B) pop if(stack is empty) return true; hooray! plagiarism!

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900262)

No. I've worked with several of these systems, and most of them look for cases where 2 or 3 students write very similar code that is itself dissimilar from most of the rest of the class. This also provides a nice way of weeding out matches based on the "skeleton code" provided by the teacher, or other such typical causes of shared code.

Re:How many ways are there to do simple things? (4, Insightful)

TitusC3v5 (608284) | more than 4 years ago | (#31900266)

If the person you copied it from also mistakenly used an assignment operator instead of a conditional, then yes. :)

Re:How many ways are there to do simple things? (2)

nebaz (453974) | more than 4 years ago | (#31900534)

Good catch. Slashdot pruned my < character though as it was not escaped. I don't think the code that appears would compile. :-)

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900278)

If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

for (int i=1;i=10;i++) {
    System.out.println(i);
}

So would most other people. Would this flag me as a cheater?

my version:
for
(
int i=1;
i=10;
i++
)
{
System.out.println(i);
}

Ha. They'll never catch me!

Re:How many ways are there to do simple things? (1)

IndustrialComplex (975015) | more than 4 years ago | (#31900282)

If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

for (int i=1;i=10;i++) {
        System.out.println(i);
}

So would most other people. Would this flag me as a cheater?

Would a professor run an assignment like that through the system though?

While you do have a limited number of 'ideal' ways in which to accomplish a simple problem (one you would see in an early programming course) beginning programmers aren't going to come up with the same approach to a problem when you add in a little bit of complexity. A lot of us (I suck at programming) will come up with solutions that solve the problem, but often in quite round about manners, or have flaws which really distinguish them.

What about the LATER assignments? One I had for my early course involved writing a ticketmaster-like ticket purchasing system where it would find and temporarily reserve the 'best' seating for a block of tickets. It would release these tickets if they were not purchased. It was a very simple problem (didn't get into multiple users), but I'd be willing to bet that it wouldn't be likely for two students in a group of 100 to come up with the same solution. And even if it did flag 10 of those assignments, an intelligent look at them would allow the instructor to determine if they were developed together, or just happened to be similar.

Re:How many ways are there to do simple things? (1)

DannyO152 (544940) | more than 4 years ago | (#31900290)

Why, no. You'd get a bad grade nonetheless of your originality because the predicate portion of the for loop should be i == 10;.

Now, if a lot of people made that same mistake and there was a correlation between where they sat or what fraternity they pledged, that might make it flaggable.

Nope, you are wrong too (0)

Anonymous Coward | more than 4 years ago | (#31900398)

It should be

i<=10

or

i<11.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900530)

Really though? i == 10?

Are you sure you wouldn't like to change your cocky response to "i = 10"?

Re:How many ways are there to do simple things? (1)

gman003 (1693318) | more than 4 years ago | (#31900298)

Most people have subtle spacing differences. Compare:

for (int i = 1;
for(int i=1;
for (int i=1;
for (int i = 1 ;
et cetera.

And when you start c/p-ing code, most students don't change it to be consistent, and rarely keep it consistent between projects. When writing from scratch, though, people usually do stay consistent with spacing.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900438)

How many people use IDEs to fix their style? That alone would filter out many of the style arguments.

On the other side of the coin, my code is inconsistent in terms of formatting because if its a bit of code where I have a plan it'll be formatted nicely, but if I've been beating on a section of code, my formatting goes out the window.

Re:How many ways are there to do simple things? (1)

blai (1380673) | more than 4 years ago | (#31900482)

assignment 1: random space character inserter

Re:How many ways are there to do simple things? (1)

Nadaka (224565) | more than 4 years ago | (#31900388)

for(int i = 0;i 10; System.out.println(++i));

That is how I might right it.

Re:How many ways are there to do simple things? (1)

Nadaka (224565) | more than 4 years ago | (#31900432)

forgot slashdot would mistake a less than sign as partial html and escape it.

Re:How many ways are there to do simple things? (0)

Anonymous Coward | more than 4 years ago | (#31900424)

Just finished writing automated bot for a popular flash based game. After spending at least 50man hours I figured out that, I can't win the game without using my credit card whereas game claims to be free forever. I feel like cheated but still I am not cheating(not automating things when I am not around). I just automated few mouse clicks. What is wrong in that?

PS: Posting as anonymous for obvious reason.

Dumb people? (0)

Anonymous Coward | more than 4 years ago | (#31900110)

Could it be that more dumb people are flocking toward higher paying careers without the slightest bit of ability. Instead of accepting the fact that they don't know where the power button on a computer is they instead turn to cheating to try to skate by.

Itch and scratch... (0)

Anonymous Coward | more than 4 years ago | (#31900414)

Could it be that more dumb people are flocking toward higher paying careers without the slightest bit of ability. Instead of accepting the fact that they don't know where the power button on a computer is they instead turn to cheating to try to skate by.

No, it's simply the "you scratch my back and I'll scratch yours" nature of human societies at work. You are stuck on some assignment, you have three other assignments to hand in all of which look set to take up about 30% of your available time which leaves you needing more time and you can't afford to spend any more of it than absolutely necessary stuck in a quagmire. What do you do? Most students I know ask their friend who already solved the problem for advice and end up prodcuing a solution of their own that is, at least partly quite similar to their buddy's. The school authorities then let loose their new anti-plagarism software on the student's assignments and to their horror discover that **Gasp** the students "collaborate excessively". Having completely forgotten how things worked when they them selves were studying for their own degrees university staff express extreme concern at the level of "cheating" going on among modern university students. This was of course not the case when they them selves were students... how the world has changed!! I wonder what would happen if you retroactively ran this software on assignments and reports handed in by people who earned their degrees 10 and 20 years ago (some of it, things like BSc and MSc reports must still exist) ??

Why? (0, Troll)

Anonymous Coward | more than 4 years ago | (#31900122)

Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do... Schools are always trying to make you implement retarded things anyway...

Re:Why? (5, Insightful)

Z34107 (925136) | more than 4 years ago | (#31900274)

Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do... Schools are always trying to make you implement retarded things anyway...

You re-use code to avoid "reinventing the wheel." The intent is to 1) save time developing what already exists, and 2) take advantage of all the debugging that was already done for you.

The goal of getting a CS degree is to understand what the fuck a wheel is. Copying from expert sex change is not going to make you a good computer scientist; it won't even make you a good software developer.

Re:Why? (0)

Anonymous Coward | more than 4 years ago | (#31900408)

Copying from expert sex change is not going to make you a good computer scientist; it won't even make you a good software developer.

Is this a new form of a subtle troll? O_o

Re:Why? (4, Informative)

Z34107 (925136) | more than 4 years ago | (#31900490)

It's neither new nor subtle; it's why expertsexchange now hyphenates their URL: experts-exchange.com.

Re:Why? (1)

FooAtWFU (699187) | more than 4 years ago | (#31900314)

The first goal is code understanding so that you can create code without someone else having done it for you. Then you can worry about (effective patterns of) code-reuse. Copy-n-paste for your homework doesn't help anybody and doesn't really represent an effective paradigm for development in real world. You'll just end up being mocked on thedailywtf.com with your job outsourced to someone overseas with a lower cost of living, while the effective and intelligent developers are still pulling in six-figure incomes.

Re:Why? (1)

pclminion (145572) | more than 4 years ago | (#31900378)

While modularity is obviously a goal, the cool thingies we play with as developers had to be created by somebody. Where do you think all this technology around you comes from? Aliens?

Dammit, alphadogg (1)

sznupi (719324) | more than 4 years ago | (#31900140)

You're not supposed to provide balanced, reasonable, fairly probable explanation as part of the summary. What are we supposed to write about? (no, really, give your suggestions below)

Re:Dammit, alphadogg (1)

COMON$ (806135) | more than 4 years ago | (#31900188)

You are assuming most of us read the summary...noob.

My opinion: (5, Funny)

butterflysrage (1066514) | more than 4 years ago | (#31900260)

Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating [networkworld.com] . More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

Problem (5, Insightful)

COMON$ (806135) | more than 4 years ago | (#31900142)

True CS curriculum require a massive amount of critical thinking and other analytical skills. Something the recent graduates of HS are not prepared for. Match that up with the sense of entitlement and you get expected results. Back when I was in CS the dropout rate was around 90%. There were no rent-a-coders and using the web for a resource was a very new thought. So it was write your own damn code or head over to liberal arts...

Re:Problem (1, Funny)

Anonymous Coward | more than 4 years ago | (#31900202)

So it was write your own damn code and get off my lawn!

Fix'd.

Re:Problem (1)

COMON$ (806135) | more than 4 years ago | (#31900524)

thx.

Re:Problem (1)

FooAtWFU (699187) | more than 4 years ago | (#31900230)

CS: It is all sink or swim...oh and did I mention there are sharks in that water?

Speaking of the CS metaphor in your .sig, I've actually gone swimming in a pool full of sharks. It was part of the 8th-grade class field trip. They're pretty benign critters.

That said, you still need to be able to swim, and if the sharks scare people off, perhaps it's for their own good. :)

Re:Problem (5, Insightful)

eln (21727) | more than 4 years ago | (#31900498)

Leaving aside the usual nonsense that kids today are worthless and can't do anything right, the problem is more complicated than that. Many universities have stepped away from the idea of going to college as a way to get a well-rounded education and have positioned themselves as places to get a piece of paper that will let you get a good job. Combine this with the increasing number of positions requiring a college degree, and you get a lot more people more interested in just getting through and getting that piece of paper as quickly as possible than they are with actually learning anything.

College is quickly becoming like high school: It's a base requirement that everyone has to go through if they don't want to spend the rest of their lives picking lettuce, so people are going to go and try and get through it as quickly and painlessly as possible. There have always been people who do this of course, and cheating is certainly not a new problem, but the above-mentioned issues may make it more prevalent than it once was.

Remember, though, that our generation cheated as well. Every college in the country has an honor code, and many of them have been in place for decades (or longer). These codes wouldn't exist if no one was cheating before.

keyword: caught (5, Interesting)

Surt (22457) | more than 4 years ago | (#31900154)

They're cheating just as much in other disciplines, it's just in CS we have a lot of good tools to catch them. Plus, we get a lot of false positives with no defense, so we get to inflate our successful catch statistics.

Re:keyword: caught (1)

sznupi (719324) | more than 4 years ago | (#31900364)

Hm, also that cadre at CS departments is much more likely to be able to sensibly use "computers" (hence also plagiarism tools) can only help...

Re:keyword: caught (1)

TubeSteak (669689) | more than 4 years ago | (#31900368)

Are the CS tools 'local' or are they like the ones for essays/papers where you contract out to a private company that claims ownership of anything you send them?

Re:keyword: caught (1)

i.r.id10t (595143) | more than 4 years ago | (#31900486)

Wonder what the legal effect would be if you uploaded code under the GPL to turnitin or a similar site?

Ever thought? (0)

Anonymous Coward | more than 4 years ago | (#31900162)

Professors tend to give out very similar assignments year after year.

Is it surprising at all that these automated programs detect similarities between hundreds of thousands of programs that all do the exact same thing?

This hasn't happened to me yet, but a friend of mine (whom I trust to be truthful) told me that he didn't cheat on a programming assignment, but he along with half of the class had to do their assignments again because of suspected plagiarism.

interesting (1, Informative)

Anonymous Coward | more than 4 years ago | (#31900164)

While I dont promote cheating I do however believe that you should not reinvent the wheel. When I went through school, it was encouraged that we look for examples and code that we could modify or reuse to fit our needs as long as we understood the concepts and could prove we understood it.

more about course (1, Insightful)

Anonymous Coward | more than 4 years ago | (#31900168)

maybe this says something more about how introductory level computer science courses are taught.

Because that first step is a doozy (3, Interesting)

gestalt_n_pepper (991155) | more than 4 years ago | (#31900170)

CS is just difficult for some people. We didn't all grow up programming in the basement. I've seen students who finally got their program to "run" by commenting out every line, and sadly, were so clueless that they were quite proud of the fact.

Oddly, it's actually easier now that computers are ubiquitous and going to the CS lab to complete an assignment isn't necessary.

Re:Because that first step is a doozy (3, Informative)

jwinster (1620555) | more than 4 years ago | (#31900312)

Please mod parent up. I agree wholeheartedly with this comment in that there is a really large barrier to entry in CS. I'm a CS grad, and I remember reading the introductory paragraph to my "Introduction to Programming" book stating that this is not a good book for first time programmers, only people with some experience should use it. Luckily I was able to keep up with the learning curve (despite that being my first time programming as well), but it's choices like that which lead to CS dropout rates of 50-60%, and inevitably, cheating.

Re:Because that first step is a doozy (1)

Lobachevsky (465666) | more than 4 years ago | (#31900510)

Blame high schools. Universities are not responsible for teaching people basic algebra, geometry, reading/writing, or logic. If someone doesn't know the difference between converse and contrapositive, they should be a freshman in high school not a freshman in college. Logic is just "pseudo-code" and everyone should know logic before entering a university.

Re:Because that first step is a doozy (1)

jornak (1377831) | more than 4 years ago | (#31900404)

It's a real shame, though, to see how many wannabe nerds there are in the world. In our introductory programming course, the instructor decided to use VB.net as the teaching language to go easy on us.
It's amazing how many kids (and I say "kids" because they have the IQ of 13 year olds) can't understand basic programming logic; 80% of the students either failed and/or dropped out of the program because they couldn't grasp it. Hell, the teacher even started allowing us to copy code from the internet if we needed to halfway though the course.
Meanwhile I was sitting there with 100% in the class, making a bunch of mini-games to play when I was bored, while all the other students gawked in amazement how pictures moved around the screen when I pressed a key.

Re:Because that first step is a doozy (2, Informative)

gestalt_n_pepper (991155) | more than 4 years ago | (#31900538)

It's a matter of logic, not language. VB.net isn't the issue. It's now so close to C#, that it might as well *be* that. It's certainly no easier, or harder, for that matter.

The most useful "programming" course I took, other than algorithms and data structures was symbolic logic. I'll bet that this course would be a fairly accurate predictor of who passes and who fails in programming.

Hello, World! (1, Insightful)

phissur (1285832) | more than 4 years ago | (#31900176)

There are only so many ways to print 'Hello World'. Don't expect all students to have different code for an Introductory course's simplistic assignments. Now if their comments are the exact same, raise some flags.

Re:Hello, World! (1)

martas (1439879) | more than 4 years ago | (#31900472)

no, that's not true. these code comparison tools look for deeper similarities as well. if you were to manually copy my code, with your own indentation, comments, spacing, etc., you'd still get caught, because a slightly interpreted version of your code would look exactly the same as mine.

And then they check it? (-1)

Princeofcups (150855) | more than 4 years ago | (#31900216)

> which are then manually examined

This implies that actually looking at the code turned in is not common practice. There's your problem. If you're not looking at the code, how are you actually grading? How can you help individual students improve their coding styles? It doesn't sound like the students are getting anything out of these courses other than they could just by reading a book.

Re:And then they check it? (4, Insightful)

emurphy42 (631808) | more than 4 years ago | (#31900386)

That's taken out of context. In context, it carries a clear implication of "manually examined for the specific purpose of confirming or denying plagiarism", on top of whatever manual examination takes place for the purpose of confirming or denying that the code is any good.

Re:And then they check it? (1)

pclminion (145572) | more than 4 years ago | (#31900484)

If you're not looking at the code, how are you actually grading?

The same way code is checked in industry: unit testing. Unfortunately, this leads to a binary "pass/no pass" kind of grading, but at least it bears some resemblance to industry.

How can you help individual students improve their coding styles?

I can't believe I'm saying this, but computer science isn't the place to learn coding practice. Good coding style and architecture is an engineering problem, and should be taught as an engineering discipline. Not to mention, most of the instructors in CS aren't very good at it themselves, and wouldn't teach anything particularly helpful anyway.

Re:And then they check it? (3, Insightful)

martas (1439879) | more than 4 years ago | (#31900520)

wrong. they may still look at the code for grading. but catching cheating is a much harder problem: in terms of complexity, grading is O(n) while verifying for similar submissions is O(n^2) or worse. also, in big classes you may have multiple TA, each grading a subset of the submissions. hence may be impossible for them to find such similarities.

But is the class even relevant? (1)

Kenja (541830) | more than 4 years ago | (#31900222)

Long long ago, in a land far far away, I started down the CS degree path but stopped after the first required programming class. Guess how often I've used Pascal since then? If the students know the class is meaningless, why not cheat?

Re:But is the class even relevant? (2, Insightful)

multipartmixed (163409) | more than 4 years ago | (#31900296)

If you had taken more than one CS class, you would have understood that it's not about Pascal -- it's about what you're writing WITH pascal.

Did you really think that say, trees in pascal are completely different from trees in C?

Re:But is the class even relevant? (1)

Kenja (541830) | more than 4 years ago | (#31900354)

Actually, it was so that we where forced to buy the Pascal programming book the professor wrote. Seemed to serve no other purpose. So I dropped out, started learning on my own and am now gainfully employed as a coder. Wouldn't mide having the degree, but the CS courses (at least at the time) where junk.

Re:But is the class even relevant? (0)

Anonymous Coward | more than 4 years ago | (#31900374)

Long long ago, in a land far far away, I started down the CS degree path but stopped after the first required programming class. Guess how often I've used Pascal since then? If the students know the class is meaningless, why not cheat?

If the class is irrelevant to you, why take it?

Re:But is the class even relevant? (1)

pclminion (145572) | more than 4 years ago | (#31900526)

It is unfortunate that you got the impression that the reason you learned Pascal was to know Pascal. You might have enjoyed the forest, had you not been focusing on the trees.

Reason #12.. (1)

Itninja (937614) | more than 4 years ago | (#31900242)

...why the possession of a degree is only a tertiary (at best) indicator of ones ability in any particular field. Schooling != Education

What is the sound of one hand coding? (5, Insightful)

WillAffleckUW (858324) | more than 4 years ago | (#31900252)

When the most optimum solution to any problem is frequently the same code, and the same exact question gets asked every single time for that course, is it cheating or is it just optimization?

I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

Re:What is the sound of one hand coding? (3, Informative)

IndustrialComplex (975015) | more than 4 years ago | (#31900442)

I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

Most of the professors I had would state that you were allowed to use a set list of libraries. If you wanted to use a different library, it had to be written by you and included in your submission.

The set list of libraries was quite small, usually something like std.h and not much else (I don't know if that was the library, I haven't written anything in C or much else for 10 years)

Back in my day, I'd just steal the journal (0)

Anonymous Coward | more than 4 years ago | (#31900254)

If there was only one copy on campus (and since there was no pubmed or anything similar), that would do.

Code reuse? (1, Insightful)

Anonymous Coward | more than 4 years ago | (#31900264)

Isn't OO all about code reuse?

is this suspicious? (1)

shadowrat (1069614) | more than 4 years ago | (#31900276)

all the students had the line

for(int i = 0; i < 128; i++)

in their comp-sci assignment.

Why Computer Science Students Cheat? (3, Insightful)

rodrigoandrade (713371) | more than 4 years ago | (#31900286)

For the same reason Psychology students cheat.
For the same reason Math students cheat.
For the same reason English students cheat.
For the same reason Economics students cheat.
For the same reason Biology students cheat.

You get the idea...

how to not cheat (5, Insightful)

Anonymous Coward | more than 4 years ago | (#31900300)

I used to cheat in college, and all my friends do. I don't cheat anymore. My secret? I switched to a major I like. For the most part, I enjoy and look forward to assignments, and haven't cheated on any since changing majors. For me the subject is CS, but I'm sure that most people could find something they like well enough to look forward to assignments.

How many ways are there to write a linked list? (1)

RedMage (136286) | more than 4 years ago | (#31900322)

If we're talking introductory courses like Data Structures, then it's pretty hard not to look like everyone else. I don't code most of the basic data structures anymore, but I expect that anyone I hire would have been through the basics at least, so I see the value in teaching these things. But I can imagine that if I were to write basic code to manipulate a hash table or binary search it would look a lot like everyone's else code.

anthropic principle (1)

TimeZone (658837) | more than 4 years ago | (#31900330)

You're looking for it [cheating] more often!

This is very similar to finding bugs in QA phase of software (or hardware) testing. The only way you're going to stop finding bugs is if you stop looking for them...

TZ

For The Same Reason This Criminal (-1, Flamebait)

Anonymous Coward | more than 4 years ago | (#31900332)

cheated [whitehouse.org] :

Money.

Yours In Moscow,
K. Trout

hacker mentality? (1)

quangdog (1002624) | more than 4 years ago | (#31900334)

Perhaps it has more to do with the hacker mentality that seems to be prevalent (or was when I was earning my CS degree) amongst first year cs students. Aren't they just gaming the system for maximum benefit with minimum work?

The only issue is that the cs depts are able to detect this more easily....

Also intro classes are taken by all majors (0)

Anonymous Coward | more than 4 years ago | (#31900366)

A CS intro class is often required by other majors, and these generally have the HIGHEST cheating rates. The worst ones at my campus are the non cs-major only intro to cs classes. My girlfriend had to take one and apparently 30 out of the 100 or so kids were caught cheating (with definite positives). They seem to be the most clueless that they WILL get caught by the automation.

Real geeks/nerds never plagarise. (2, Interesting)

Antony T Curtis (89990) | more than 4 years ago | (#31900370)

When I ran a tutorial group for fellow students who were taking the Imperative Programming module, I can guarantee that there was no plagiarism nor cheating going on. I helped them learn coursework and each of their assignments were done by them and I only intervened if they had made a mistake. They experienced some frustration because I would not give them the solution: I had them work through it themselves and figure out their own mistake. Only one time, I was concerned that they really were considering throwing me out through the 3rd floor window.

Only after they had completed their assignments, would I show them how I would complete the same assignment.

I think a difference was that each of them really did want to learn the material but many students today taking these courses just want a job and have no personal interest in the topic.

It'll work itsef out eventually (2, Insightful)

wikid_one (1056810) | more than 4 years ago | (#31900384)

If you are one of those who cheat in an Intro. to CS class, then chances are pretty good that you won't make it too far with your programming aspirations. Just don't complain when the college keeps taking your tuition money for the same course!

CS classes need to be in the real world. (3, Insightful)

AnonymousClown (1788472) | more than 4 years ago | (#31900400)

The professors say:

"Many of our students like to collaborate, but at what point are you copying?" Pitt asks. "The course policy needs to be really clear. Some courses will allow you to work in pairs but not in triples. If you don't follow that policy, we would call that cheating."

The industry says:

"In the real world, people write code in teams where they are given pieces of a project to work on," Foote says. "The academic world should be mapping onto the real worldThey shouldn't be handing out assignments where people are coding on their own."

Ladies and Germs:

We see here where academia isn't keeping up with industry. I can't tell you how many times I've seen where jobs descriptions demand "team players" and "the ability to work in teams".

And I'd argue that academia promotes the prima donna. Someone who was a 4.0 CS student is going to have the impression that he's better than everyone else (maybe true) and that everyone else should get out of his way and let him do it all (not good). I worked with the latter. He was a GA Tech grad and he was rather brilliant. Unfortunately, with all his smarts he was a liability to the team. He couldn't possibly do everything himself (2 million+ line project due in 6 months) and he caused a lot of problems to the point where he was slowing the others down even more.

The geniuses need to be off on their own developing - whatever - that's what we had to do with this guy. He was still miserable, though.

software sucks (5, Interesting)

InsprdInsnty (1793100) | more than 4 years ago | (#31900412)

One of my lecturers decided to test our university's plagarism software as it was coming back with a unusually high number of false positives. As soon as he submitted a sample he wrote it came back positive for plagarism even though he answered a question just using the knowledge he had gained over his 20+ years experience in the industry. He and many other people in the department put hardly any weight on the results that pop up. His issue with using it is that the content of the course changes so little that with every iteration of students passing through the school its more likely to have incorrect results as its saves a copy of the submission to add to its database. I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

Re:software sucks (1)

czmax (939486) | more than 4 years ago | (#31900518)

I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

Creative spelling does help expand the number of ways 1 can right the same dam sentence!

Sometimes you need smarter Teachers in CS. (0)

Anonymous Coward | more than 4 years ago | (#31900422)

I remember one class, the stupid teacher would have the program posted to his website, but if you took of the CLASSName.HTML file you could get a listing of the directory, which had the completed programs for all the assignments. I had a friend in class that took the one of Teacher's program and handed it in as his own, and the teacher gave my friend a A on program, and I did it the hard way and got a B even though my program did everything that was needed. He even put a comment in the program saying he was using the teacher's code for the program. I hated the Teacher because he was never on consistent with the grades.

How does a 'caught' student defend himself? (2, Interesting)

Anonymous Coward | more than 4 years ago | (#31900430)

How does a student defend against a false positive in this environment?

8yuo Fail It. (-1, Troll)

Anonymous Coward | more than 4 years ago | (#31900452)

shout the vloudest

Peers Pressures & Context (2, Interesting)

mindbrane (1548037) | more than 4 years ago | (#31900496)

Our big brains are deeply tied into our social matrix. Our value systems, our ethics and our morals, echo within our social system and inform our actions. Context informs values and actions. If disciplines like the hard sciences advertise their wares as facts and require students approach their studies with a "just the facts" attitude then that context will lend itself to a cut and past approach to homework that will more readily accommodate obvious borrowings from other students. If you're in an arts programme and your task is to display imagination and your core inner values in a medium and venue that accentuates individuality and creativeness then, ceteris paribus, it's more likely that context will not only encourage innovative output in homework but also encourage a more guarded attitude toward a peer borrowing your ideas. If you're a C.S. student and the world around you is rife with computer hacks and the news about those hacks inform you that you should be able to not only understand them but, possibly, be able to come up with something similar or better than to a considerable extent the ethics that inform your homework production will reflect the same ethics that inform the hacker culture.

If as educators you advertise your discipline as an empirical activity scrutinized by peer review then undergraduates just trying to fill out their curriculum with a few tasty bits for their upcoming resume are likely to think, well it's just facts, cut and paste. Let it wash out in the exams.

I suspect that it isn't just that... (2, Interesting)

fuzzyfuzzyfungus (1223518) | more than 4 years ago | (#31900504)

While it is almost certainly the case that comp sci assignments face the best algorithmic scrutiny(CS professors, shockingly enough, are probably more likely and better able than modern literature professors to subject them to such), there are similar algorithmic tools(albeit generally 3rd party contracted stuff) being used against writing assignments at many schools.

I suspect that there are other factors at work, as well. I'll put out the following conjectures(whether you would prefer to say that I "reasoned from first principles" or "pulled them out of my ass" is at you discretion):

1. Intro level courses, in all areas of study, will have higher rates of cheating than later courses. Two basic reasons: Intro level courses are much more likely to be mandated under "core curriculum" or "breadth requirements" or whatever the institution's term for the concept is. This makes them much more likely to have a substantial population of students who are deeply disinterested and/or very poorly suited to the subject. People who don't care, or who can't hack it, are the ones with the strongest motives to cheat.

2. The level of cheating, broadly speaking, will reflect how profitable the area of study is. Other than the accolades of your tiny group of peers, the rewards for being a world-renowned expert in late-middle Assyrian civic structures are basically fuck-all. If you work hard for a decade+, and get lucky, you might get a steady but not-especially lucrative tenured position, maybe a few advances from books, and that's about the best case. Therefore, only people with a genuine enthusiasm for the subject will bother to take more than "Intro to World History 101". There won't be zero cheating(putting your name on the output of your toiling grad students, for instance, is practically a best practice); but there will be less. Things like law, medicine, business, CS(more before the bubble burst than now; but still some) offer relatively good monetary rewards, and so are more likely to attract people who have comparatively little interesting the the subject and just want the diploma. You will therefore expect higher levels of cheating.

3. The level of cheating, broadly speaking, will reflect the student body's belief about "how relevant" the academic material is to the goals that they seek(this is partly covered by #2; but goes more broadly than that). If you, say, want to make it as an English professor, or in Real Serious Math, cheating is largely counterproductive. You learn to write by writing, so if you skip much of the writing, you won't know how to write at the end of the course. You gain facility in math by doing, so you won't be facile if you cheat rather than work. If, though, you are sitting through CS, with visions of being a .com millionaire(or even just a workaday java monkey) dancing in your head, you'll be thinking "why do I need to know this crap about NP complete Turning machines and O complexity and stuff? I just want to write Facebook 2.0!". People smarter and/or wiser than you may well suggest that you are wrong; but you will still be tempted to cheat your way through the "irrelevant" material.

I suspect that Intro CS sits at the intersection of the worst of both worlds. On the one hand, since it's an intro course, you get all the people who aren't really cut out for it learning the hard way that programming isn't as easy as playing video games, even though they both involve computers, who then freak out and start cheating(either to pass at all, if they are really hopeless, or to pass without cutting into their drinking time too much). On the other hand, you have all the people who are seeking Technology riches, and don't want to hear this ivory-tower-crap, they just want to write some programs and get a job.

At least we have American Idol (right?) (1)

abbynormal brain (1637419) | more than 4 years ago | (#31900532)

We are arguing for arguments sake without more data. Is this "rise" based off comparisons of data that were gathered in the same fashion (I.e., computerized results vs computerized results or computer vs manual)? Either way, how do you measure the nature of success or growth? (Rhetorical) ... with the revolutionary and tangible results (I.e., transistor, vaccines, space exploration advancements, LHCs, etc).
It seems we'll reap the reflection of our values down the road when our science hopefuls have a backup career with American Idol.

In the real world (1)

olddotter (638430) | more than 4 years ago | (#31900542)

How much of that would be frowned upon in the real world? If you can find an example on a web site, your manager isn't going to care if you lift it. As long as it doesn't cause a IP lawsuit. In fact, for probably 20 years since the introduction of object oriented design, the industry has preached "code reuse."
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>