28 ms·
c++? hardly. maybe c, but i'm not sold. why not say assembler "is a must for understanding how a program works"? because when you are talking about the underly
by ibotty 13y ago
c++? hardly. maybe c, but i'm not sold.
why not say assembler "is a must for understanding how a program works"? because when you are talking about the underlying machine, that's what you mean.
but if you are not speaking about the machine, but the program (algorithms within) a higher-level language might even lead to better understanding because you can focus on the important parts. that language does not have to be functional (some algorithms _are_ imperative) but might be, say, python.
- frozenport 13y agoAssembly is also good and I spent a semester teaching it to 2nd semester students. I think C++ is a better choice because it exposes folks to low level programming in a more controlled fashion. For many people python is their first language.
- ibotty 13y agobut the '++'-part does not help in understanding the machine, does it? (i like many new-in-c++11 constructs so don't get me wrong. but they further abstract from the machine.)
- frozenport 13y agoKnowing OOP is also useful, and knowing how OOP behaves on a machine is also useful (vtables). I can't recommend Scheme or Lisp because it will leave students disconnected from the real-world software stack.
- ibotty 13y agowell. of course knowing oop is useful. but why the modula flavor and not the smalltalk flavor? vtables cannot be used with message-passing object orientation. shouldn't students learn lambda-calculus? shouldn't you teach a functional programming language then? or even a logic programming language? "the real-world software stack" is not the most important thing in the world.