What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 127 Stack Exchange communities.

I'm a professor of Computer Science at an American university. I teach a variety of courses, ranging from Intro to C++ to Advanced TCP/IP Programming.

For the upcoming semester, I was considering making it a semester-long assignment to either answer a certain number of questions, or earn a certain reputation, in a particular tag on StackOverflow.

For example, my introductory C++ students would need to obtain perhaps 500 reputation by answering questions in the C or C++ tags.

Do you think this is a good or bad idea? Why?

share|improve this question
23  
I've heard of homework questions before, but homework answers is new –  Antony Dec 14 '11 at 0:46
19  
Bonus points if your students somehow manage to get banned or suspended from the site. –  Robert Harvey Dec 14 '11 at 0:51
3  
Wow! Real-life tag badges! –  Josh Caswell Dec 14 '11 at 2:55
5  
Wait, why does your profile say you work at a bank? Is this hypothetical? +1 for discussion anyway –  Paul Bellora Dec 14 '11 at 3:05
    
+1 nice idea... And these answers are very good. As an actual (but very atypical) college student, I have no advice here. –  SLaks Dec 14 '11 at 3:13
2  
Not a good ideal for "introduction to C++" as the answers will be of low quality, but could be very interesting for "Advanced TCP/IP Programming" - however how will you stop the student from cheaping by buying votes? –  Ian Ringrose Dec 14 '11 at 11:03
    
@KublaiKhan Because I forgot to update it; I only updated Stack Overflow and didn't "Copy to Network." –  David Pfeffer Dec 14 '11 at 12:26
    
@bytenik It also says you are 25. You must be the youngest professor I have met so far. =) +1 for good idea though. –  TLP Dec 14 '11 at 12:31
    
@TLP Thanks! Teaching at such a young age is sometimes challenging because in the advanced grad courses, some of the students are easily double my age. –  David Pfeffer Dec 14 '11 at 12:36
    
Are you all happy? :-P I updated my profile and even added links. –  David Pfeffer Dec 14 '11 at 12:39
1  
@DavidPfeffer +1 for urban exploration :) –  Paul Bellora Dec 14 '11 at 15:24
2  
My suggestion would be for the students to bring good C or C++ questions to class. Then the class could work on answering the question. Experiencing the research that goes into answering a good question is worth learning. –  Gilbert Le Blanc Dec 15 '11 at 13:24
    
@GilbertLeBlanc: In reality, "the class" will be 5 out of 20 students that are engaged in such a collaborative project. The rest will see that those 5 are engaged and think they can refuse to participate. –  David Pfeffer Dec 15 '11 at 13:34
3  
It has been done before, I've seen a (now surely deleted) question some time ago. It went along the lines "My teacher gave us assignment to get X reputation on SO. I need reputation how do I get rep fast?". If you do this please make sure they respect the site and don't try to game the system just to pass the assignment. –  kapep Dec 21 '11 at 4:10
2  
@TomalakGeret'kal No, obviously I hacked into the professor bio page that I link to in my profile and created it. I also hacked into the college's database of courses, created two courses listed with my name on it, and then just didn't show up when the 30 students came to class. Your post is incredibly rude and without any merit. –  David Pfeffer Dec 21 '11 at 13:27
show 2 more comments

7 Answers

Do you think this is a good or bad idea? Why?

I think it's a... "meh" idea. Let's face it: even if you're running The World's Best Intro to C++ Course here, most of your students probably won't be bringing much to the table - it's all new to them! Granted, trying to answer a question you don't immediately know the answer to can be a great way to motivate yourself to do some research, but that isn't necessarily reflected in their reputation score; by making that a goal (and putting their grade on the line), you might just end up killing any intrinsic motivation they might have for the task.

But I like the way you're thinking... Lemme run another idea by you:

Make asking questions the assignment

Every so often, we'll get an email from a professor somewhere who found out one of his students used one of our sites to cheat on a test or take-home assignment. And chances are, when I check into it, the questions turn out to be pretty lousy; heck, it's not at all surprising to see someone just type the question or assignment in verbatim, followed by some variation on "I'm stuck. Halp?"

So chances are, your students really suck at asking questions. It's bad for us, because we get lousy questions. It's bad for you, because if your students don't know how to ask us then they probably don't know how to ask you either, and there's less of you to go around. And most of all, it's bad for them - at least, the ones that will eventually graduate and find themselves facing much more difficult questions in their pursuit of careers or graduate degrees. Knowing how to find answers by breaking down a problem and then either asking, or searching is an extremely valuable skill.

It sure would be great if they had some help prior to that point...

What if, upon handing out a take-home assignment, you told them:

If you get stuck, or are unclear on something, feel free to use Stack Overflow to research it - either by asking a question, or by searching for an existing one. Show your work: if you make use of a question, make note of the ID#. You'll get extra credit for every good, relevant question reference you turn in.

...or something along those lines. I don't know what your assignments or teaching style are like, but IMHO this would be a far more productive avenue for all concerned.

