Separating Programming Sheep from Non-Programming Goats

Peter, I hope you are not serious because that was the most downright stupid thing I’ve read in a month.

I’m 50, started learning electronics at 9 and programming on a PDP 8e using BASIC 8 in 74. I don’t have a degree but have worked at two colleges. This is not about programming (there is no gene) it’s about conceptual thinking. The particular problems on this test are related to transitive functions. These same people had a hard time in math class. They have poorly developed skills in two areas, they do not think symbolically nor do they understand levels of indirection. I would predict that the binary distribution would match their performance in their math classes as well.

My personal view is that these skills are ‘naturally’ developed in the early to mid-teens. It has some similar characteristics to language learning in that you can learn languages after that cognitive development window closes, but it’s a lot harder.

It’s great to post a comment on a post more than 2 years old now…

I think it’s interesting that almost everyone has concentrated on disagreeing with the fact that the test was given using C like syntax. To me, being a novice programmer learning C related languages, I got the assignment right away and had no trouble with the question.

I think the more interesting fact is the idea that those who failed the test, biased or not, never improved. Isn’t this the point?

One of the earliest commenters mentioned that the educators must be to blame and that he could teach anyone what’s required to pass the test in 15 minutes. What this paper is getting at is that there may be those who, whether it is that they can’t or simply don’t want to, will not improve.

Having an insight like this before committing to 4 years of study might be valuable to the student.

The interesting thing here is not the test itself, rather it is what this type of test indicates about how the subject is taught. The problem if you will is not the student but the apparent refusal of the learned practicioners to realize that human beings do not all learn in the same way. Most of the people here claim that programming is like mathematics, I would argue that this is in reality quite false and that most programming is actually more like natural language rather than mathematics. Rather than worrying about who had the consistent model when answering the questions (Which really is just a way to avoid realizing that the typical method of treating programming like a mathematical endeavor is probably not the best way to handle things for the human beings that will be writing the programs.) one should be looking at how the students interpreted the question(s.)

When we are in grade school we are taught what one is, what two is, what A is, what B is. Programming seems to be the exact opposite for many they are given complete words and then expected to extract the individual sounds of the letters. Students are not taught to speak the language, rather they are taught specific phrases. So they end up like the tourist who really only knows four or five basic phrases in a language trying to ask for directions to a given destination.

Can any of you imagine learning to speak English without knowing enough to even begin to read a dictionary? This is what students and others must go through when it comes to programming. I think that this test may provide an excellent spring board for figuring out the best possible approach rather than an indicator of who or who will not be able to learn to program.

It doesn’t matter how supposedly simple a programming language is to learn if those learning it are never taught the alphabet so to speak.

Interesting. When I was 15 I’m sure I’d fail the first test with variable assignment. We had an introduction to programming in high school and I barely passed it, because I refused to grasp exactly those 3 concepts mentioned above, probably for the exact same reason mentioned above. But by the time I was 18 I passed the second programming course in high school and introduction to programming at university with highest scores without much effort. The only reason I can think of is that something sparked in my head that I should do whatever it takes to learn programming after my initial failure.

Sorry Middlesex University isn’t a good university. They don’t get good student in the country. More on that have a look at Times Good University Guide: http://extras.timesonline.co.uk/tol_gug/gooduniversityguide.php?AC_sub=Computer+Sciencesub=18x=52y=6

Just to note – the problem at my university does not have much to do with the kinds of people coming in or the methods of teaching. It has a whole lot to do with the fact that they are forcing non-majors (Japanese and Math, as two random examples) to take a Java programming course. I can see no way for this to be helpful – especially not to their GPA! – and it makes the first class a joke for those of us who are Computer Science majors.

From the page: Evidently not everyone is as fascinated by meaningless rules and meaningless conclusions as we are; I can’t imagine why not. When I began programming, back in the olden days of punched cards and paper print-outs (70’s), I observed that some programmers were able to write code that was complete crap. I found blocks of code that would receive an input value and arduously convert it into the same value it already was.http://www.marblehost.com
Initially I was reluctant to believe my own mind; there had to be something I was missing. Slowly, I began to realize that many programmers had no idea what they were doing, and they were in the industry! How could this be? I saw this situation many times through out my career. For example: SELECT last_name, first_name FROM emp_name WHERE 1 0 That chunk of code will separate the sheep from the goats. I forgot - which ones were the programmers?

