Live data from Hacker News

Can a simple algebra test predict programming aptitude?

codeup.com

121–130 of 216 posts

Re: Can a simple algebra test predict programming aptitude?

#121
I can't dispute the author's statistics, after all, they're just a function of the data. But looking at the first graph, it seems like a generous interpretation of "predict." The anticipated signal-to-noise for any individual student looks like it would be pretty poor.

One other thought occurs to me. Would the same algebra test produce similar correlations with courses such as English and History, when adjusted for the differences in overall pass rates for those subjects?

It seems odd that something as interesting as programming isn't introduced until college. That seems like accepting students as music majors, who have never played music before. If I had my druthers, computation and simplistic programming would be part of the mainstream K-12 curriculum.

Re: Can a simple algebra test predict programming aptitude?

#122
I think that many people have difficulty learning to code in college because many of them aren't that enthusiastic about it. At least anecdotally, many people at my school are in computer science because that's where the zeitgeist is. If it was the eighties they'd be getting ready for law school.

I think that people would do much better in intro CS classes if we could get rid of some of the hype around programming and tech in general, and treat it like other courses. That way, far more of the students would be genuinely interested in the subject.

Re: Can a simple algebra test predict programming aptitude?

#123

Earlier quoted context omitted.

This skill can help to write more concise code and refactor better but I wouldn't say it's the core component. Very well-functioning, maintainable code could certainly be written that was full of "== true" lines. That is preferable to indecipherable long-winded one-liners with no comments that are hard to parse.

That’s a false dichotomy. An indecipherable long-winded one-liner with no comments is not well factored code either. I didn’t mean to imply that syntactic manipulation is the core component of programming, only that it’s a required skill, which beginners commonly struggle to learn. I’ve tutored a good number of beginner CS students, and a big issue is developing a general understanding of a language from the few conc…

>only that it’s a required skill

What I'm saying is that it might not be required, just pleasant, given my example of someone who codes like that but otherwise writes well-structured good code.

Re: Can a simple algebra test predict programming aptitude?

#124
post #64

Earlier quoted context omitted.

> A high correlation corresponds to predictive power... That's a bold statement. And one that is unfortunately often times false. Spurious correlations pop up everywhere. They can be notoriously bad at predicting things, and care must be taken not to take rash actions based on correlations that may have no actual clout. I'd say denying someone a job based off of an algebra test is sufficiently rash.

There's some correlations I love that illustrate this. You have "Lack of Pirates Causing Global Warming": http://www.forbes.com/sites/erikaandersen/2012/03/23/true-fa... and one I hadn't seen before, "Internet Explorer vs. Murder Rate", http://chrisblattman.com/2013/05/24/correlation-versus-causa...

Why do you think those correlations don't have predictive power, eg, that if you give me a graph of the pirate rate over a long period of time, I can't make a pretty good guess about the global warming rate?

Now, obviously, these are only very coarsely correlated because they don't reflect small scale variations in either data set (which is why the graphs are so coarse). However, in this case, both seem to actually be driven by a hidden factor (technology and societal advancement), which means that they'll actually likely stay correlated (as long as the correlations with the hidden factor stay strong).

Similarly, internet explorer and murder rates.

tl;dr: Your articles are correct that correlation doesn't imply causation, but I never argued that increasing math or computer science education would improve scores in the other. Instead, I merely argued that as long as they're correlated, knowing about one will tell you about the other.

(Also, the examples you picked don't meet my definition of strongly correlated, because they don't mimic fine features of the data, but that's actually secondary, because the argument you presented doesn't even relate to what I claimed.)

Re: Can a simple algebra test predict programming aptitude?

#126
post #77
post #63

Earlier quoted context omitted.

Or just recognize that three consecutive numbers mean you divide by three and get the median of the three numbers. So 69/3-1, 69/3, 69/3+1, giving 22, 23, 24. No algebra involved, you just need to interpret the problem and build a tiny model in your head. Exactly like (some kinds of) programming.

That's exactly how I solved it. I'd consider myself a pretty decent programmer, but I did poorly in algebra and calculus at middle, high school, and university level. Give me "x + (x + 1) + (x + 2) = 69" and I wouldn't know where to start. I could probably turn that word problem into that equation, but I would have no idea how to actually solve the equation algebraically. But given the word problem alone I knew to di…