And hey, if you managed to get them to willingly submit their SO account IDs this way, you'd also be well-equipped to chide those lazy bums pasting their assignments in verbatim. Not that any of your students would do this of course. Just sayin'... ;-)

share|improve this answer
13  
+1, learning how to communicate with others is an invaluable skill, regardless of whether or not you end up a programmer. –  jwiscarson Dec 14 '11 at 2:25
    
And they get extra points if their questions get any upvotes! –  Benjol Dec 14 '11 at 9:50
    
I still think the OP's experiment is worth trying out if the students aren't complete novices and there is a great amount of motivation and dedication among them, but this is definitely the canonical answer - having SO rep as an optional achievement is going to work much better in so many scenarios –  Pëkka Dec 14 '11 at 10:41
5  
I think this is really the answer. I might still go on reputation, but I'll base it on questions as well as answers. I might even insist that I won't answer programming questions via email -- only via StackOverflow and only if they're not duplicates. –  David Pfeffer Dec 14 '11 at 12:25
    
+1. This is an excellent idea. –  McCannot Dec 14 '11 at 17:05
1  
@DavidPfeffer: I wouldn't be too hard-line about the latter. With students, there's room for "basic comprehension" questions specific to the course, which would be inappropriate on SO as too localized. –  McCannot Dec 14 '11 at 17:08
2  
Office hours? Psh! Try stackoverflow. I'm already on there every minute I'm not trying to cram skill into you louts anyway. –  Adam Davis Dec 21 '11 at 1:09
add comment

Do you think this is a good or bad idea? Why?

It's definitely an interesting idea and my initial gut feeling is that although rep points are ultimately really, really meaningless and tell little about actual expertise, there's nothing really wrong with doing things this way. Earning 500 points in those tags will be at least some indicator of a fundamental understanding in them.

You just want to evaluate every student's actual contributions as well - to prevent instances where people really just answer the dumbest trivial questions and eventually gain the required amount that way ("rep whoring"). Watch out for track records that have a lot of downvotes, and inspect those more closely.

There is always the risk of actual malicious circumvention attempts like sock-puppetry - but that's why you look at the actual contributions, too, and threaten consequences if cheating is detected, right? Plus, the SO system is there to fight malicious stuff anyway. If one of your students gets suspended or loses their account altogether, you know what's up. Make sure you write down their user IDs before the whole thing starts so they can't just create new accounts when the old one gets burned.

In general, I find this an interesting idea and as long as your students aren't complete imbeciles, I don't see how unleashing them on the site could do harm to either side.

share|improve this answer
1  
as long as your students aren't... Hopefully the bar is set a little higher than that. –  Robert Harvey Dec 14 '11 at 0:49
4  
+1 for not looking just at gained rep. Answering old unanswered questions (which are usually more difficult than others since they are old and unanswered) usually earns you 15 to 25 rep. Poiting out a silly mistake in a brandnew question can easily earn you 100 rep. 200 if you post about it on Meta... –  Dennis Dec 14 '11 at 1:30
add comment

On the surface, it looks like a good idea. It certainly is an interesting one. The problem with school assignments is, let's face it, nobody likes them:

enter image description here

I wouldn't do it because of how easy it is to cheat, and how users would be motivated to do so for a grade. I can already see it: some students will create sockpuppets to gain the necessary reputation, which will decrease the overall quality of Stack Overflow (and give mods more problems to handle).

Also, considering the highly variable difficulty of questions on SO, a certain number of answers is not a good way to gauge effort. A hard question might require as much effort as 10 easy ones. Also, reputation can be a tricky thing: answers to trivial questions tend to generate more reputation than answers to hard questions. See: The bike shed problem and SO

share|improve this answer
    
I don't see a problem there: Students can be told that any evidence of cheating will lose them their grade. The teacher will know every user's account, and can monitor the contributions. This group of students is much easier to keep honest than the millions of anonymous people who visit SO every day –  Pëkka Dec 14 '11 at 0:30
3  
But the picture is great, I have to store that somewhere :) –  Pëkka Dec 14 '11 at 0:30
4  
@TheP.G.RepMiningCo. It's hard enough for us mods to determine if someone is cheating (unless it's really blatant); how is the professor going to do that? –  NullUserException อ_อ Dec 14 '11 at 0:43
1  
he isn't, you're right - but would you dare cheat if an actual real-world grade depended on it? Not knowing what mechanisms the site may or may not employ to detect cheating (including detection of cross-voting patterns)? Remember, these aren't professional programmers. It's not perfect protection, but I stand by my argument that this group of people is less likely to do malicious things than everybody else coming here –  Pëkka Dec 14 '11 at 0:54
1  
I've had students cheat, be failed on an assignment, and then cheat again by copying off of the same web site as the first time (and fail the class). Never underestimate what students will do. –  David Pfeffer Dec 14 '11 at 1:19
1  
On the flip side, the algorithm tends to be very harsh -- I once lost something like 100 reputation because the site decided I was sockpuppeting, just because I tend to link my best answers to my best programming buddy (who always ended up upvoting because he too thought they were good). –  David Pfeffer Dec 14 '11 at 1:21
1  
@bytenik That isn't harsh; if your buddy's account exists for the sole purpose of upvoting your answers (or it looks that way), there's no way for us (or the system) to distinguish it from a sockpuppet. –  NullUserException อ_อ Dec 14 '11 at 1:25
1  
@NullUserExceptionอ_อ Sure there is; he writes lots of his own questions and answers. He just happens to also read and upvote a lot of my answers. –  David Pfeffer Dec 14 '11 at 12:21
add comment

