Linked by Thom Holwerda on Thu 20th Sep 2012 20:27 UTC, submitted by MOS6510
General Development "Online Python Tutor is a free educational tool that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, a teacher or student can write a Python program directly in the web browser and visualize what the computer is doing step-by-step as it executes the program."
Thread beginning with comment 535991
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: barrier...learning
by satsujinka on Fri 21st Sep 2012 16:05 UTC in reply to "RE[4]: barrier...learning"
satsujinka
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.)

Reply Parent Score: 2

RE[6]: barrier...learning
by Alfman on Fri 21st Sep 2012 18:31 in reply to "RE[5]: barrier...learning"
Alfman Member since:
2011-01-28

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.

Reply Parent Score: 2

RE[7]: barrier...learning
by Neolander on Sat 22nd Sep 2012 07:05 in reply to "RE[6]: barrier...learning"
Neolander Member since:
2010-03-08

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.

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

Reply Parent Score: 2

RE[6]: barrier...learning
by renox on Sun 23rd Sep 2012 13:05 in reply to "RE[5]: barrier...learning"
renox Member since:
2005-07-06

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..

Reply Parent Score: 2