> Give me "x + (x + 1) + (x + 2) = 69" and I wouldn't know where to start.

You memorize a few rules about what things you're allowed to do, then you apply the rules to simplify the problem in front of you. Sometimes, the hard part is that you don't know one of the rules you need to know. Other times, it's figuring out which of the rules you need to know that you should use. By practicing lots of problems, you get a good intuition for which direction to go, but it's not uncommon with more difficult problems to take the wrong way and end up confused.

First, we're allowed to drop the parentheses with addition (the "associative" rule for addition), so

x + x + 1 + x + 2 = 69

Now we put the similar terms together:

x + x + x + 1 + 2 = 69

How many Xs do we have? Three. Another way of writing that is 3x. So replace that part. Also, 1+2=3, so we'll replace that as well. "Apply rule and replace" is pretty much the most fundamental mathematical operation.

3x + 3 = 69

Let's get rid of the 3 by subtracting it from both sides to keep the equation balanced. On the left side the 3 cancels out (that's why we did this). On the right, we get 69-3, which is 66.

3x = 66

At this point, we just divide by 3 and simplify.

x = 66/3 x = 22

Our numbers are x (22), x+1 (23) and x+2 (24) according to how we listed them in the original problem.

Re: Can a simple algebra test predict programming aptitude?

#127
post #47

Earlier quoted context omitted.

Agreed that an objective measurement would be ideal and this is second best. However, we've had a hard time creating or locating an objective measurement of general programming skill. As demonstrated by the industry's non-use of standardized tests for programming, I don't think anyone else has either. If you have a lead on something, would love to see it.

Trying to create an accurate measurement of programming skill is far more difficult than looking for correlation on tests compared with some other subjective measure. This misguided attempt at instrumenting "skill" could prevent highly capable individuals from entering the field who don't have a solid math foundation, for societal or other reasons.

OTOH, identifying a decent mathematical thinking background as a predictor of CS potential is a pretty big win at a societal level. Teaching math is relatively cheap; you don't even have to buy computers...

Re: Can a simple algebra test predict programming aptitude?

#128

Earlier quoted context omitted.

Recursion is as hard as mutable state to grasp if not harder. We might find a few people who can do one thing sligtly better than the other one, but not complete blanks.

In 35 years of programming across platforms and languages covering embedded to web applications it is my opinion that recursion is dangerous and useless. There is no way I would use recursion to evaluate how good a programmer might be. To quote the movie: "Frankly dear, I don't give a damn".

Why?

Re: Can a simple algebra test predict programming aptitude?

#129

This article is built on a fundamentally invalid premise: > 30-60% of CS college majors have failed their Introduction to Computer Science course because they simply could not learn to program. This "You either have it or you don't" mindset is strikingly elitist. I simply don't buy the idea that there are people out there who absolutely cannot learn to program. I mean, put someone on a desert island and tell them the…

This StackExchange seems to have a pretty good overview on this very question: http://programmers.stackexchange.com/questions/163631/has-no...

There is a No True Scotsman argument that arives here "Well, if someone later became a programmer, despite failing those tests earlier, then clearly they were skilled at becoming a programmer" blah blah; but it is still an interesting phenomenon. And yes, there will be outliers, of course; and there will be people that gradually mull their brain to change the way it thinks; but, it is still an interesting phenomenon.

I bet we could see this in other fields, too, it's just that programming is presently the hotness.

(edit: added more)

As for elitism. What is elitist about it if that /is/ true? Oh no, Billy can't program, but he's great with cars. Sarah sucks at linked lists, but she has a better understanding of the human body than any of her peers in the ICU. And so on.

Re: Can a simple algebra test predict programming aptitude?

#130
post #69
post #61

If there is one thing that has always bothered me, is people evaluating student's prowess in "Computer Science" (which is not programming, shame on you) by having them learn your normal run-of-the-mill programming language/paradigm like Javascript, Python, PHP and whatnot and then claim they are not apt to program because they cannot solve problems or handle variables, mutability, etc etc. There are A LOT of differen…

Ah, Scheme.. You must be an Indiana University grad. Only school I know that uses Scheme that much.

"that much"

It's just one intro CS201 course. There might be another Scheme elective, though.

Post reply on HN