Do you think this is a good or bad idea? Why?

One way to make some students hate something is to make it an assignment.

Putting that aside for a moment, I noticed that you want to do this for your introductory C++ students on the and tags. I'm not sure exactly what questions you expect novices in said language to actually answer.

share|improve this answer
1  
One of the best ways to learn something is to answer questions about it. It requires adequate research into the topics posed in questions in order to be able to answer. –  David Pfeffer Dec 14 '11 at 0:52
1  
Well, this is a potential fair argument against - but if getting upvoted is a school "requirement", care and research when answering can be expected. –  Pëkka Dec 14 '11 at 0:52
1  
@bytenik This would just encourage people to answer the easiest questions they can find. Where's the value in that? –  NullUserException อ_อ Dec 14 '11 at 0:56
    
Perhaps they will answer the easiest questions, but there's only a limited number of those. I can't imagine earning 500 rep over a 4 month period unless you are either continuously looking for easy questions (with considerable time commitment) or answering somewhat more difficult questions. –  David Pfeffer Dec 14 '11 at 0:59
2  
@bytenik As I mentioned in my answer, easy questions tend to attract more upvotes than hard ones. For example, I got 215 points for this trivial answer here. I don't think rep gained is a good indicator of effort. –  NullUserException อ_อ Dec 14 '11 at 1:18
1  
@NullUserEx: But you have to be fast for that game. If you don't know the answer but have to think about it for a minute you won't get nearly as much rep. You answered that question 90 seconds after it was asked while the guy that took 2 minutes more only got upvoted 3 times. The other answer with a lot of upvotes that came later is much more expansive and less "trivial". –  sth Dec 14 '11 at 2:50
1  
@sth, isn't that all the more reason to not base your success criteria on reputation? If students are just refreshing SO or perusing for low-hanging fruit, what are they learning? –  jwiscarson Dec 14 '11 at 3:17
    
@DavidPfeffer: Perhaps they will answer the easiest questions, but there's only a limited number of those. No, there's a never-ending supply of terrible cr@p on SO; your students will just contribute their cr@p to that, and learn nothing. –  Lightness Races in Orbit Dec 21 '11 at 0:10
add comment

I don't teach an actual programming class, but I've been forced to teach a lot of other people how to program, and I always reference Stack Overflow. I remember finding this site and learning an incredible amount of information just by reading questions and even attempting to answer a few of them.

That said, here are my thoughts:

  1. Don't measure reputation points. The community doesn't always upvote equitably, and a poorly-written question (that isn't atrocious) with a great answer can go unnoticed.
  2. As Pekka said, measure participation and really look for quality in posts (detail-oriented, perhaps addressing issues not necessarily mentioned in the original post, but still problematic points nonetheless). This would be difficult to accomplish with beginner students, but possible depending on the course outline you have to follow.
  3. Perhaps consider participation by having students list some of their favorite questions and what details they've learned from those questions.

I think you have a difficult choice to make. Even when I'm not actively looking to answer a question, I read Stack Overflow purely as an intellectual exercise. Your students, however, probably will not (outside of those students who are already truly engaged in programming).

Perhaps it would be more worthwhile if your course were set up in such a way that students had semester-long projects and used Stack Overflow as a resource? I constantly advocate using the site to my programmer friends and co-workers, but very few of them truly "get" it.

share|improve this answer
add comment

I would not consider this as such a good idea. While the points here are a big motivation for many people, they do it by their own will, mostly on their own time. Such an assignment seems to me like a chance to fill this (great) site with many answers that have only one goal — to get a better grade; this may add a lot of noise to the site.

On the other hand, it may make people to look for answers and increase their knowledge in variety of subjects.

share|improve this answer
add comment

Why is it a good idea?

  • Students get to help others

  • They can show off their expertise and knowledge

  • Competition! They could have little challenges among each other, such as hitting a rep cap, or getting X number of answers with Y number of upvotes.

  • Promoting Stack Overflow! (And other sites)

  • Being able to answer each others own questions and present that to the world.

  • Rather than making up projects for them, they get to make tons of code and you can grade that.

Why is this a bad idea?

  • Students might just spam crappy answers to hit that rep goal.

  • If they get banned, there might be a problem completing the assignment.

  • You'll need to check over their posts constantly to make sure they aren't abusing anything or trying to cheat their way to the top of the class.

  • If they don't know C++ already, the class will suck a lot.

share|improve this answer
2  
Re: bad answers, he can only count answers with positive score (and rely on SO's existing anti-sockpuppeting) –  SLaks Dec 14 '11 at 3:09
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .