TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Cheating in Computer Science

59 点作者 r11t超过 14 年前

13 条评论

hristov超过 14 年前
Sorry, but this kind of thinking is bullshit. Treating cheating as being efficient and promoting code reuse is just ridiculous.<p>To actually be a good programmer one should learn how to write code by themselves, and then start thinking about reusing it. If you start with reusing code, you will never be able to code anything new but will always rely on copying other people. You will also always copy other people's mistakes without noticing.<p>I finished school long time ago and cheating was rampant, and it really pissed me off. All it did was prevent the truly exceptional from standing out from the crowd. Also it gave the faculty a really false sense of their effectiveness as teachers.
评论 #2011376 未加载
评论 #2011411 未加载
评论 #2012129 未加载
评论 #2012162 未加载
poet超过 14 年前
Finishing up my undergrad at UIUC. A notable fraction of students in each course do cheat. I see two courses of action: (1) we could take the hard road and seek to catch all dishonest students and punish them or (2) we could make cheating extremely difficult with some simple changes.<p>I think (2) is the prudent course of action. The majority of cheating that I am aware of is only possible because professors reuse assignments and homework/exam questions from previous years. Solutions are simply passed down each year. One notable exception is in our theory classes, where the faculty make the effort to produce unique homework and exam questions every semester. I believe cheating in the theory classes is far lower as a result and I am extremely thankful that the faculty put forth this effort.<p>I am cognizant of the work required to generate unique assignments each semester. However, as demonstrated by how departments typically handle quals, it is doable if the workload is distributed. It is my sincere hope that this becomes standard practice. It is the easiest and most fair way to handle the cheating problem. The reason why such a system usually doesn't get implemented in practice is because it requires the entire department to commit to undergraduate education, which is quite difficult to achieve at research universities.^<p>Some other minor additions to the above system that have a good payoff/cost ratio: (1) static analyzers to detect duplicate code submission and (2) higher weights on exams to punish those who share complete answers on homework assignments.<p>^Don't take this as a condemnation of undergraduate education in the CS department at UIUC. There are incredible teachers here you'll get an excellent education if you make a little effort to avoid professors whose priorities are elsewhere.
评论 #2011386 未加载
评论 #2011327 未加载
评论 #2011298 未加载
评论 #2011372 未加载
jdp23超过 14 年前
Great attitude. 'I tend to see "cheating" as a symptom that something is wrong in the system, in pedagogy.... As a teacher, my job is to help students learn, not create artificial barriers to learning in the name of equitable grading. Grading should be a strategy for making learning more satisfying by demonstrating accomplishment....<p>It is my job to satisfy the student, the paying customer, not the other way around. Perhaps cheating is a strategy that students bring to an artificial problem that I have created. Perhaps it is a symptom of my failure to teach.'
评论 #2011237 未加载
评论 #2011414 未加载
guynamedloren超过 14 年前
This gem pretty much sums up the current state of the entire academic world, or at least all of it that I have been exposed to (4th year engineering student at University of Illinois Urbana-Champaign).<p>"I suggest that we have gotten the cart before the horse. We are less concerned with whether students learn the right thing than whether they learn in the way that we rely upon to measure how well they learn when compared to their peers. We do this without even having considered whether the measurement is even useful, much less necessary or even counter-productive. We do it without considering whether encouraging sin is a good way to teach morals. We do it for no better reason than tradition, habit, and inertia."
sedachv超过 14 年前
The other way to handle this is using automated systems to weed out cheaters early in the degree program.<p>Christian Queinnec set up what is probably the world's coolest interactive tutoring/assignment/testing environment for the introductory programming courses at Université Pierre et Marie Curie that has tools to detect cheating. He gave a very interesting talk about it at ILC 2007:<p><a href="http://www.international-lisp-conference.org/2007/speakers#queinnec_christian" rel="nofollow">http://www.international-lisp-conference.org/2007/speakers#q...</a>
ekidd超过 14 年前
I'm appalled that the author puts most of the blame on the faculty. I would hope that CS students had some personal integrity.<p>Dartmouth College addressed this in a number of ways:<p>1. Collaboration was routinely encouraged, so long as all work was properly credited. You weren't expected to be able to ace some of the theory classes by yourself, for example.<p>2. Many courses included large team projects.<p>3. Each course began with a clear, unambiguous description of what behavior constituted cheating, and which types of collaboration were allowed.<p>4. When caught, cheating was treated as a major offense: a 9-month suspension and a permanent annotation on your transcript for a first offense, and an irrevocable expulsion for a second offense. I was friends with a CS TA who _always_ took the time to ram through these penalties.<p>Even with those precautions, we had a cheating scandal in a non-major course. Unfortunately, it was hard to identify the cheaters, and the usual penalties couldn't be enforced.<p>Still, I do admire Dartmouth both for encouraging collaboration and for ruthlessly ending the academic careers of students who lacked personal integrity.
评论 #2011839 未加载
erikb超过 14 年前
Writing code is also very important and should be taught in CS school. As stupid as it sounds, but the best way might be in the middle. Giving tasks to create code and also giving task to reuse and change code. That is how our teachers try to teach us and I feel acceptably comfortable in both situations, writing a new program as well as moving around in other peoples code.<p>One thing I want to add: The really bad thing about these "reusing" students is, that they have no skill to see which code to reuse. Most code you find with google is just duct taped itself. And trying to solve any problem with ducttaping an already ducttaped monster is ridiculous. What I saw in my undergrad classes from my classmates was so bad to read and use, that I decided for myself to write a lot by myself and don't rely on others. That got so far, that in one project I wrote my own linked list instead of using the Java's basic one. Of course that is a little too far, but makes for a small, funny story. I'm still not a really big fan of reusage, because design and engineering is something that is treated to lighthearted by many many coders out there. Until you are finished analysing all the options, you often have constructed your own solution and learned more about the innards on the way.
WalterBright超过 14 年前
After college, I have taken many classes and taught many classes. All of them involve the student paying the instructor to teach them something. If the student does not want to learn, he will not show up, let alone pay his own money to the teacher. If the teacher doesn't teach well, he won't get any paying students.<p>There are no exams, and there is no cheating, because there is simply no point to either. Though there is homework.
mgrouchy超过 14 年前
When I was doing my CS Degree The university's policy for cheating was Zero Tolerance, it was generally a zero in the particular assignment, failing grade in the course, or expulsion, depending on how grievous the offence.<p>The CS department did it a little differently. It is fairly easy to tell if you copy a programming assignment(loop structure is identical, code is identical, variable names, etc.), so what they would do is divide the total grade of the assignment and split it between all the people who copied, so if 4 people copied, there was no way to determine who copied who, so the maximum mark you could get was 25%. This happens once and no one wants to cheat simply because by letting someone else copy of you, you are taking a chance at screwing yourself.<p>Collaboration was still encouraged, but wholesale copying obviously punished.
评论 #2012087 未加载
tomjen3超过 14 年前
The problem is that the incentives are screwed up - most students don't care about learning the courses, but they simply needs to pass them and so do the minimum necessary to get by.<p>What we need to do is to remove grades as something which you can use to validate yourself to others, and use it strictly as an internal measure of how well you understand the material and what you need to focus on.
rflrob超过 14 年前
Writing these kinds of assignments is hard, however. I find it difficult to come up with something that is both wrong enough to be instructive and non-obvious, as well as reasonable enough that someone might have written the code in the first place.<p>More power to the OP if he's able to write entire, semester-long curricula based on these sorts of assignments.
kbatten超过 14 年前
Do employers actually care about a degree in CS anymore? It seems that evaluating skill (which you can learn in school or out) is way more important than a piece of paper. Deciding to pay for said piece of paper, but not learning anything is cheating yourself.
michael_dorfman超过 14 年前
<i>In any case, we can divide pedagogy from credential granting. The British have done it with positive results.</i><p>Really? That's news to me, and I'm in the late stages of getting some credentials granted by a British University.