
Coursera's Functional Programming - Cheating Discovered - ilija139
http://pastebin.com/XnPL0P0u
======
Permit
I'm of the opinion that the value of Coursera's courses comes from the
learning opportunity, not the certification. I think they should simply allow
cheating and not issue certificates. Alternatively, allow cheating and
continue to issue certificates while letting employers decide the true value
of the certificates.

The point of Coursera (to me) isn't to pad my resume, it's to learn from
courses not always offered at my university.

~~~
pawelwentpawel
Just wondering - would you put a certificate from Coursera on your resume? I
raised this question a while ago in here :
[http://workplace.stackexchange.com/questions/2074/showing-
co...](http://workplace.stackexchange.com/questions/2074/showing-coursera-
certificates-on-a-cv-resume)

Also - _cases will be handled on an individual basis_ \- I guess it's not a
standard sized class. There is a few hundred people signed up at least.
Putting up a free course in functional programming seems like a lot of work.
On top of that, trying to find people who are cheating and handling them more
or less individually is a bit of a time waste in my opinion.

~~~
wpietri
As an employer, I take continuing education of any sort as a positive sign
when looking at resumes. Software development is a Red Queen field; one has to
keep up.

However, I do take most certifications as mild negative signs. E.g., SCJP,
CSM, PMP. A lot of for-profit certifications are worthless. A notable
exception are some of the Cisco certs, which really put people through their
paces. Which makes sense, as Cisco benefits more from having expensive Cisco
products work well than from certification revenue.

It'll be interesting to see what bucket Coursera certs fall into. They need to
jump on the cheating thing right quick, though.

~~~
learc83
Considering that the Coursera certificates require you to take a class
(usually taught by experts in the respective field) as opposed to cramming for
a certification exam, I'd say it's a good bit more valuable.

I took the first AI class last Fall, and if you've never been exposed to the
material, it was a very good survey of Artificial Intelligence.

~~~
wpietri
I agree, just as long as the certificate actually means you've taken the
course and done the work. If one can cheat one's way through the homework and
then just cram for the final, the Coursera certs would end up being of low
value. I hope not, though. I'd love to have a good way to tell the continuous
learners from the people who get stuck.

------
robotresearcher
Universities put a lot of time and effort into managing cheating, and we
surely only scratch the surface. This is soul-crushing, no-fun, give-up-and-
work-at-Google kind of work for professors. Everyone hates it.

The decision we have to make is the level of resources to put in. We've tried
emphasizing the honor code and putting resources into teaching quality. This
leads to endemic cheating. We've tried cracking down very hard on detection,
and this leads to massive work for the instructors, lots of busted students
and a general "meh" from the administration. Finding the right balance is
really tough.

I don't get it - it never occurred to me to cheat as an undergrad. But then I
had UK-style end of year finals instead of homework-heavy classes and constant
grading, and I was never optimizing GPA from class to class. There are
problems with mega-finals for some students, but they sure make cheating hard.

The online services can't possibly defeat cheating. The main defence they can
have is proctored exams at physical locations, which kills some of the online
advantage, and even then they have the ID problem. The Open University has
worked out how to deal with this pretty well but it's not cheap. The new
online services can and should be different to this, and focus on the massive
ultra-low-cost learning opportunities. It's going to be interesting to see if
they come up with something really new, and not just distance-ed 3.0.

~~~
lostnet
I don't really understand the cheating itself either. But I do think the
cheating and never being caught as an ignoramus reveals the larger problem
(with all education, in fact more offline.)

I think the bottom line is that a year after you "ace" a <3 month course you
can't be caught because you can't be expected to remember all that much. You
may be more suspect; but there are also plenty of innocent suspects.

A hierarchy of classes that truly builds works, but they are rare. Really, we
need spaced repetition for as long as necessary to master the material, not a
virtual version of a broken semester design. Then there is no point in
cheating.

------
edw519
Actually, this is valuable data.

As a potential employer, I care more about the candidate's ethics (or lack
thereof) than their ability. I could always teach them, but I could never
trust them.

Coursera should just publicly identify cheaters so I can cross check against
resumes or certifications. Problem solved.

~~~
blaines
It's possible students (ignorantly) made their work public because they were
proud of their accomplishments. I've done that once or twice under the
assumption the course would change for other classes, if only slightly.

