logoalt Hacker News

Simply Scheme: Introducing Computer Science (1999)

49 pointsby AlexeyBrinlast Sunday at 12:35 PM7 commentsview on HN

Comments

linguaetoday at 3:43 PM

I wonder if there are still undergraduate CS programs that use a functional programming language in the intro course? MIT switched away from SICP (Scheme) to Python back in the late 2000s, and Berkeley switched away from Scheme sometime afterwards. Shriram Krishnamurthi has heavily promoted Racket in education and continues to do so, but for introductory CS he has moved on to Pyret, which has Algol-like syntax as opposed to S-expressions and doesn’t require programmers to think in terms of functional programming; for example, Pyret has loops and mutable variables.

At my institution (Ohlone College in Fremont, California), we teach the intro courses in C++. However, for discrete math, a sophomore-level course, each instructor is allowed to choose the language. I chose Haskell the last time I taught the class, and I plan to use Haskell again, since I believe it’s a great vehicle for coding discrete math, plus I believe it’s a great thing teaching undergraduates functional programming early on.

Smalltalker-80today at 3:19 PM

Ah, Scheme was part of a programming language course, studying CS in ~ 1990. We students struggled to match all the parenthesis on our VT100 terminals. And to understand the intended purpose of the functions, which are not attached to modules or classes (without macro's)..

show 1 reply
whartungtoday at 3:21 PM

“Simply Scheme” was a foundational work on my path to a parenthesta.

Simply, for me it was a Rosetta Stone that put Lisp/Scheme concepts into ones that I already understood. Simple things like using “function” instead of “lambda” were Aha moments that lead to breakthroughs.

Super helpful for me.

AlexeyBrintoday at 12:39 PM

If anyone wants to try the flavour of Scheme used in the book, install Racket and use:

    #lang simply-scheme
show 1 reply
functionmousetoday at 1:06 PM

I'm to understand this is meant to prepare new learners for SICP? Cool!