Live data from Hacker News

Java in College: "You might as well be teaching Chinese to a monkey."

pshaw.wordpress.com

1–10 of 145 posts

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#3
post #2

Why on earth are those three types of student all in the same class?

a) Some students have no idea what they are getting into when they register for a class. (This explains some of the clueless students who can't do any of the assignments.)

b) Some students who register for a first course in their probable major subject register conservatively, especially if they can't prove completion of equivalent courses. (This explains some of the students who easily do more than what is assigned.)

c) Some students have some good preparation (e.g., math) but not all the best possible preparation (e.g., previous programming experience). (This explains some of the students who seem to find the course just right for them.)

Further along in a computer science major sequence, students who neither get it nor like it will move on to some other major. Then the ability spread in any one class may diminish somewhat.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#4
I just finished helping to teach an introductory programming class as well (HTML and JavaScript -- one step below the Java class). I also observed a surprising range in the ability of the students to grasp programming. Hardest class ever all the way to easiest class ever.

Another funny thing I noticed is that many students had the idea that they could get credit for non-functional code. They would treat it like a math class and hope that we would pop open the hood and look to see that they had the right general idea.

I guess I can't blame them too much though. I've been a programmer for so long that I've acquired the unforgiving attitude of the machine. I certainly wish my computer would do what I mean and not what I say.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#5
This reminds me of a class in C I took last spring. Some people fell so hopelessly behind that they probably "borrowed" a good bit of code from other people for projects. On the other hand, some people turned in an almost commercial-quality video game for their final project. I got an A, but fell somewhere between those two extremes.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#6
post #2

Why on earth are those three types of student all in the same class?

I remember some non-CS majors in an assembly language course. About 5 or 6 people walked out 30 minutes into the first class--a behavior too seldom seen.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#7
I snuck into the roster for an intro to Object Oriented Class when I started grad school, which was taught in Java.

I took physics with the engineers in college and this was about as hard conceptually for me.

But it was one of those things where it was hard until I stepped away for a while and then came back to it. Then it wasn't so hard anymore. Just too much info to take in at once I found.

Loops were the hard part. Oh man. Loops. that took forever to "get."

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#8
Some people start coding at a young age and some people graduate high school and decide it is time to give programming a try. Of the latter group, a subset seriously understand what it involves.

I think cs concepts can be taught to anyone but they can't be taught BY anyone. If you start from the very beginning and take baby steps I doubt there is anyone who can't pick up coding.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#9
I don't believe that programming is something you need to just get. I've seen a lot of people struggle on assignments like these as a TA. Usually, it's that they're missing certain concepts, but they don't know which ones and they can't debug themselves. If you know 70% of basic Java, you won't be able to create a working solution. You'll get tripped up on a type mismatch error that just makes you bonkers until you give up because you don't know what the error message means or you tried to make a templated array rather than an Object array and casting it to a templated array or whatnot.

There are lots of little pitfalls in programming that are just terrible. In C, you can just walk off the end of an array (or the beginning). In Java, you can store an object in an array and then modify that object in both the array copy and the one you have in a regular variable because Java works by reference, not by copy. A lot of the time, you just need someone who is a lot more learned in programming to notice that. It's not that you don't get a concept like object references, it's that if it's not in your mind, you don't notice when your code does it and it takes a long time for these things to really get into your mind to the point that you catch them fast.

And most people give up. You get hit enough times with silly things like these and you just want out unless you're truly dedicated. I know when I was learning, I hit all the trap doors. It's why I noticed them when other students made them. Heck, back in the old days of Java, you could easily screw up things like int vs. Integer and not notice it - especially since a lot of professors might not make a distinction because for veteran programmers, we know that pitfall, but also because its place is at the start where students get inundated with syntax and such a distinction might go unnoticed (or abbreviated as int in notes).

I would think schools should hire more TAs to help students through those pitfalls except that most students like to do assignments at the last minute where these errors become the source of the mind-breaking stress.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#10
Several people in the blog comments have cited the “camel has two humps” paper, which still hasn’t made it through peer review. There have been some failures to replicate the study. Perhaps their results were an artifact of the authors’ teaching style, i.e. they were just terrible at teaching, so the students who entered the class without knowing the material failed?

I’m very skeptical of results that claim that some large fraction of the population is incapable of some mental feat like programming. 500 years ago the same was thought of reading, writing, and arithmetic.

(also posted to the blog comments)

Post reply on HN