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 536000
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 UTC 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[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