Live data from Hacker News

Coding Horror: Separating Programming Sheep from Non-Programming Goats

codinghorror.com

71–80 of 140 posts

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#71
Everybody learns natrual language, yet large number of people cannot learn programming language. It sounds like learning programming language is harder than learning natrual language. This is not intuitive to me. A lot of concept in natrual language are much more abstract and difficult to understand than the assignment concept. Even the leap from one apple, two apple to one, two is a much bigger conceptual leap. I see the story as a failure in education.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#72
post #53

I've worked with freshman CS students. The aggregate breaks down like this, loosely: 20% succeed, always. Hackers/nerds, basically. 80% might succeed. They don't have the talent. They succeed or fail on teacher's competence and their own hard work and background. 20% fail, always. Cheaters, people who are constitutionally incapable of getting it, misplaced students, people with health issues, etc. The 80% is what a t…

Harder than percentages?

Sorry, couldn't resist. :)

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#73
post #53

I've worked with freshman CS students. The aggregate breaks down like this, loosely: 20% succeed, always. Hackers/nerds, basically. 80% might succeed. They don't have the talent. They succeed or fail on teacher's competence and their own hard work and background. 20% fail, always. Cheaters, people who are constitutionally incapable of getting it, misplaced students, people with health issues, etc. The 80% is what a t…

60%, presumably.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#74
post #49

int a = 10; int b = 20; a = b; The new values of a and b are: False! All that example would really measure is who has had previous programming experience. This is obviously a teaching failure. I don't accept that there are certain things people "just don't get." Watch the documentary "Waiting for Superman," about some heroic teachers who didn't accept that either and did something about it.

> All that example would really measure is who has had previous programming experience.

This test is intended only for people with no previous programming experience. From the 2006 paper: "none had any previous contact with programming, and that all had enough school mathematics to make the equality sign familiar".

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#75

Jeff closes with the following words IN BOLD: “The act of programming seems literally unteachable to a sizable subset of incoming computer science students” There is, of course, an alternate explanation: “We in Universities seem literally incapable of teaching programming to a sizable subset of incoming computer science students” Experiments going back to the 1980s with teaching children how to program using Lego blo…

I saw a pre-intro programming class that took people who would otherwise have been in the sheep category and led them to succeed at the rate as those already coming in with successful backgrounds.

If we know that the problem is a lack of a consistent mental model, the solution is to learn how to teach adults to have a consistent mental model, not to throw up our hands as these researchers seem to do. To me this study suggests we aren't teaching the important skills necessary to program. We may need the equivalent of Drawing With The Right Side of the Brain for code.

After all, a 22% failure rate is still pretty pathetic.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#76
post #22

Eh, that test seemed like it could be unintuitive to those that have never had programming exposure before. How are they to know that "=" is assignment and not testing equality? I guess you could glean that from the context where they immediately ask you the values of the variables after the operation but I could see someone misinterpreting the semantics of that operator.

If i were a complete noob to programming I could definitely see any of the following as possibly true. a = 20 b = 20 a = 20 b = 10 a = 20 b = 0

This is a test with multiple right answers. If you have a consistent model in your head (say, X=Y swaps the values of X and Y) and apply it through out, you get full marks. They found that it was people who were consistent who did well in the class.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#77
post #68
post #8

That article is positively drenched in fixed mindset ( http://www.scientificamerican.com/article.cfm?id=the-secret-... ). Those prophecies tend to be self-fulfilling. But as raganwald says, the only evidence is that universities fail to teach a sizable fraction of the population. Maybe the trick is not to play with IDEs or whatever else they claimed to have tried, but to get rid of the computer and focus on what prog…

> The example of "mental model of assignment" is ridiculous. a=b can mean whatever. It means something totally different to a mathematician than a programmer. > "The piece of paper on the left says dog and the piece of paper on the right says cat. We are talking about university students. I think they all have had a bit of calculus. That they had to "find the x" or "give the value of y = 1/(3/x) to the third decimal…

but algebra is specifically non-directional. If I saw "a=10 b=20 a=b" as a non-programming, I'd assume the answer was "not possible".

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#78
post #69
post #16

I studied to become a computer science teacher. I have not finished my certification for various reasons but I have some limited field work under my belt along with numerous discussions and readings. And, of course, my anecdotal but legitimate experience in public schooling. Let's get one thing straight: the problem is bad teachers. My mentor once said it kind of sucks that UTeach was only available to UT students an…

I worked as a TA at my university for a while (under-grad TA too ... was a blast, me and the prof got along really well, and I knew the material extremely well and could teach) and the hump mentioned is true. I once used to believe that everyone could learn how to program, if you can write down steps for making toast in the morning you know how to program, but some people just couldn't get it. There was some mental d…

I was an undergrad TA for a semester as well. I think most of my criticisms are more applicable during early childhood development. Students get into their own self-fulfilling prophecies about what they can do and by college are quite good at sabotaging themselves.

That said, I should have reasoned about pointers by simply handing them a map to a building and saying "this tells you how to get to the building. It's a pointer. The building actually has what you want. This cannot because it is paper."

Perhaps framing that "ceci n'est pas une pipe" picture on the class wall would help, too.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#79
post #70

Earlier quoted context omitted.

Nice idea, but to what extent has it been implemented? Hard to find info on that. And in my own experience, differentiated instruction within the context of traditional mixed-ability, set-pace classroom instruction is still relatively weak. Further, why be an ass and post a lmgtfy link when the op is clearly not aware of the term to google. You see the contradiction there I'm sure. Next time just post a link to the s…

First, it's not my job to educate you. Go look it up yourself if you feel like commenting on it. The fact the original poster fabricated his post out of naked overconfident ignorance is more than enough to warrant a snide reply. His post was not a critique on current educational theory or instruction but based on his experiences as a grade schooler that might be decades out of date, and seen through the eyes of a chi…

Since you've been registered here almost two years, I would hope you'd be aware that snide comments are discouraged here, regardless of context. I have yet to hear why you are more qualified to speak on the topic than anyone else, but I will add my personal experience as a student - I went to some good schools and had some good teachers, but we were rarely introduced to a topic in different ways. For one thing, there simply wasn't time.

The best math course I ever took was geometry. The teacher never lectured - instead, he had written a worksheet of problems for us to do during every class period. Each worksheet would start out asking deceptively simple questions, which built upon other questions or challenges to prove something true. By the end of the worksheet, you had taught yourself a new concept in geometry (or proved a series of fundamental theorems) without really realizing what was happening. If you got stuck, you were encouraged to ask the students next to you, or the teacher himself, who would wander the classroom providing hints and alternate ways of approaching the problem.

There was a textbook, but we only touched it for homework problems (and occasionally as a reference).

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#80
In my experience, the biggest barrier to students grasping CS concepts has been an aversion to parsing errors. I've seen students slowly melt down as errors and warnings thrown up by the compiler/interpreter slowly chip away at their sanity. It's almost as if these students take it as a personal insult that the computer isn't behaving as expected and their snowballing frustrations preclude any opportunity for them to learn. The problem only gets worse as the class progresses because the topics grow in complexity but the student's strategy for dealing with problems (frustration/agitation/resentment) remains ineffective.
Post reply on HN