News for hackers. Stuff that matters.
Re:Composing Programs – Python 3 in the tradition of SICP by jxy on Sunday April 10, 2016 @11:05AM (#11466418)
The way I see it: the language rules are simple, anyone can understand all in one sitting; yet the language gives you all the materials you need to build different concepts in SC from scratch. The latter point is important to both teaching and learning.
Re:Composing Programs – Python 3 in the tradition of SICP by bunderbunder on Sunday April 10, 2016 @12:07PM (#11466759)
> the language rules are simple

Completely agreed

> anyone can understand all in one sitting

Goodness gracious, no. At least it sure wasn't as of the last time I TA'd a class that was taught using it (admittedly during the previous millennium). In a typical group, approaching half the students - smart students, this was a fairly selective school - dropped or failed. A huge chunk foundered on figuring out how to do useful things with lists (cons/car/cdr and friends are elegant, but they are also weird). Another huge chunk struggled with let/let*/letrec. And closures weren't very fun for many students, either.

The one neat thing I've noticed about Scheme is that, if you get Scheme, then you will have a very solid grasp of how to compose abstractions. I wouldn't be too quick to infer a causal link there, though. It might be that Scheme makes people better at CS. It could just as easily (given those failure rates, possibly more easily) be that Scheme is a filter for identifying people who have a pre-existing knack for the academic side of CS.

Re:Composing Programs – Python 3 in the tradition of SICP by thramp on Sunday April 10, 2016 @11:50AM (#11466668)
I completely agree with you regarding the simplicity of Scheme! But that’s exactly why I don’t think Scheme should be people’s first introduction to programming. You need to give them friendly abstractions[1] that make them realize what is possible with computing, and only once they get those abstractions, break them down, and show them how the magic is actually implemented.

My opinion isn’t pie-in-the-sky theorizing: I know plenty of intelligent people whose first exposure to programming was Scheme, which scared them off into thinking that “they’re not smart enough for programming” or some bullshit like that. When they later tried a language like Python, they weren’t scared off—they were hooked.

The whole argument in favor of using Scheme as an introduction to programming seems highly ideological, and not at all informed by how people actually learn how to program. The fact that so many online resources successfully (Codecademy, Coursera, etc.) introduce people to programming using high-level languages is evidence that it works.

[1]: I know that all abstractions are leaky, but in the context of an introductory class, they’re not leaky enough.

Re:Composing Programs – Python 3 in the tradition of SICP by pgbovine on Sunday April 10, 2016 @12:04PM (#11466744)
Yes, this is one path to getting someone hooked on learning CS, which works for a small percentage of students (myself included). However, most learners are motivated by other ideals beyond intrinsic language purity. This academic book highlights dozens of research studies that go deeper into this fascinating topic: http://www.amazon.com/Learner-Centered-Design-Computing-Educ...