Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Teaching programming

Name: Anonymous 2009-11-23 11:28

Hello, prog.

I've been thinking about something; why, when teaching programming, do people always start with a high-level language? It seems like it'd be confusing to have to learn the intricacies of the syntax of something like C, for example, while simultaneously learning the basics of programming in general. It seems like it'd be a better idea to start by introducing a (fictitious or otherwise) assembly language; something with just the basics for instructions: load, store, branch, and various mathematical and logical operators. This way, students could better understand the foundations for higher level languages like C, without getting confused and asking questions like "why do chars overflow at 256?" or "what do you mean a pointer stores an address, what's an address?". It just seems to me that it'd be best to know how exactly a computer works before trying to program it, as opposed to glossing over the issue and running into problems later.

Is this a bad idea?

Name: Anonymous 2009-11-23 13:42

The good ones will start with logic and digital circuits (basic gates), then digital sequential/memory, a rudimentary CPU and its instruction set, and programming in machine code for that before finally moving up to C. If you go further, they'll only then introduce OOP and usually C++.

Those who run  JavaSchools disagree completely, because their purpose is only to give codemonkeys enough information to write enterprise-quality business shit. They are the ones who teach OOP before procedural (completely ignoring the fact that OOP is simply another layer on top of procedures, as methods are themselves procedural), leading students to believe that the best way to solve a problem is to start thinking about a class hierarchy with half a dozen objects instead of a simple algorithm that could be written as a 10-line method. After coming up with a huge set of classes, the students then have no idea what to write in the several dozen methods they've now "designed".

Newer Posts