orange!!!

I’m sorry but that is just rediculous - and it goes to show how crap modern day schools are at teaching, and understanding pupils.

Instead of disregarding non-programmers you should be seeking ways to communicate to both types of student in their own language.

@Shadow Skill Exactly! I completely agree!

@Peter thats has got to be one of the most elaborate trolls ever - because it is simply impossible for an intelligent person to believe that nonsense.

yaa its true that 30-60 % students can’t program most of them fial in thier first test.But everyone wants to be a programer so everyone id putting there hands into this without knowing there scope or anything.I think today lot of programmers are available and daily new one’s are also coming.My suggestion for programmers will be to shift towards the mobile world because a lot mobiles are being manufactured everyday.and in turn public demand is increasing.
http://www.funmahol.com/
so there will be a huge chances of success in this field also chances of succes are lot more than in any other programming field comparing to programming for mobiles.

It was two years ago, but Bob the Chef’s post is a bit amusing; statements in formal logic are meaningless by the definition of formal. Yes, we may choose to interpret those strings of symbols as programs and/or data and call some correct and others buggy, but none of that is in the realm of formal logic and when it comes to reasoning about what the computer does, you have to leave all that interpretation stuff at the door. Unless your computer is sentient, everything it does just involves meaningless manipulations of meaningless strings of symbols - it’s not going to know any better. It’s the programmer’s job to deal with that fact - that statements of formal logic are meaningless. (And definitions only go so far and no further: Euclidean geometry never defines what a point is so point is a meaningless concept.)

Like I said, it was two years ago - what prompted me to post was that I gave the full test to my brother (he’s a panelbeater with zero programming background). His first complaint was that he doesn’t know any programming (as if I didn’t know).
I told him it doesn’t matter; just see if you can make any sort of sense out of it.

He was wrong in every answer (assuming conventional C-like semantics), but he scored in the consistent group. Maybe
I should suggest he take a few night classes in programming?

It’s very interesting, if i was young, I would fail in the test. When you go to college, you must learn the programming because you have no choice.

This should not take any programmer more than 6 seconds to figure the answer.

What are those people doing who are getting it wrong?

it’s all personality

you have to like to solve puzzles, coding is all about solving puzzles.

those who have very analytical and problem solving type personalities succeed.

those who do not are more at risk of failure.

check out this website http://www.bizet.com/ava.php

they know why.

Very nice post.I agree mostly but every person is diffrent.

I agree with Steve.

Jesse, I read your thoughts on the double hump and I felt like I was reading my biography :smiley:

“I’m just supposing here, but I bet those students who need some practice and attention (perhaps some help that would go towards learning a more consistent mental model) don’t get the attention and encouragement they need. They are thrown into the midst of cryptic syntax, alongside a bunch of folks who already seem to understand it naturally, and they get discouraged very quickly because they don’t pick it up as fast. The classroom is huge, the teacher has way too many students, and doesn’t have time to bring the stragglers up to speed. Especially when the stragglers may become quickly demotivated in an environment where the subject matter comes so easily to some students. Just my opinion, but I think this phenomenon comes much closer to explaining the double-hump.”

Sorry to quote this whole thing again, but this really rang true for me, so true that I’m actually posting something on the internet. I was one of the stragglers in my CS 101 class, I felt so confused the first day when our professor asked if anyone had prior knowledge and 3/4ths of the kids raised their hands, and even more confused later when it seemed I just couldn’t get it. I ended up failing and having to retake it, and I felt truly miserable about it.

Well to put a long story short… somehow it just sort of “clicked” for me. I don’t know why, but I’ve since caught up with the kids in that 101 class I failed and have risen to a 3.8 GPA in a year. Maybe some people are inherently better at programming, but that’s life. Some people are inherently good at piano, but it doesn’t mean anyone can’t become decent at playing piano. Just because you aren’t going to play and be the star of a symphony orchestra doesn’t classify you as a bad pianist.