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 536079
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[8]: barrier...learning
by ssokolow on Sat 22nd Sep 2012 21:59 UTC 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

RE[10]: barrier...learning
by ssokolow on Sun 23rd Sep 2012 12:32 in reply to "RE[9]: barrier...learning"
ssokolow Member since:
2010-01-21

In that case, I agree with you.

One of the ongoing problems I've had with learning lower-level stuff is that all the educational material I've found seems to be written for either programmers skilled in other low-level languages or complete and utter newbies.

There seem to be no "C/C++/D/Vala/etc. for the experienced Perl/Python/PHP/Ruby/Javascript/whatever programmer" books or articles.

What that means is that I end up either bored to the point of distraction or unknowingly missing important lessons whenever I try to improve my knowledge of C and C++ as someone skilled in Python, mildly so in PHP, shell script, and Javascript, and having written one or two small programs in C, C++, Vala, Java, and Prolog.

For example, K&R's "The C Programming Language" was good, but, given that it doesn't even mention what a buffer overflow is, it's obviously written for someone who already has some familiarity with low-level programming in some other way.

Edited 2012-09-23 12:36 UTC

Reply Parent Score: 2