Live data from Hacker News

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

pshaw.wordpress.com

111–120 of 145 posts

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

#111
post #81

Earlier quoted context omitted.

Well, I think Python has one obvious preferred way of doing things, but then tends to let you do it anyway you want. Which I guess is a part of the whole "Python supports multiple programming paradigms (primarily object oriented, imperative, and functional)" thing. Not that I know that much about Python either but it is my preferred language.

Because of crippled lambdas, Python never felt to me like it really supported functional programming.

You can experiment with some functional ideas in Python, though -- once you're familiar with basic Python, exploring the stuff you can do using higher-order functions is likely to be quite educational, with the caveat that (in that language) recursion will blow up on you when it gets too deeply nested.

So, while it doesn't really support FP fully, it's probably sufficient for basic FP from a pedagogical standpoint. (I also think it's one of the better candidates for a first programming language overall.)

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

#112
post #25

Diagnosable mental defects aside, I refuse to believe that there exist students who genuinely want to learn Java with a private tutor who understands the student's mental model of the world. Students range from couldn't-care-less to passionate, not from stupid to smart.

I suspect students could be plotted on both axes, and probably several others (amount of background knowledge, for example) as well.

It seems clear that smart/passionate will generally do well and stupid/CCL will generally fail, but that leaves smart/couldn't-care-less (know-it-alls who won't listen to anything in class) and stupid/passionate (who will probably need to put in extra time, but have a good chance).

Everyone will fall somewhere in between, of course - those are just quadrants.

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

#113

This really has nothing to do with Java, except it happens to be the language he's teaching. A more accurate title would be 'Programming in College: "You might as well be teaching Chinese to a monkey."' as it would be equally applicable to any programming language.

I taught Comp Sci 101/102 as a TA at a state university in the US. Yes, there are students who just don't get it. There was one student of mine who seemed to think as if the machine contained some weird little fussy creature, and if you somehow made nice to it in its unusual language, it would decide to like you and do you a favor and run your program correctly. Seriously. He couldn't comprehend: X = X + 1 To be fair…

Maybe the problem is that programming is taught without a foundation on how computers work. Before I really learned how to program, I spent some time studying basic computer architecture, so I knew what was behind the programming language. Without this knowledge, I find it is really hard to understand what programming is.

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

#114
post #72
post #62

Earlier quoted context omitted.

Maybe this is missing the point, but have you gotten your vision tested? Maybe you're farsighted or nearsighted. I think the world looks a lot more beautiful when it's in sharp focus.

i'm very nearsighted, and use glasses. however the kind of detail i see when i'm very drunk is on a different level, regardless of whether i'm wearing glasses or not (like looking at things up close.) it might seem strange that you can see better than 20/20 (or whatever 'perfect' vision is,) but this is something that is independent of the apparatus of the eye. it's deeper, like the cognitive management of attention/…

Aha, cool. Thanks!

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

#115

Earlier quoted context omitted.

I taught Comp Sci 101/102 as a TA at a state university in the US. Yes, there are students who just don't get it. There was one student of mine who seemed to think as if the machine contained some weird little fussy creature, and if you somehow made nice to it in its unusual language, it would decide to like you and do you a favor and run your program correctly. Seriously. He couldn't comprehend: X = X + 1 To be fair…

Maybe the problem is that programming is taught without a foundation on how computers work. Before I really learned how to program, I spent some time studying basic computer architecture, so I knew what was behind the programming language. Without this knowledge, I find it is really hard to understand what programming is.

For me, I only really got it after I had taken all three courses:

    - Machine Language 
    - Compiler Construction
    - Operating Systems
Just after that, a bunch of lightbulbs started to fire off. I think the NAND to Tetris approach is really great in this regard. It's designed to be the place where it all comes together for a Comp Sci person.

http://video.google.com/videoplay?docid=7654043762021156507

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

#116
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…

> regular variable because Java works by reference, not by copy

I haven't read the other replies, so somebody else may have pointed this out already but Java is a by-copy language, like C and C++. Not by-reference like you claim.

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

#117
post #61

Earlier quoted context omitted.

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…

In Pascal, Ada, PL/1, Perl, and C, array assignment or passing an array as a parameter results in a new copy of the array, at least under some circumstances. (For example, in Pascal, it has to be a value parameter, not a var parameter, and in C, the array has to be inside a struct.) These are not exactly obscure languages, so it's surprising that you assert there are no languages that work that way. Do you know any l…

[deleted]

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

#118
post #25

Diagnosable mental defects aside, I refuse to believe that there exist students who genuinely want to learn Java with a private tutor who understands the student's mental model of the world. Students range from couldn't-care-less to passionate, not from stupid to smart.

I suspect students could be plotted on both axes, and probably several others (amount of background knowledge, for example) as well. It seems clear that smart/passionate will generally do well and stupid/CCL will generally fail, but that leaves smart/couldn't-care-less (know-it-alls who won't listen to anything in class) and stupid/passionate (who will probably need to put in extra time, but have a good chance). Ever…

nice, you just demonstrated that caring about the topic is all that matters to have a good chance of succeeding (not how smart you are).

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

#119

This really has nothing to do with Java, except it happens to be the language he's teaching. A more accurate title would be 'Programming in College: "You might as well be teaching Chinese to a monkey."' as it would be equally applicable to any programming language.

I taught Comp Sci 101/102 as a TA at a state university in the US. Yes, there are students who just don't get it. There was one student of mine who seemed to think as if the machine contained some weird little fussy creature, and if you somehow made nice to it in its unusual language, it would decide to like you and do you a favor and run your program correctly. Seriously. He couldn't comprehend: X = X + 1 To be fair…

I can see how "X = X + 1" could be confusing to someone who has never been exposed to programming before. All your life you're taught in math classes that "=" means the things on both sides are "equal" at all times.

Maybe replacing the "=" with an array while teaching would be helpful. Then once he understands the concept, try to introduce the "=" syntax.

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

#120
post #56

Earlier quoted context omitted.

There are people who attain native-level proficiency in foreign languages as adults. It is true that children more often do it, but it also seems to take them longer. How many hours a week did you study German in college? I think children growing up in Germany typically study it about 70 to 90 hours a week if their parents are foreigners, or 110 hours a week otherwise, and it takes them about six or seven years to re…

I knew someone would say this ;) It is true some adults can learn language almost as easily as children, but that's the exception. The main point is that as you get older (for the vast majority of people), learning a new language becomes more difficult. A similar effect may be happening with programming.

I don't think that needing thirty thousand hours of practice to learn something qualifies as learning it "easily", and that's how long children normally take to learn their first language. Adults can often learn new languages to an expert or native level of competency in only ten or twenty thousand hours of practice. What's exceptional is the adult who takes that amount of time to learn a language, challenging themselves and trying to improve the whole time.

(Exceptional adults may be able to do it in less time, and far less time to achieve a lower level of competency. Sidis supposedly could "learn" a new language in a day.)

Post reply on HN