

To Scheme, or Not to Scheme (2009) - gnosis
https://dekudekuplex.wordpress.com/2009/10/23/to-scheme-or-not-to-scheme-scheming-schemers-and-non-scheming-schemers-or-keeping-the-fun-in-scheme/

======
tikhonj
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.

------
agentultra
I've found that I've really enjoyed the Little Schemer series quite a bit. I
do have SICP which is a great college-level text but for a pure-introductory
book for someone who is completely new to programming I would suggest Little
Schemer.

Either way, SICP or Little Schemer aim to teach a theory of computation. The
unit of computation is recursion and they go to show just how powerful it is.
I think the fun stems from learning the theory and allowing your mind to toy
with the applications of it.

Conversely, HtDP is first and foremost practical. I find it boring precisely
because its goal is to show you _how to design computer programs_. There's
little creativity involved!

------
jamesjporter
I agree with HtDP being not great. I took a majors level intro to CS class
last quarter; HtDP was the text and I found it spectacularly unhelpful.