That being said, the onus is on the student to make sure they aren't
submitting someone's work as their own. I'm not really sure if they understood
what they were doing was serious (as in if Coursera was just a bunch of robot
drones and they didn't give it much credibility). I know this incident
legitimizes Coursera (and it's certificates of completion) in my eyes.

Really I believe all they need to say is, "Look, we really put a lot of work
into this to make a good experience for people. We'd appreciate it if you took
your answers offline and help make Coursera a respectable name in learning by
submitting original work". The whole "We'll start expelling!" doesn't really
strike a chord with me. I've been expelled before [not from coursera] for
really dumb reasons.

# ALSO, they should take their Honor code out of the ToS. Put it somewhere
that people READ!

~~~
SystemOut
They definitely showed the honor code the first time I went into this class as
well as a different class I took on modeling.

I think the expelling is totally fine. Martin and his team put a lot of time
into this, developing the course and the tools to automate grading and if
someone is going to put this up publicly and not take it down they should just
boot them from the course.

I don't understand why anyone would actually turn in the same work, though.
It's not like a completion certificate from this class will get you closer to
a degree or anything. I'm sure there must be some reason and I hope it's more
than just "I wanted a 10/10 for me to see!". I suppose that an employer might
tell someone "learn Scala and get that certificate and get a 10/10 on every
assignment" but I somehow doubt it.

~~~
blaines
Quick follow up... They might have changed the system since I took a class
last, I don't know. So I decided to sign up for a class and BAM!

There it is, really obvious too.

[https://twitter.com/blaines/status/255762571704020992/photo/...](https://twitter.com/blaines/status/255762571704020992/photo/1/large)

------
tylerneylon
Cheating without consequences hurts everyone taking the class. I'm
disappointed to see so many comments implying it's fine to just let that go.

My thought on this comes from a good chunk of direct experience: I've taught a
number of courses to undergrads at NYU, as well as having about 5 summers of
teaching experience in programming and cryptography at summer camps including
CTY.

Imagine all students are given a button that says "give me an A," and they can
press it if they choose, or do all the course work and possibly get a worse
grade. Even if you chose to do the work because you were self-motived, you'd
still be tempted to press the A button to guarantee a good grade.

That's an exaggeration, but the point is the same. The easier it is to get
_any_ kind of validation without real work, the harder it is to learn.

It is harder to stay motivated, and the feedback received becomes less
meaningful. It is even disappointing to simply know many of your fellow
students probably cheated without consequences.

I do believe in seeing answers after doing the work, but it is just common
sense to avoid posting them before things are due, and to support clear
communications between the instructors and students about the details of
posting answers.

~~~
bad_user
I cannot believe that this opinion is so prevalent.

First of all, cheating is really easy on Coursera without having to appeal to
public solutions posted by somebody else. You can get _private_ help without
anybody knowing anything about it and you can do so in a really efficient way,
since there's absolutely nobody watching you.

Coursera courses are for people willing to learn something, providing
certificates was stupid in the first place, poisoning the well for everybody
that's there for the right reasons. The topics are not exactly PhD-level, you
can probably find 80% of all the answers you need by doing stupid Google
searches and even if we were talking about PhD dissertations, cheating is
still possible, the only difference being the difficulty threshold.

That cheating is so easy on Coursera, " _give me an A_ " is precisely what's
going on for people that are there, not for the learning experience, but for
an A.

Which is why the value in these courses is only for personal growth and
personal gratification. I would never look at such certificates on a resume,
because such certificates are even less valuable (from a market perspective)
than a piece of toilet paper, because at least a piece of toilet paper is
useful for something while at work. And no, interest in subjects such as
"Scala" is not enough, because such proxies for performance can be easily
discovered and hence gamed.

Also, the gratification comes from _knowing_ that you worked and that you
passed the tests. The certificate only holds personal value if this condition
is met.

And in the context of Coursera, that certificate does not make sense anyway.
If you follow the forums, you'll get a lot of people asking if they can still
join the course with late submissions, providing reasons for why they are late
in the hope that staff will make exceptions (they've taken long trips, the dog
ate their homework, etc...) - which is just a mindbogglingly dumb thing to do.

~~~
robrenaud
> That cheating is so easy on Coursera, "give me an A" is precisely what's
> going on for people that are there, not for the learning experience, but for
> an A.

Maybe the 'A' or nice cert is there for some people, but no one that I know
personally cheats for the grades on coursera. OTOH, all 7 of them are
currently well employed software engineers, so maybe the incentive to cheat
just isn't there for them in particular. Until the signal gets gamed, I think
it will be useful for hiring. Further, it's pretty verifiable if the
interviewer has also taken the course. What did you think about the
programming assignment about X for course Y, how did you do Z? Throw in fake X
for real Y if you are particularly suspicious. If you've cheated through it,
it's gonna be obvious.

------
prophetjohn
I have to wonder if those posting solutions on github are actually doing it in
an effort to cheat. I made a similar mistake recently with a project I
completed in my computer architecture course. When the professor contacted me
about it, it seemed obvious. But at the time, all I was thinking about was
"yay, public code!" Obviously, I took it down right away. I wonder how many
people are doing the same thing. Cheating a Coursera course just doesn't make
much sense.

~~~
jordanthoms
If it's your work, you own the copyright, and it's totally within your rights
to make it publicly available.

~~~
mikecaron
Sure, but if it's against school policy, the school has the right to expel
you. Coursera is not taking the public code down, the owner is, at the
coercion of the school. The student is making a value decision: continue the
course or take my code down. If you can't play by the rules, you can't be in
the game.

I think there's a unique opportunity for GitHub here. They could give an
educational license to verified students in college/high-school/on-line
schools. For the duration of their class, they can have as many private repos
as they like. When the semester ends, you've got a week to grab your code
before it goes public, like a free account. First, it would get students used
to GitHub and they would clammer for it in the workplace because they love it
so much; Second, it would position GH as a great supporter of education.

~~~
vyrotek
BitBucket offers free private repos.

<https://bitbucket.org/plans>

Edit- Apparently BitBucket launched a new version of their site only moments
after sharing this link. Looks great!

~~~
dkhenry
Thats what I have been using for this course. Bit bucket lets me have
unlimited private repos. ( woot bitbucket )

------
blindhippo
If it's this easy to "cheat" on these assignments, then maybe the professors
should sit down and think about how to properly craft assignments. It's clear
to me that traditional assignment grading will not work in an online/anonymous
environment - appealing to a code of honor will not help if they want the
certificate of completion to actually hold meaning.

I don't have any actual suggestions other then when I was in school the
assignments were worth about 10-15% of our final grade because of this very
reason (shared solutions). Actual knowledge was tested in other ways:
presentations, quizzes, exams, etc.

Revoking the completion certificate for everyone else is NOT a way to build
trust with the community at large - use those large academic brains and come
up with a better solution.

~~~
riffraff
actually, when I took the first "not-quite-coursera" classes (ML and DB) they
did quizzes in a smarter way[0], using a larger set of questions per quiz than
the stuff you'd get in a single attempt.

So each attempt, even from the same student, would get a slightly different
set of questions, and the dumbest attempts at cheating were discouraged[1].

I don't see why this couldn't be done for the programming assingments.

For example, the first assignment in this functional programming was
"functional sets": empty set, singleton, contains, union, intersect, filter.
It would have been trivial to add a few more (unionAll, containsAll,
difference etc) and select a subset for each student, or something like that.

[0] alas, they don't seem to do this anymore.

[1] also, a "random answer + replay with proper solution" approach wouldn't
work.

~~~
think-large
Another solution would be to employ an alogrithm that checks your solution
against past solutions. It would work much like what professors employ when
they submit Reports to an online repository.

If someone it stupid enough not to even change variable names then they'd be
caught easily. While with Millions of solutions it would be easy to get some
replication, most of the time there wouldn't be any and this is when manual
intervention by a person could be triggered.

This in conjuntion with your solution would work pretty well especially if
someone submitted a wrong answer for another question that they haven't seen.

~~~
electrograv
Here's another possible solution.

Use an algorithm to cross-check homework submissions, checking for structural
copying. If a high correlation is found, as with human intervention, you
suspect cheating but cannot prove it.

So, only for the potential cheating students, issue an extra quiz at some
scheduled time, and discard the homework score. These quizzes should be all
issued in parallel batches and last an hour or so, so solutions can't possibly
be copied among cheaters. Make sure the quiz is actually harder than the
homework, conceptually.

In other words, rather than trying to punish potential cheaters, just keep
testing them until you're sure they're not cheating. This is better IMO than
producing a 10x size problem set and selecting random subsets, because the
number of suspected cheaters will probably be a small-ish percentage.
Therefore, rather than having to write a ton of etra test material for
_everyone_ , you only have to write a few extra quizzes for a subset of the
class.

------
cimi_
The certificates, IMHO, are meaningless in the context of these online
courses. Considering this, I find the measure exaggerated.

I use github as a central place to store almost everything I write outside
work, so it comes pretty natural for me to version code for problems I've been
working on there.

Disclaimer: I'm not involved in the Scala course, so I don't know how the
actual assigments were structured.

~~~
readme
The certificates will have value as long as they remain evidence of honest
completion of the course. To say they are worthless is kind of short-sighted.
Considering the number of tech resumes in the typical hiring manager's inbox
that contain a laundry-list of programming languages in the skills section and
not even a single project or course to prove the knowledge of the candidate,
I'd say there is a fairly large domain for these certificates.

Given two resumes, one with a big bullet list of unverified skills, and one
with a bullet list of some completed coursera courses, which would you choose?

Obviously coursera will not be replacing real college any time soon, but it
can definitely serve a role in verifying at least cursory knowledge of basic
skills.

~~~
llimllib
> Given two resumes, one with a big bullet list of unverified skills, and one
> with a bullet list of some completed coursera courses, which would you
> choose?

I would accept neither as evidence of anything other than the skills a
candidate advertises.

IOW, I trust "I know Scala" on a resume exactly as much as "I know Scala and
completed a Coursera course on it".

~~~
dodo53
Well if nothing else it gives a portable measure of ability. Like instead of
having to saying I'm an expert in Scala and the meaning of that being largely
arbitrary; you've got a syllabus of stuff they claim to know (which you still
need to verify it it matters).

------
jimmar
I'm taking a different Coursera course right now. I completed the first
homework assignment on my own, but I would have loved to see how other people
solved the problem. I definitely felt like I had some ugly hacks in my
solution. Posting solutions online would be a great way for me to learn.

I'd recommend that they get rid of the certificate. There is no way to prove
that 1) the person who took the course is who they say they are, and 2) they
didn't cheat. Copying and pasting from a solution online is only one way to
cheat. You could also have a friend finish the assignment. Maybe some day we
can get past the point where education is simply a list of achievements, and
more about who you have become as a person.

