Linked by Thom Holwerda on Thu 20th Sep 2012 20:27 UTC, submitted by MOS6510
Thread beginning with comment 535991
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[6]: barrier...learning
by Alfman on Fri 21st Sep 2012 18:31
in reply to "RE[5]: barrier...learning"
I guess low level is a bit vague, but when I use it I'm referring to understanding what the hardware is doing at a hardware level. Conversely high level for me would mean hiding the hardware behind abstractions.
As much as I appreciate the low level stuff, I think it's hard to make a case for why most students would ever need it.
RE[7]: barrier...learning
by Neolander on Sat 22nd Sep 2012 07:05
in reply to "RE[6]: barrier...learning"
I guess low level is a bit vague, but when I use it I'm referring to understanding what the hardware is doing at a hardware level. Conversely high level for me would mean hiding the hardware behind abstractions.
As much as I appreciate the low level stuff, I think it's hard to make a case for why most students would ever need it.
As much as I appreciate the low level stuff, I think it's hard to make a case for why most students would ever need it.
I can think of quite a few big market who might actually need it, such as embedded stuff or hardware development. Now, I guess what you implied is that "one doesn't really need the low-level stuff to build user-mode software".
I'd say that this, too, can be debatable, though. As an example, when people know so little about computer memory hierarchies and their management that they end up considering memory allocation as a magic thing that brings extra objects to their code whenever they need it, memory management overhead will cause performance problems in their software in the long run.
Edited 2012-09-22 07:06 UTC
RE[6]: barrier...learning
by renox on Sun 23rd Sep 2012 13:05
in reply to "RE[5]: barrier...learning"
I find that a low-level description is actively harmful for most new students. It's simply too irrelevant for their attempts at learning the language at hand and only adds to the information they have to memorize. Of course, I may be misunderstanding what you mean by low-level. I take it to mean explicitly detailing what op codes/assembly instructions and registries are/do.
Not *that* detailled, but for example learning how virtual functions work by looking at vtables and the pointer.
Typically, I find that functional languages are easier to teach because everyone has some experience with math and can do basic substitution (even if that's not how things are actually evaluated, substitution is a good enough model to start with.)
Provided you don't want to teach about performance..
Otherwise at some point you have to look at the binary generated, which is not too bad with C/C++ but with Haskell..





Member since:
2010-03-11
I find that a low-level description is actively harmful for most new students. It's simply too irrelevant for their attempts at learning the language at hand and only adds to the information they have to memorize. Of course, I may be misunderstanding what you mean by low-level. I take it to mean explicitly detailing what op codes/assembly instructions and registries are/do.
Typically, I find that functional languages are easier to teach because everyone has some experience with math and can do basic substitution (even if that's not how things are actually evaluated, substitution is a good enough model to start with.)