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 536043
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[7]: barrier...learning
by Neolander on Sat 22nd Sep 2012 07:05 UTC 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[8]: barrier...learning
by ssokolow on Sat 22nd Sep 2012 21:59 in reply to "RE[7]: barrier...learning"
ssokolow Member since:
2010-01-21

Perhaps. Are you talking about manually-managed languages like C or ones that use reference counting and/or garbage collection like Python, Javascript, and certain approaches to using C++?

...because for something as high-level as Python or Javascript, I can easily see a "you can lead a horse to water but you can't make him drink" problem in teaching lower-level details.

There are a lot of high-level programmers who fairly firmly see anything beyond the care and feeding of a reference count system or the tips for getting along with their particular garbage collector as too academic to be worth their precious attention.

Of course, I will definitely agree that high-level teaching needs to be improved. I'm mostly self-taught (because most of what University taught me about computer science, I'd already taught myself) and it was little more than luck that I recognized "syscalls are heavy. do as few of them as possible." as a general rule from reading Python profiler reports.

(At which point, a friend who studied CS about 15 or 20 years ago said something along the lines of "Of course. Is that no longer one of the first things you learn?")

Edited 2012-09-22 22:03 UTC

Reply Parent Score: 2

RE[9]: barrier...learning
by Neolander on Sun 23rd Sep 2012 08:58 in reply to "RE[8]: barrier...learning"
Neolander Member since:
2010-03-08

Mostly the latter. As programming languages make it easier for developers to ignore the intricacies of memory management for simple programs (which is overall a good thing), teachers can get more and more tempted to skip stressing the importance of the under-the-hood part altogether when discussing the language.

This, in turn, leads to the phenomenon that you discussed : people who, either due to misplaced pride or ignorance, end up not knowing enough about interpreters and OSs to write efficient software.

Reply Parent Score: 1