logoalt Hacker News

Simply Scheme: Introducing Computer Science (1999)

107 pointsby AlexeyBrinlast Sunday at 12:35 PM31 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.

show 7 replies
fdrtoday at 3:49 PM

I enjoyed my work with Scheme, having received my instruction in the early 2000s. I'm not a functional language or lisp language advocate in any way, and I don't even dislike Python for professional work, but I do regret that it is not taught anymore: Python's management of scopes is not as good for the instruction.

nomilktoday at 6:14 PM

Love the site, but seems a shame not to link to the full (~460 page) pdf for offline perusal.

EDIT: this might be it: https://people.eecs.berkeley.edu/~bh/ss.pdf

(saving to laptop and phone; perfect for passing time on a long haul flight)

show 1 reply
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 2 replies
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.

jampekkatoday at 4:42 PM

I'm currently teaching an introductory programming course in Python, and I definitely feel the allure to teach using a simpler language like Scheme.

Python has become a huge language over time, and it's really hard to make a syllabus which isn't full of simultaneous "you'll understand when you're older" concepts. OTOH students don't seem to mind it much and they do seem to learn to write code even with very shakey fundamentals.

show 1 reply
functionmousetoday at 1:06 PM

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