8

Collegiate courses in computer science are particularly tricky to balance due to how available answers to specific problems are online on sites such as Stack Overflow. For example, a student may look up how to properly sort a list in the language of their choice from a preexisting SO question, rather than design and implement their own algorithm.

I recall discovering SO in the last weeks during my introductory CS class, and it immediately cut the time I spent on assignments in half. Being able to see somebody else's implementation of a particular algorithm in the language we were studying was very enlightening when it came to seeing the most efficient and readable way to code specific algorithms, but at the same time I felt it was making me a "lazy" programmer; I was not exercising my ability to think critically about problems as much as I was exercising my ability to research solutions. Thus, I made an honest effort to try to avoid SO.

There are several discussions on the site already regarding the backlash against questions on SO that are clearly related to homework assignments. The question I ask is whether you think it is harmful to beginning programmers to look up issues on stack overflow and other sources.

closed as primarily opinion-based by juergen d, Richard Tingle, Travis J, Wooble, Rosinante Oct 14 '13 at 21:01

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 6
    It's all about having professors that design their courses around the fact that there is so much information widely accessible on the web. You can't assign homework in which people are doing commonly given academic tasks, such as how to sort a list, as there are so many solutions online. You simply need to have professors that create their own problems, or at least alter them enough that the student must demonstrate an understanding of the core concepts to fix the problem. – Servy Oct 14 '13 at 18:50
  • 17
    Why would it be a danger? "You must not ask questions about your homework; you must stare at it profusely until you think of the answer" is not a criteria I remember having in my Computer Science courses. – animuson Oct 14 '13 at 18:50
  • 1
    @animuson True, but "you must have written the code you turn in yourself, rather than providing a solution written by someone else" is a criteria I remember having in my Computer Science courses. – Servy Oct 14 '13 at 18:51
  • 4
    Is Google a danger or a benefit? – Sergio Oct 14 '13 at 18:52
  • @Servy cheating is just as possible without SO. Just the pool is somewhat thinner and muddier – John Dvorak Oct 14 '13 at 18:53
  • Stack Overflow does not make a programmer lazy. It perhaps only exposes the lazy ones. It was often pretty trivial to weed out those students who understood what they wrote from those who merely copied. SO might have made the copying easier, but I don't see it changing the people. – Bart Oct 14 '13 at 18:53
  • @Servy Directly copying content from online would get you into trouble in any course, not just Computer Science. Computer Science is just a trickier subject because code is harder to write in a way that doesn't look like someone else's code. Asking questions and getting help should be encouraged anywhere; plagiarizing is a different issue. – animuson Oct 14 '13 at 18:53
  • 1
    @animuson Sure. This question is specifically mentioning searching for an exact solution and copy-pasting, not asking an intelligent question about a specific problem with an assignment that results in the student gaining a sufficient understanding of the concepts to write the code themselves. – Servy Oct 14 '13 at 18:54
  • 11
    recommended reading: Open letter to students with homework problems -- "It is September once again (today is the 7316th day of September), and once again students are asking their homework problems on Stack Overflow and Programmers.SE..." – gnat Oct 14 '13 at 19:01
  • The question is not so much if SO is a danger or not. It's whether or not you as a student are a danger to yourself when provided with so much information. Yeah, you can cheat all you want. And perhaps you won't even get caught. But you're the one coughing up the money for an education. So are you going to try and actually get one, or are you only going to cheat yourself? – Bart Oct 14 '13 at 19:04
  • I like how the question is worded so the typical "upvote for yes/downvote for no" of meta can't actually apply unless you think it is both a danger and benefit or not a danger or benefit. I voted "yes" for "dangerous benefits", which is the new name of my band. – JoshDM Oct 14 '13 at 19:33
  • @animuson excellent point. My intent with the question was asking, regardless of plagiarism, if an early onset reliance on research is a crutch for beginning programmers or a critical skill that the programmer should learn as soon as possible. – Kadinski Oct 14 '13 at 22:34
14

OK. I see your case/point.

Please try to look at it this way, from a programmer's perspective fluent in many languages:

You will always 'look things up'. OK… too obtuse. You will always look things up when they matter. I worked on a bench for many years, and although we all knew the resistor color codes inside & out, we always looked them up when it mattered-even though our egos told us we didn't need to.

What this should teach you is that "it depends" on whether it matters or not whether you rely on reference material like that on a web site—this or one of the many, many others. But try to remember, too, that reference material is exactly what your books are. They are examples of how to do something, right? On public forums you will find several ways to do each objective, and many (all?) won't work for you as-is. You will also find links & references to other information online that will provide reading material relevant to your issue-and in many cases framed completely differently than your sole, lone textbook did.

So whether you get your reference material here|there for a fun project to save time, or you get your reference material here|there for a job you're being paid for, is there really a difference?

Now I see posts that you can tell are for homework, and you are right-the jerks come out in Troll Mode and make your life miserable ("We didn't have these fancy inter-webs when I was learning, dammit!"). All these years, and I can't see why they bother to even post. And when you say it's homework, those same trolls go really berzerk.

But these trolls are just passing on their poor fortune to you—or at least trying. I would rather hear someone say it is a homework assignment, as I now at least understand the right way to answer. You just make fewer assumptions when answering someone who isn't doing it for a living. It's just professionally polite to give each concept a foundation in non-programming to build on instead of assuming you already know everything.

So while I can't speak for anyone but myself, you will find all the forums/boards have the same mix of truly helpful people, and those that say "Look it up!". Based on the above, I'm prepared to say that looking at examples here, or asking for clarification on one, or simply creating a new one is looking it up.