------
Jun8
"I am not able rightly to apprehend the kind of confusion of ideas that could
provoke" people to enroll in a free online course that (presumably) nobody
forced them to take and then submit homework done by someone else.

Rather than trying to fight cheating (which is impossible), Coursera should
emphasize the point that these courses are not resume busters but for
learning.

~~~
abolibibelot
Well, it seems that Coursera business model is either issuing meaningful
certificates, or offering other companies potential hires (the latter being
what I've understood of Udacity business model). In both cases, the
certificate is supposed to mean something.

I've taken several Coursera classes, but I don't mention them in my resume and
I only care about the certificates as an incentive to complete the course, but
from the very nature on how these classes are graded, it would be very
difficult to prevent cheating (or sharing), barring having the exams taken in
real-life locations (something that Udacity optionaly provides for some of its
courses if I recall correctly).

------
weego
You have to expect that they kinds of programmers this course would attract
will want stick the code they've put hours outside of work into in some kind
of source repository.

With the ubiquity of free (public only) github accounts, I'm not entirely sure
what else they expected might happen.

~~~
naturalethic
The most recent assignment was only like 10 lines of code to write. Although
fairly challenging, it wasn't something worth putting on github.

------
think-large
I think that something a lot of people who read this are forgetting (and
please correct me if I'm wrong) is that most of us have 4 year degrees and/or
jobs in Software Engineering (or at least Engineering).

These courses are meant to be a segue into free courses offered online that
people can use in lue of a 200k four year degree. While this form of education
isn't there yet, it's use builds the reputation of these online courses.

If cheating runs rampant in the courses (more so than in person classes) it
has a chance to negate the reputation of these sites. This could set back
"free" education for years.

While I don't think that Cheaters should have an affect on what we can learn
and take away from these classes, but it will have an affect on how much
employers (like edw519) trust the courses. If they don't trust the online
classes, then people who don't have a formal education won't be able to use
these freely offered classes to raise their earning power.

It's sad how much a few bad apples can spoil.

------
ecyrb
One of the hints for assignment 2 is:

"Most of the solutions for this assignment can be written as one-liners. If
you have more, you probably need to rethink your solution. In other words,
this assignment needs more thinking (whiteboard, pen and paper) than coding
;-)."

Is it not entirely possible that they're getting some false positives?

~~~
eranation
Very unlikely, similar code? yes, exact duplicate? there are so many ways to
solve it, that statistically it's not that likely, and if so, it will be on 1
answer, not all of them.

~~~
sampo
If you have, for example

    
    
        class Rational(x: Int, y: Int) {
          def numer = x
          def denom = Y
        }
    

and then homework is to implement

    
    
        def less(that: Rational) = ???
    

then you're gonna get 15 000 people answering with

    
    
        def less(that: Rational) = numer * that.denom < that.numer * denom
    

and another 15 000 with

    
    
        def less(that: Rational) =
          numer * that.denom < that.numer * denom
    

and maybe a couple thousand with something like

    
    
        def less(that: Rational) = numer*that.denom < that.numer*denom
    

(This example was taken from Scala course lectures, but some of the homework
problems are as short as this.)

~~~
eranation
yes, but none of them are that trivial... and if they were, then cheating
wouldn't make much sense. e.g. the coin change algorithm, I'm sure the
distribution of answers was quite unique for anyone who tried solving it
alone. same for even simple things like the pascal triangle.

But it's a moot argument as we need to do a real research (or ask coursera /
Martin Odersky for the data, which I'm sure HN community will be happy to run
some data mining on)

