Earlier quoted context omitted.
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.
Java in College: "You might as well be teaching Chinese to a monkey."
81–90 of 145 posts
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#82About 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.
Well, sure, if universities were there to teach things , they'd invent ways to teach you using fewer classes. If universities are there to make you take classes until you get a piece of paper, why would they care?
In my 3rd year undergrad, "Informatics" class was teaching us how to use a mouse and close a window. That, after 2 years of requiring computer-typed project reports, and numerous labs involving computers in numerous ways (labs was the best part of the whole degree, we even got to inject dyes into rat brains and then section and image them). That was (is) the Biology degree from the University of Barcelona.
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#83This 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.
In my "Intro to programming with Java" class a few years back, it took people three or four weeks just to be able to install java, set up the path in the environment variables on their home computer and compile a "hello world" program. If you were raised on Windows, and you've never used a command line before, it can be a challenge to figure out.
I suggested to every teacher as well as the dean of the program that if they're committed to Java as a first language, then offer students a pre-configured VMware Virtual Appliance with a Ubuntu install with the programming environment preconfigured and set up for the students. That way, they could download the appliance or hand it out on CD, download VMware player and start programming.
Instead, the teacher was playing sysadmin for java installations on Windows boxen.
It's a shame that so many schools teach Java as a first language. I think there's probably a lot of people with aptitude and interest in programming that might get into the industry, but who are put of by all the initial overhead associated with java and sys admin stuff.
I think he's up against a bug in the curriculum and not just people's limitations.
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#84"This course has as much chances of turning any of any given person into a programmer as a swimming class can turn you into a fish. Some of you have it, some of you don't. Some of you will find it easy, and some will find it utterly incomprehensible. The fact you are here holds, at least, some, but not much, promise. Live with it."
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#85Earlier quoted context omitted.
Then you've forgotten what it's like to be a beginner. Not just that, but what programming should be like. Hello-world shouldn't need more than two elements.
I think judging a language by "Hello-world" is a mistake. Sure, some languages have a fixed overhead for creating a program. Some have needless syntax fluff that doesn't do all that much, but it's actually a good skill IMHO to be able to identify and see through that fluff to the core elements of the code. When we pick up a book do we judge it based on the index at the back and the preface and the publishing info at…
I think that would just result in a lot of students dropping out. As a beginner, it's nice to get the computer to actually do something - even if it's just printing out a stupid message.
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#86Diagnosable 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.
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#87Earlier quoted context omitted.
Java's a horrible language for teaching. If you think this... System.out.println("Hello world"); Is easier to understand than this... print("Hello world") Then you've forgotten what it's like to be a beginner. Java's not even a good example of what OO is, and it has way too much syntax and special keywords (something like 50) for teaching. Python is a far better language for teaching, Smalltalk would be even better b…
Okay. Here's my real opinion: If I was setting up a curricula, each incoming student would deal with a digital logic trainer. Okay? Wires and transistors. An 18 year old should learn the fundamentals and not the shortcuts. That's my opinion--maybe I'm wrong. Java is hardly the best teaching language, but it is closer to the bone than a lot of things....
Algorithms, variables, program flow, functions. Those are the real fundamentals... things that can even be analyzed in pseudo-code, no need to get into a particular language's idiosyncrasies.
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#88Re: Java in College: "You might as well be teaching Chinese to a monkey."
#89This 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.
Seriously. He couldn't comprehend:
X = X + 1
To be fair, that might seem paradoxical, but I would break it down for him, going step by step with cards and boxes labeled by the variable names. He just couldn't comprehend. He had a hard time with variables. Heck, I think he had a hard time with anything but social interaction. What was disturbing to me, was the amount of energy he devoted to sucking up to me and trying to scam me by mimicking the "Ah-HA!" moment.Other disturbing observations: many of my fellow grad students didn't get it either. To them, the C compiler was just magic. No understanding of how things were marshaled on the stack or how operations were implemented in machine language. Surprisingly, they were often about as bad as the local community-college students who got employed by a local corporate body-shop.
At one point, one fellow grad student got exasperated at me in a study session and said, "I don't care about the principles, just give me the answer so I can get an A on the test!" She later told me she was just planning to go into management anyhow. (In a way, that was really disappointing. She was one of the few women in the program, and pretty cute.)
Re: Java in College: "You might as well be teaching Chinese to a monkey."
#90I 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.
Smalltalk as it exists today has about 8 terminals & nonterminals in its grammar. Python has something like 30. Ruby has something over a hundred, but for an intro to programming, you can just ignore most of the grammar and use a subset which makes it very close to Python in simplicity.
Smalltalk was specifically designed to be usable by children.