Live data from Hacker News

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

pshaw.wordpress.com

41–50 of 145 posts

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

#41
post #35

Earlier quoted context omitted.

Except that this is a pretty common practice: at most reputable schools, if you can demonstrate you don't need to take an introductory programming class, you can switch to a more advanced class.

what schools? (I ask because I hope that my school was "reputable" but that was certainly not the case)

At Brown (where I went for undergrad), you are normally tracked into an intro course, but if you can convince a professor of a higher-level course to override the prereq, then you can take whatever course you want.

I have the sense that most universities will do this given enough prodding; you are, of course, paying them tens of thousands of dollars a semester. Sometimes there won't be an official documented procedure, but I would be surprised if you were qualified for a particular course but couldn't talk your way into it.

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

#42
post #22

About a third of his class needs to switch to a more challenging course. Every university should have a way to "place out" of introductory programming classes, just like you can place out of introductory (natural) language classes if you have previous coursework or are a native speaker. This should be done by demonstrating proficiency in the skills that will be taught in the programming course.

My first day of programming in college I read the syllabus and told the teacher I'd already done everything on it. They let me switch to the next class.

My "Introduction to Programming" course I did at Uni dealt with Ada shudder and I remember the very first things they were trying to teach were how to open, close and save files under Windows.

I played Quake 3 for first 2 weeks during that class while I waited for something of actual use.

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

#43

Earlier quoted context omitted.

I have to wonder if a language with less syntax would be easier to pick up. Start people that are totally new to programming with something like Scheme or Ruby (surely there are even better ones than these) that requires less arcane punctuation to do things like hello world, then once they get the hang of things, slowly introduce them to more structured languages.

At the risk of sounding like a broken record, I must say that Python fits the bill.

I confess I know little of Python, so wasn't confident enough to list it.

From what I know, the Python mantra seems to be 'one way to do something', which I suppose would be less confusing for first timers.

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

#44
post #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 g…

I have to wonder if a language with less syntax would be easier to pick up. Start people that are totally new to programming with something like Scheme or Ruby (surely there are even better ones than these) that requires less arcane punctuation to do things like hello world, then once they get the hang of things, slowly introduce them to more structured languages.

I think the problem with those languages is they're too different for a starting course. Scheme is obviously very powerful, but its syntax is wildly different than most popular programming languages used today. As for Ruby, don't even get me started. There's practically no syntax at all; merely reading it agitates me.

I think, in the beginning, people are most likely to understand concepts like Objects (Circle, Square, etc.) and how they relate to other stuff since it's so based off how we normally think. Also, since Java is statically typed, I think it makes things appear to contain less "voodoo". Then again, I could be completely wrong; I had been programming in other languages for years before taking my first Java course in college and only attended the class when there was a test.

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

#45

Earlier quoted context omitted.

I have to wonder if a language with less syntax would be easier to pick up. Start people that are totally new to programming with something like Scheme or Ruby (surely there are even better ones than these) that requires less arcane punctuation to do things like hello world, then once they get the hang of things, slowly introduce them to more structured languages.

Start with digital logic and machine architecture, work your way up.

That is how my school taught me, but I don't think this is really an option for non-majors.

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

#46
I can sympathize with the author. I "got" programming and generally found it rather easy (in college, I would look at some random student's code and just point out each bug; used to drive the random student crazy when I did that).

But there was one class I took, Unix Systems Programming (all in C). It was a higher level course with prerequisites of data structures (by that time in college, taught in C) and compiler writing (undergrad version). We were sitting there as the professor was going over the memory layout of a running Unix process ("the text segment is where the code is stored, the data segment were all pre-initialized code goes, yada yada"). One student raises her hand. The professor stops and asks if she has a question.

"Yes, where do the comments go?"

I think it took a full thirty seconds for the professor to reboot.

I do have to wonder how that student got through compiler writing.

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

#47
post #44

Earlier quoted context omitted.

I have to wonder if a language with less syntax would be easier to pick up. Start people that are totally new to programming with something like Scheme or Ruby (surely there are even better ones than these) that requires less arcane punctuation to do things like hello world, then once they get the hang of things, slowly introduce them to more structured languages.

I think the problem with those languages is they're too different for a starting course. Scheme is obviously very powerful, but its syntax is wildly different than most popular programming languages used today. As for Ruby, don't even get me started. There's practically no syntax at all; merely reading it agitates me. I think, in the beginning, people are most likely to understand concepts like Objects (Circle, Squar…

Ruby has quite a bit of syntax (parens, methods on objects, blocks, etc), whereas scheme has almost none (parens, special forms like lambda, #t, '()).

Of course both have less obtrusive syntax than Java, which requires the famous

  public static void main...
just to get started. That is the kind of stuff that I think confuses true beginners. They look at that stuff and think "holy crap memorize these voodoo incantations" and never really leave that mindset once they get there. Even if they eventually learn what static means, they will always treat it as such.

I think once they get the hang of programming in something, it's easy to build up from there. I just think it causes people to focus on the wrong thing (syntax rather than semantics) when they are first starting out.

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

#48
post #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 g…

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. LOL. In what language does array assignment result in a new copy of that data structure rather than a reference of it? http://en.wikipedia.org/wiki/Array In computer science an array[1] is a data structure consisting of a group of elem…

I don't mind downmods on political subjects (too much), which are matters of opinion to a degree. But when I correct somebody's laughable mistakes, please either correct me in writing or leave it alone. Thanks.

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

#49

Earlier quoted context omitted.

what schools? (I ask because I hope that my school was "reputable" but that was certainly not the case)

At Brown (where I went for undergrad), you are normally tracked into an intro course, but if you can convince a professor of a higher-level course to override the prereq, then you can take whatever course you want. I have the sense that most universities will do this given enough prodding; you are, of course, paying them tens of thousands of dollars a semester. Sometimes there won't be an official documented procedur…

I've found that students who breeze by in these introductory classes have no desire to skip over them. Easy semesters are hard to come by. College students generally don't have the attitude of "I'm paying so much for this so I'd better get something worthwhile out of it". They are there for the paper, and they don't feel like rocking the boat. They know this and the system knows this. They are normally so inundated with work from other classes that they're forced to take as many shortcuts as possible.

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

#50
"A change of context is worth 60 IQ points" (Alan kay)

So, I think that the first step towards requing the last third of the group will be to teach them LOGO… yes LOGO once people “get” for loops drawing squares and stars and circles etc. etc. making the shift to other programming languages is easy.

If the curse requires OOP then start with Smalltalk and Etoys. They are intended for kids… but you are trying to build fundamental concepts here.

best of luck..

Post reply on HN