~~~
pivo
Actually I think some (many?) of the answers to the functional sets homework
are that trivial in the sense that they're as short (or shorter) the the
examples in the parent post. The only longer function was, I think, the one
for which they provided a template implementation. So I think even that one
would generate false positives somewhat easily.

------
benmanns
The fact that people publicly posting their work would get expelled
disappoints me. During the Machine Learning class on Coursera, I did all of
the programming exercises myself. After submitting the assignments and getting
100% scores, I would browse other people's GitHub repositories to see how they
completed the assignment, which taught me more about both Octave syntax and
machine learning and helped me to vectorize some of the more tricky algorithms
(use Octave's native matrix operations rather than slower for loops).

The people who submit exact copies of assignments they find online should
absolutely be penalized. To expel those who publish their work seems overly
harsh.

~~~
ramblerman
" For those students for whom it's been discovered have uploaded similar or
duplicate solutions, cases will be handled on an individual basis. Though
beware, that cheating in any capacity not be tolerated. "

This seems like pretty clear language. I doubt people who accidently used a
public repo will be punished for it.

~~~
benmanns
I was referring to the section that stated, "We have identified several
individual students with solutions publicly posted (github included) who will
be expelled from the course in the coming days if these solutions remain
public." People who use a public repo to share their work will be expelled.

------
indianapolisan
It's to be expected there will be cheating. Even in normal brick and mortar
school s there were always cheaters. Hell, even the tour de france got turned
into a dopers ball. So yes, this is a bummer and all the naysayers of these
free opensource online classes now just have more ammo. But as someone who's
life has not allowed them the path to Stanford/Upenn/University of Toronto,
etc, I am putting in the work and bothering to actually learn and extremely
grateful for the opportunity. So bummer, sure, but shame on the cheaters.

------
pohl
A lot of comments here are suggesting that the staff should allow the
violations of the academic honesty rules and deal with matters by some other
means.

It's my understanding that, in this case, this is not possible. There are real
students at EPFL who are using the Coursera system to take this very same
course for credit. If some random resume-padder creates a public repository on
github for doing the homework, then a simple google search by an actual
student at EPFL could easily find it.

I don't see how they have any choice but to bring the hammer down.

------
smathieu
I personally did not enjoy the threat of expulsion in my inbox this morning.
As, like probably many other, but the code up on Github because, well this is
just what I do with code.

I've signed up for this class because I was interested in learning something.
Cheating would obviously not teach me anything, so why even take the class in
the first place?

The Coursera certification currently holds no or little value. Maybe if they
gain enough traction, someday, having many coursera certificates could have
some value when applying for a job. This is not currently the case. I
understand that they want to be in the position at some point in the future
and that if they don't enforce these rules now, doing so later will be hard.
Nevertheless, threatening to ban users in not a winning move for any startup.

A better solution would be to offer an alternative to Github, maybe even a
partnership with Github. If they hosted their own git repository and used that
as the submission system, they users could get source control, as well as a
simple mean of distributing assignments.

This felt like a poor PR move from coursera.

~~~
slig
> I personally did not enjoy the threat of expulsion in my inbox this morning.
> As, like probably many other, but the code up on Github because, well this
> is just what I do with code.

Then you're violating the conduct. They ask tons of times to not share your
code, including on GH. So you should either use a private GH repo or host it
elsewhere, privately.

Don't whine about not liking the "threat of expulsion" when it's perfectly
clear that you shouldn't be doing that.

They shouldn't have to offer that, anyone who wants a private repo for free
can use bitbucket, for instance.

~~~
usea
The issue isn't that the school isn't within their rights to do this. It's
that they're putting an unnecessary limitation on good students, forcing them
to help fight the cheaters. There's nothing inherently wrong with putting up
my answers to homework on GH. The onus should be on students to not cheat; it
feels kind of scummy to force students who have no desire to cheat to take
down their code in a sad attempt to fight cheaters.

~~~
suresk
I guess I'm a little bit curious as to why it is so important code like this
ends up on your Github account? It is pretty simple, relatively useless
outside of the course, and thousands of other people are writing very similar
code - I'm not sure I see the value in hosting your solution on github.

Perhaps in a perfect world, you could publicly post all of your homework and
whoever is administering the course would be able to detect someone using your
code for their homework - that is incredibly difficult in the best of
circumstances, and in this case, effectively impossible. Doing something about
low-hanging fruit - publicly available answers to the questions - seems like a
reasonable mitigation step.

------
dkhenry
I would think it would be better to let the course go on, and mail the
certificates and give each one a unique identifier. Then make an annotation at
cousera of which students were caught cheating. Then give employers the
ability to check if a certificate is from an honest student or one who was
caught cheating. Everyone wins.

------
eneveu
When discussing online courses, a recurring theme is that of the "value" of
online certifications, versus "real life" certifications. By taking action
against cheaters, Coursera is trying to preserve the value of their
certification. I wonder how it will affect it.

Do people really care about online certifications anyway?

For me, the main advantage of the weekly assignments, is that it stops me from
procrastinating, like I might if I were to learn by myself with a book... I
don't really care about the certification itself. I guess I can add it to my
resume, like the SCJP, but I don't think employers will care much.

~~~
weego
I'm entirely self taught at Scala and never did Java, so I'm doing it just to
test myself to see how much I missed and how much I understand already.
Certification is almost entirely worthless as a CV aid... it gives an
indicator that you are willing to put in effort out of hours for self
improvement, but it's value vs a well tended github account / a programming
test is negligible.

------
tokenadult
I see several comments on this submission relate the issue of cheating in a
Coursera course to the issue of presenting a false credential to an employer
when seeking a job. People seeking jobs as programmers had better be ready to
do a programming sample under conditions controlled by the hiring company to
prevent cheating. The reason to be ready for that is that work-sample tests
are the best validated procedure for hiring workers for jobs in general, and
any company that takes a scientific approach to hiring will make work-sample
tests a big part of its hiring procedures.

The long story about why companies should use work-sample tests to hire job
applicants, including programmers, can be found in the online FAQ I post from
time to time here on HN, last posted five days ago.

<http://news.ycombinator.com/item?id=4613543>

Of course, because some (many?) people cheat, work-sample tests work best if
the companies using them make sure that cheating is not possible during the
test. If you want to get a job at a company that doesn't hire cheats or
fakers, be ready to show what you know in a work-sample test.

------
russelluresti
Well, obviously cheating is bad. And obviously breaking an ethics code is bad.
I think an issue with what's going on here is that, in this case, there are
conflicting natures between education and programming.

To be a good programmer, you need to be efficient. Writing 100% unique code is
not efficient. It's not even good. It's bad. Good developers research
solutions to solved problems. Good solutions have been used and tested by
dozens, if not hundreds, of other developers in just as many different use-
cases.

So, as a DEVELOPER, it's GOOD to research and find an existing solution to
your problem. It's even good to go on places like Stack Overflow and post your
problem and let someone else solve it for you.

But, as a STUDENT, doing these things is BAD. Taking credit for someone else's
work isn't good. And letting other people do your work for you is cheating.

So, how do you resolve being a STUDENT DEVELOPER? Do you follow practices that
would make you a bad developer? Or do you follow practices that would make you
a bad student?

What I see is a complication in proving that the student understands the
concepts they need to understand for the course. If you just go out and copy
other people's code, but never take the time to understand it, then the course
is worthless. Remember that the knowledge and understanding gained is the
purpose of the course. Assignments, quizzes, whatever - these are just
measurement tools, they are not the purpose behind the course.

I feel that we probably just need a different way to determine whether or not
a student understands the concepts of the course. Is there a way to determine
a student's understanding or comprehension outside of assignments, tests, and
quizzes? Something that isn't replicable student to student?

------
dubya
I'm taking this course, and have no idea what the motivation for the cheaters
was. But, it would be nice to have some sort of forum where you could discuss
your answers after you had successfully completed the homework. I know my code
is correct, but I think I would learn even more by seeing other people's
solutions. Something like the forums on the Project Euler site would be
fantastic.

------
scarmig
Well, this seems like one of those social problems where a technical solution
might be available.

1) Figure out the number of students taking course n.

