3 ms·
I went through a wonderful course based on SICP and really loved. Partly, no doubt, this was due to my professor (Brian Harvey) who was a brilliant lecturer and
by tikhonj 14y ago
I went through a wonderful course based on SICP and really loved. Partly, no doubt, this was due to my professor (Brian Harvey) who was a brilliant lecturer and very good at designing the course. However, largely, this was due to the textbook, the material and the language.
I think Scheme's fundamental advantage over Python is simplicity. There is, essentially, no syntax. Even the fundamental language features are not accorded any especial syntactic status. This makes it clear that the course is about computation rather than any particular facet of it.
Moreover, Scheme is truly paradigm. Language like Python and Java are staunchly imperative--they might pay lip service to functional programming, but it's clearly an afterthought. Things like loops and assignment are deeply embedded into those languages.
Scheme, on the other hand, is just as happy with procedural code as with functional code. Moreover, it introduces OOP not as a built-in language feature but as a set of useful patterns. This really helps broaden students' perspectives. You can even reuse exactly the same syntax for non-deterministic and logic programming.