Computer Science Students Outsource Homework
Carl Bialik from the WSJ writes "'If U.S. companies can go online to outsource their programming, why can't U.S. computer students outsource their homework--which, after all, often involves writing sample programs?' Wall Street Journal colummnist Lee Gomes asks. 'Scruples aside, no reason at all. Search for "homework" in the data base of Rent A Coder projects, and you get 1,000 hits. (An impressive number, but still a tiny fraction of all computer students, the vast majority of whom are no doubt an honest and hardworking lot.)' Some of the Rent a Coder users appear to be outsourcing their way through school, at low costs--probably less than $100 per assignment. The posting are, of course, anonymous, but Gomes traces one to a student at the New Jersey Institute of Technology, where an instructor tells him that Rent a Coder contributed to a problem of plagiarism last semester."
Why even bother getting the degree in something if you don't want to do the work anyway? Isn't that shooting yourself in the foot? Besides the fact that you won't have a clue what you're doing since you'll never have learned anything, if you don't have any desire to do it in the first place, why are you in the field?
What really needs to be done is for instructors to wake up and realize that most people don't even need to outsource in order to complete thier projects. After all, who needs to pay a "Rent-A-Coder" when so many instructors provide obvious shortcuts via working examples of the projects right along the assignment, i.e., Java classes, etc... Why "outsource" when you can decompile Jad, change a few variable names and viola! Project Complete.
To really combat plagarism, instructors should focus more on theory, algorithms, deisgn patterns, etc.., and less on the actual solution to a particular problem in $programmingLanguage. If you really must assign projects, insert subtle flaws or traps in the assignment that would make the project all but impossible w/out direct interaction with the Professor to clarify requirments, etc... This would expose the weak students, the obvious cheats. and give a clearer picture of what's really going on in the classroom. Problem is there are too many instructors out there who just don't care, and aren't in it for the right reasons. In other words, they just don't care!
Get your Windows Malicious Software Removal Tool Here for FREE! - http://fedora.redhat.com
Go ahead and outsource your homework. When you graduate and get a job, your company will realize you don't know anything and outsource your job to the same people. I've seen it happen.
http://religiousfreaks.com/I'm a C/S student at WSU in ohio, I'll keep that in mind when I am in the middle of my exam and I don't know how to write a program.
Really thought whats the point of going to college if your not going to learn it?
...why not be a buisness major instead? I mean, if you're not really passionate the work, why not pick an occupation that a) pays more and b) is easier to fake your way through?
Well, cheating is cheating, whether you get to use the work from a classmate or from someone in another part of the world. And if someone is really determined to take the easy way out, there is not a whole lot you can do to stop them; I doubt the majority of cheaters in college ever get caught (but allow for the fact that stupidity probably is a major factor in the need to cheat to begin with so that by itself increases the capture rate).
But what happens afterwards, when they're looking for a job and blow every interview since, well, they don't actually know what they're talking about? My guess, they blame the outsorcing trend for their failures...
Trust the Computer. The Computer is your friend.
There's a pretty big divide between utilizing some code someone else created to help solve a problem and outright getting someone else to do your work for you. Let's face it, there's enough easily accessible code out there that someone can cobble together a program in relatively easy fashion. Of course, it would take effort to actually assemble a bunch of "free" code to make it work. Is it any wonder that so many script-kiddies out there copy and try to utilize virus code, only to do such a bad job of it that the virus doesn't work?
GetOuttaMySpace - The Anti-Social Network
I took the time to RTFA. In the first example, a student who'd been more interested in night life than their studies found somebody to fill out a take home final exam. Letting the students take the final of all things outside the classroom is simply begging for them to cheat. If not this way, some other, such as getting help from an older friend. That instructor should be fired, unless there's tenure involved. If so, simply don't assign him or her any more classes. Let them strut about with their title of Professor, and their tenure, if they want, but unless they're actually teaching, I doubt they're going to get paid, and they won't be giving any more good grades to cheaters.
Good, inexpensive web hosting
The times are gone when most people in CS are geeks.
Many, many, *many* are in it for the money, or because people keep telling them computers are the place to be. I'm in computer engineering myself, but I've had to take up through jr level comp sci courses, and in each and every one I see people who fail to exhibit basic programming knowledge, or only a middling skill level in using the computer in general.
If you can't see the value in jet powered ants you should turn in your nerd card. - Dunbal (464142)
I have a few thought on this:
:) Hows that for Entrepreneurship? One can telecommute and then outsource all of his work to India....lets just hope those fools don't violate any NDAs!
First of all, it is probably morally wrong for students to have "other" people do their work for them. However, sometimes it really helps to have some "example" code from which to start learning. I'm torn between the two teaching methods but I believe that a good balance is necessary.
As an Electrical Engineer I was forced to learn to code (despite that fact that I really don't enjoy coding that much). I found that sometimes when a student jumps feet first into something they have a really steep learning curve. If they start with sample code and then get weaned off of it then that would be effective.
Ironically, "some" of those idiots were blamed for plagiarism! Oh how sweet justice is when students learn "Quality Control" through cheating.
On the flipside, I've seen arguments here that those students wont get anywhere in the workforce. I could imagine a scenario where individuals outsource their "personal" assignments (in the workforce) to India
I know I'm ranting but its my style.... I feel that I'm at least semi-on topic and that, at a minimum, made an attempt to say something interesting...
Matt Wong www.themindofmatthew.com
No. It's everybody's loss. These losers devalue the degree of Computer Science. Employers are starting to realize that a lot of these dolts don't really have any clue at all, and this alters their perceptions of CS graduates in general. I put in the long hours and hard work to really earn my degree, but many do not. Employers are not blind -- they realize that a lot of CS "grads" are total nitwits. This might lead them to believe that I am as well.
"You're only cheating yourself" might be true in high school but certainly not at the collegiate level. These sorts of people piss me off.
The schools keep cutting prof wages. What do they expect?
I look at this as a kind of moral erosion that will eventually lead to greater teaching discoveries.
I'm a programmer and I did all my own work through college. But thinking about this problem of cheating in a realistic light -- so what if they outsource? They should get some experience in outsourcing, and if they start early then they will be well ahead of other coders who work in a project management capacity.
That said, it's dishonest to pass work off as your own, if it's outsource material.
What profs should really do is:
1. Allow and encourage outsourcing.
2. Mark much harder on students who have outsourced.
3. Require all outsourcing meeting minutes (from RAC, MSN...etc).
4. Require superior design elements.
5. Require a receipt to keep track of how much was spent on the project.
6. Require project management reports.
This would give coders an idea of what it's really like, plus it will keep students from learning to become great liars (which really hurts us all).
Eventually computers will simply case out most code for us, so teaching coders to be casers is not really that enlightened, and yet most schools pound these kinds of requirements into students, dulling their wits and making them crabby.
Teaching coders to see the big picture will only come from a strong project management regiment, which is currently missing from most major programs. To them it's more about the lexicon, than the abstract understanding!
The dangers of knowledge trigger emotional distress in human beings.
Many, many, *many* are in it for the money, or because people keep telling them computers are the place to be. I'm in computer engineering myself, but I've had to take up through jr level comp sci courses, and in each and every one I see people who fail to exhibit basic programming knowledge, or only a middling skill level in using the computer in general.
And a lot of them are just mildly ok at math and figure you have to major in SOMETHING. I mean a lot of them wouldn't feel passionate about anything, but you have to pick a major, so why not computer science? Why does everyone here think that computer science is a field of study so noble, so exalted, that it and only it should escape the mediocre masses that muddle along in any other field? I mean, plenty of those English majors don't read books outside of school, and plenty of those engineering majors never even looked at a schematic they weren't assigned in class, and plenty of those astronomy majors don't even own telescopes. Just have to learn to deal with the mediocre people instead of urging them to go infest another field.
The nitwit is not the student but the professor who is using homework assignments as a basis for grades.
How hard you work is never a basis for anything. The only thing that matters is results. A lot of couples try to work out their differences. Many times, no matter how hard they work at things, the problems they have persist. The end result is that their problems are never resolved and they eventually split up. The problem isn't how hard they work, but that they can't reach a successful conclusion. If you work your ass off and fail, you can't argue that you're better off than someone who sailed through and succeeded. It only means that you have less aptitude than the person who does better than you.
If a student can pass exams without having cracked the textbook or glanced at the homework assignments, they should pass the class. It goes without saying that perhaps they should have probably taken a different class where they might have learned something, but that's not the point. The point is that the only thing you should be graded on is how well you learned the contents of the course. That can only be accomplished at the end of the course when all topics have been covered. Everything before that is only a means to teach the course topics (homework) or to judge the progress of the class as a whole (mid-term exams).
A degree is just a formal announcement that you have understood some area of study to a certain level of mastery. If professors will pass a student who fails a final exam because his homework was good, that's a problem with the professor, not the student. And yes, if your school has nitwit professors who do this, then your degree is worthless.
It's a great age to learn this - probably Jr High teachers should do that demo to each new incoming class - "I can catch you out - it's this easy"
I'd be curious if it was all people outsourcing their homework to party or a combination of the following:
1. Horrible public university student-teacher ratios making assistance in the learning process not only non-existent, but also frowned upon. Said student achieving the boiling point in frustration and failing to have help, seeks aid, even if paid.
2. TAs teaching all the material, oftentimes in fields they have 0 training, with another person's lesson plan/material. I have endured too many upper division security courses now, with TAs that I rated between toilet paper and turd.
3. Onerous assignments by some professor that can barely speak english and instead should be enrolled in ESL 101, where merely deciphering the assignment requires a 10 year background in cryptanalysis and NSA supercomputers. "ha, I'll just give this to some indian coder, he'll understand my professor for sure!~"
4. Rote assignments that are equally dull, unchallenging and time-consuming
5. True students seeking more elegant/better/high-graded solutions. How many times have you cobbled together something that was ugly, functional, but practically a monstrosity. Spend a few more hours on it, with 0 forward progress, or outsource the work, then analyze the solution to see a better algorithm and incorporate it? Why get a C, when you can outsource some superior work, get a better grade, and learn more in the process?
Outsourcing your homework is good experience for middle management. That way, when they get their job, they have experience in outsourcing programming and getting poor quality code back.
Code that obviously was good enough for its intended use (since they passed the class with it). Which is a lesson that technical departments at times should heed: don't waste resources on making stuff better than it needs to be; nobody's going to notice, or thank you, and you ended up wasting resources better spent somewhere else.
Trust the Computer. The Computer is your friend.
Well, that works just fine for when you don't "know something" such as a fact, figure, or definition. However, what about when you don't "understand something" such as a complex concept or how to apply a theory in practice? Do you just go ask somebody else?
Sure, you could try, but you probably won't simply find it with a quick Google search as you suggest. Consider how long it might take for somebody who does happen to understand it (well enough to teach it to you) to teach you this concept. That time is well spent for you, but not for your employer (nor necessarily your "teacher" in this case). This assumes, of course, that you know how to recognize somebody who actually does understand the concept, which is non-trivial at best; otherwise you'll still get it all wrong.
In the real world, if I want to hire you and you have a degree, I expect you to have been through that drill already for certain complex concepts, with professors (and indeed classmates) who are nominally proficient in their respective fields. If you haven't, you'll inevitably become a burden to your team.
If you aren't passionate, or competant enough to participate in any course offered at a tertiary education institution without cheating - don't go through tertiary education. Try apprenticing in a trade instead. You can get good money as a tradesman, and they don't have the same intellectual focus as a university/college degree.
If you aren't passionate or competant enough in any field offered anywhere, well, you're better served getting started on your french-frying career, because if you can't pull it together enough to get a degree or trade certificate, you're not going to be able to do it for a living.
Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
Good enough to run once is not good enough. Why do you think why many software packages out there suck? They write it good enough for the intended use. They don't write it to be solid.
Fight Spammers!
I realized that I could become a cube code monkey, or expand and accept that the rules changed. CS undergrads would be better off knowing this lesson early than finding out one day they had been outsourced.
:-)
This does, of course, assume that the unique skills that you bring to the table outside of CS provide better value than those that can be found in, say, India.
And language isn't such a barrier anymore. I work with Europeans and Asians who speak English as a language other than their first on a daily basis, and English is pretty widespread these days.
Any program relying on (nontrivial) preemptive multithreading will be buggy.
Sure, let the entrepreneurial students outsource all their projects. The wake-up call will be on them when, during their first real-world interview, I put them in a room, alone, for 20 mins with a whiteboard and ask them to pseudocode an algorithm or data structure.
The students who aren't interested enough in the -science- of a computing project might bet better off majoring in Business Administration and, yes, doing the outsourcing. Leave the architecting, the design, and (maybe) the coding to the real future computer scientists.
Which is a lesson that technical departments at times should heed: don't waste resources on making stuff better than it needs to be; nobody's going to notice, or thank you, and you ended up wasting resources better spent somewhere else.
The important difference in that assignments last a few weeks; in rare cases, an entire semester. With code, if your project succeeds the code could be around for decades.
You shouldn't waste money on excess features or library functionality that you might need someday. But money is never wasted on doing software right.
No. It's everybody's loss. These losers devalue the degree of Computer Science. Employers are starting to realize that a lot of these dolts don't really have any clue at all, and this alters their perceptions of CS graduates in general. I put in the long hours and hard work to really earn my degree, but many do not. Employers are not blind -- they realize that a lot of CS "grads" are total nitwits. This might lead them to believe that I am as well.
Speaking as a person who's just sorting through a stack of resumes, you're absolutely right. Generally I don't bother with people who lack a track record of actually delivering and maintaining software. Schools produce too many idiots whose main skill is getting grades. I run tight ships, and can't afford to spend massive amount of time educating somebody on the difference between academics and industry.
Want to catch my attention even if you're fresh out of school? Include something prominent on the resume that shows you can perform. Running an open-source project or building a dynamic web site with an obvious user base are great examples.
Homework usually doesn't count for a big part of a course, it's preparation for the test. Outsourcing homework makes about as much sense as outsourcing physical exercise or outsourcing an appendectomy--it may avoid short term unpleasantness, but it fails to achieve its long term purpose.
(In contrast, when companies outsource, they may just care about the product, so outsourcing is arguably a correct strategy for them.)
My comment was a responese to the assertion that the code received was poor, not a comment on the general desireability of having other poeple do your homework.
I guess my point was that the code quality is irrelevant when it's the wrong problem being solved.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"