Hope this helps put things in perspective… :)

re: 'danger'…

Is information dangerous? Absolutely.

Is truth dangerous? Way more than just information.

  • 1
    Oh, and one other thing. A question like, "Show me how to..." doesn't really communicate any effort on your part. It impresses people more, and makes them want to help, if they see the code that you have written already. Try it both ways, and see if I'm right... :) – Compassionate Narcissist Oct 14 '13 at 19:19
  • 2
    You make a good point with "But try to remember, too, that reference material is exactly what your books are." However, I guess your trolling opinion would hold more weight if you had contributed more... Often the "trolling" behavior you represent in this answer occurs not because users hate students but because being flat out asked to do another user's work (be it professional or academic) is rather insulting. – Travis J Oct 14 '13 at 20:20
  • 1
    In the Scheme and Lisp tags, there are lots of questions about "How can I do W using only functions X, Y, and Z." I don't mind answering these, but I usually include a discussion of "we'd typically do W using A, B, and C" and "here's the beginning of how you'd implement A, B, and C in terms of X, Y, and Z." If figure that if they can make that work, they'll have learned what they were supposed to be learning from an assignment. – Joshua Taylor Oct 14 '13 at 21:04
  • @TravisJ "However, I guess your trolling opinion would hold more weight if you had contributed more..." I can't tell what you mean by this, but I wasn't prepared to argue over it, or my merits as a poster/commenter, or the minimum contribution level required to make a comment/answer. If you can point me to where it specifies how much I need to contribute of X before doing Y, I'd appreciate it. It wasn't my intention to be insulting to you... – Compassionate Narcissist Mar 25 '14 at 18:06
  • @PatTrainor You have answered all of 7 times and yet profess to call out all of the people who post hundreds if not thousands of answers for not wasting their time on low effort questions? And you call them "trolls" in a very negatively written paragraph? You specifically need to get on the same level as some of the people with tens or hundreds of thousands of reputation before you group them all up and insult them at the same time, because those are the people closing or skipping low quality questions since they are not worth their time. As I said, it is not trolling.It is a push for quality. – Travis J Mar 25 '14 at 18:15
  • I guess we agree that we disagree. Thanks for your guidance. And for the record, just because someone hasn't answered thousands of questions on this particular web site isn't an indication of how helpful they have been to others during their career. I can see why it is easy to think so, though. :) – Compassionate Narcissist Mar 26 '14 at 2:20
3

The only issue I see here is that of your own attitude towards information. If you (the student) choose to take the easy answers from any website, then that's your choice and your responsibility.

It is my belief that a good student uses SO as a source of help, not solutions. You should come for help when you have exhausted your own knowledge and you can't make do with google results (although I guess that's fairly close related with the topic at hand). If you use SO responsible, it's the single best tool a developer can have.

I can say with certainty that SO has made me a better programmer (although I'll leave my level prior to using SO in the middle).

1

Trivial stuff like how to sort a list is less important to a programmer than when to apply the Adapter pattern versus the Decorator pattern.

The questions considered "on-topic" on Stack Overflow are the easy ones. Those which are complicated, messy and "opinion-based" are the truly important ones. Stack Overflow to a programmer is like a dictionary to an English major or an encyclopedia to a Historian. A useful reference, but it won't make you a master (or even much of a hobbyist).

No, I don't think Stack Overflow is harmful to students.

1

I think that a great deal of whether sites like Stack Overflow are helpful or not to what academic programming courses aim to achieve depends on how the regular users, who are typically professionals and skilled enthusiasts, answer the questions.

One of the nice things about asking professionals and skilled enthusiasts for homework help is that solutions will generally demonstrate useful language features that aren't used in academic classes (because the academic class only covers the basics), which is a good way to get exposure to them, but it also raises the copy-paste bar. If a question-asker wants to copy the code, they're going to have to modify it to be simpler, or else it's going to be a dead giveaway to instructors/TAs.

In the Scheme and Lisp tags, there are lots of questions about "How can I do W using only functions X, Y, and Z." I don't mind answering these, but I usually include a discussion of "we'd typically do W using A, B, and C" and "here's the beginning of how you'd implement A, B, and C in terms of X, Y, and Z." If figure that if they can make that work, they'll have learned what they were supposed to be learning from an assignment.

  • 1
    The 'danger' of asking a pro how to get from 'a to f' (a problem) is that the pro may know you can skip steps 'c' and 'd' for the given nature of 'f' and give the solution of 'abef'. While a solution, the student doesn't learn all the steps and may miss out on 'cd' for the next homework problem. Its perfectly acceptable of an answer for one pro to another, but its all the steps that a student may need to take - if not for this assignment, for the next assignment, or class, or interview. – user213963 Oct 14 '13 at 21:26
  • @MichaelT That's a good point, and I think it does highlight that it's important for askers to state when something is homework, and that an answerer should approach such questions with a somewhat different mindset. There's a responsibility on the parts of both parties. – Joshua Taylor Oct 14 '13 at 23:18
  • In the Open Letter, and generally accepted on P.SE (I think), we try to close the broad questions and try to get the person asking the question to ask a single step in the understanding. Even if they're trying to get to 'f', and are stuck at 'b', we can help them understand the step from 'b' to 'c'. The other option (if they have the rep) is to take it to chat. We've had a few times where a student has asked us a question and in chat, we were able to help with the understanding of the problem and its wider area. – user213963 Oct 14 '13 at 23:37

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