2) For the first assignment, figure out the number of questions m you want.

3) Make a question bank of size M.

4) Satisfy the constraint n < (M-m)!

5) You now can uniquely identify uploaders via the set of answers they upload.

If you're willing to kick people out of the class and mark them as cheaters,
you can now do so without worrying they're trying to frame someone else.

This can be refined--maybe make it so that the question bank is large enough
that several people conspiring will be unable to randomly generate a sequence
of questions that's been given to a real person, so they can't randomly screw
people for shits and giggles. You could also make the questions differently
phrased, making it harder to Google them. Depending on how many cheaters there
are, you can also just make a question bank that's large enough that any given
question is unlikely to have been uploaded by a cheater, though that rapidly
blows up the size of the necessary question pool if you do have a significant
proportion of cheaters.

~~~
michaelt
The problem with question banks, at least in normal academia, is making sure
everyone gets a question set of equal difficulty. If one person gets asked for
an algorithm to find the length of a linked list and another gets asked for an
algorithm to remove a node from an AVL tree, that's not fair on the second
person.

You could experimentally calibrate the question bank, seeing which questions
trip students up the most, but that requires asking the same questions a bunch
of times to different students, which is exactly what using the question bank
was supposed to avoid! And if you want to reuse the calibrated data every
year, you'll have to ask the same questions every year, which we prefer to
avoid. I suppose with a sufficiently large student population an effective
calibration might be possible - maybe Coursera will be the ones to do it!

------
buro9
One thing I remember my tutors saying time and again, "It's really hard to
think up good questions and assignments.".

------
agentultra
Shame on the cheaters, but I don't see how they're hurting anyone but
themselves.

In the spirit of the Platonic ideal of the Academy it seems beneficial to
freely share and exchange ideas.

~~~
peejaybee
I'm not sure I agree 100% with your police work there.

I am enrolled in the class, and when I got the e-mail, my first thought was
"Great. Now I have to worry about whether or not my work will look too similar
to someone else's, or to the solutions that have been posted."

Granted, my first submission for assignment #2 was a third of a point short of
10/10, so maybe I don't have anything to worry about.

------
dserodio
Searching Github for assignments is pretty easy, but I wonder how they'd be
able to detect duplicates other then when every source is 100% equal to
another student's.

------
error
The most frightening thing about this is the number of people that want a
black list of names. what's the next step? stoning them in public, making them
wear a special hat?

The job of coursera is to provide access to learning and there it should stop.
Coursera should not provide certificate of any kind, most people go there to
learn not to become certified on anything, Cheaters will go way if there is no
certificate since their purpose is not to learn.

------
DennisP
If they're going to issue certificates that people respect, they should do it
like EdX is planning: paid formal testing at exam centers.

For connecting top students with recruiters, they're already looking at
contributions to forums as well as homework/test scores. It shouldn't be too
hard to see who's really engaged with the material.

Getting uptight about people sharing work seems counterproductive and
hopeless.

------
ZeroGravitas
I would have went the other way and forced _everyone_ to develop in public via
github (or similar, in fact it wouldn't need to be private if Coursera had
access to the git repository). I'd guess it would be more work to try and
painstakingly recreate a unique and authentic looking sequence of commits than
it would to just do it yourself, probably teach some good habits too.

~~~
wicker
Are your downvotes coming because of you specifically suggesting github or are
they because of the underlying idea? I think the idea's good. I had a group
projects in a coding-intensive course (not distance) this summer and one of
our members procrastinated endlessly. He kept insisting he'd done work and we
hadn't but he was new to version control and didn't realize that you can pull
up commit logs. He quit the team when he saw them.

At the least, if someone contributes a ton of code for an assignment in one
shot that's identical to somebody else, the professor could compare commit
logs there too. Tons of code is out there on the internet and plagiarism is
something that'll be tempting on the job under a deadline, too, with
potentially more serious legal consequences.

I keep my code private until the class is over, then open-source it. I
consider this stuff to be my resume.

------
Cyphase
I wonder how many exact and similar copies there are. I can certainly imagine
some honest overlap in the assignments (I'm taking the course).

------
eranation
I think people who copied are not lying to anyone but themselves, if they
can't even modify it a little so it won't be an exact copy, they won't survive
as programmers anyway as no one will keep them.

the people who share? I'm sure most of them simply put in as they put any code
they do on their GH account. which is by default public.

solution: people should use bitbucket, it has free private repos.

------
jiggy2011
So, what exactly is the point in cheating on these assignments? IIRC there is
no academic credit available and all you receive is a non accredited
certificate.

Surely the only point in doing the assignments in the first place is to
satisfy yourself that you have understood and can apply the material?

~~~
Cope
Remember that the type of person who chooses to cheat on this type of
assignment isn't exactly the sharpest crayon in the box.

------
elliottcarlson
I found it annoying when people were submitting answers to Stripe's CTF before
the end date - just seemed to cheapen the experience - and would imagine for
someone not cheating in the class that they might feel the same way.

(on a side note - did anyone get their CTF tshirt yet?)

------
agumonkey
I wonder how much work it is to monitor the students, it must be hard to tell
if there's cheating, assuming the published solution is well written and
tought. If they have to look at past submissions to detect sudden peaks in
grades it's got to be a burden.

------
kayhi
Coursera could offer an on site test ($) for the employer.

The perspective employee would login and take a test based on the courses that
they have completed. The score would then be sent to employee and employeer
and ranked along side others who have completed the course.

------
eranation
I do this course to learn, and I enjoy trying to solve things on my own,
cheating on this is cheating yourself. If I was in a point I need this to
boost my resume, I would ask myself if I'm in the right profession.

------
joshontheweb
I get why they have a problem with this but it seems weird to punish the
students for behaving like real world programmers. The entire FOSS movement
could be written off as cheating with this mentality.

------
mistercow
>If we find that solutions continue to be posted, we will reconsider offering
certificates of completi

Wait, so they didn't know this was going to happen?

------
ilija139
I've just got this in my email. It really is sad.

------
ericmoritz
How about they expel those who used the solutions as well?

~~~
michaelt
A lot of solutions end up looking similar, as the automated marking system
requires certain method names and the questions often have answers that are
only a line or two at this early stage of the class.

Early questions are things like: if membership of a set is a function mapping
between an integer and a boolean, how would you define the membership of a
singleton set? Modulo the spaces and variable names, every student's answer
was probably the same!

So detecting who has copied their solution is probably difficult.

~~~
naturalethic
My thoughts too. I just don't see how there could be much variation in the
first place, especially among more experienced participants who can easily
find the most optimal way to write a given function.

------
andrewcooke
so people who have submitted copies will still get certificates?

that's kinda amusing. [edit: thanks for the reply (have an upvote); missed
that. that's more reassuring.]

~~~
eneveu
Doesn't seem so:

"For those students for whom it's been discovered have uploaded similar or
duplicate solutions, cases will be handled on an individual basis. Though
beware, that cheating in any capacity not be tolerated."

------
johnm
Get rid of the stupid "certifications".

------
BostX
Thanks to some cheaters I just discovered Coursera. And you want to punish
them now... uhm :)

