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 535977
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[4]: barrier...learning
by renox on Fri 21st Sep 2012 14:08 UTC in reply to "RE[3]: barrier...learning"
renox
Member since:
2005-07-06

I think that it may depends on the student..
Me, I find learning low level first easier because when something "magic" happens in a high level language you can look at how it is implemented to better understand it.

Reply Parent Score: 2

RE[5]: barrier...learning
by satsujinka on Fri 21st Sep 2012 16:05 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[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