Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SICP just for beginners or programmers of all ages?

443 views
Skip to first unread message

Anonymous

unread,
Nov 12, 2012, 11:10:16 AM11/12/12
to
I looked at LISP in the 1970s and quickly decided it wasn't for me. I'm
thinking I'd like another look at it and searching the net many
recommendations for SICP appear. Is this a book for programming beginners or
is it suitable for people with programming experience who want to learn
Scheme? I find it hard wading through most introductory texts and I don't
often find good books on learning progamming languages. If this isn't the
right book can you recommend a better one? If not I thought to go through
the Emacs Lisp and MIT Scheme manuals since I seem to learn the languages I
learn from the manuals rather than books. At this point I don't know the
difference between Scheme and Lisp and have no preferences nor prejudices. I
find it interesting and hope to learn more this time.

Thanks for your opinions.

Bill

Pascal J. Bourguignon

unread,
Nov 13, 2012, 3:44:19 PM11/13/12
to
Yes, it's a book beginners can read and study.
At MIT it's used as the introduction to CS for CS beginners
(but not anymore as introduction to programming for biologists or
electrical engineers).

However, it's perfectly suitable to an accomplished programmer. Not to
learn scheme (there are books more specifically designed to teach you
all the nooks and crannies of scheme, such as HTDP (How to Design
Programs)), but to open your mind. Prepare yourself for an awakening
experience!

As for the differences between Scheme, emacs lisp and Common Lisp,
they're globally rather small. You can easily know the three languages,
and be proficient in both. The main difference between scheme and emacs
lisp or CL is that scheme is lisp-1 while the others are lisp-2. see:
http://www.dreamsongs.com/Separation.html

--
__Pascal Bourguignon__
http://www.informatimago.com

Aaron W. Hsu

unread,
Nov 13, 2012, 11:43:20 PM11/13/12
to
"Pascal J. Bourguignon" <p...@informatimago.com> writes:

>However, it's perfectly suitable to an accomplished programmer. Not to
>learn scheme (there are books more specifically designed to teach you
>all the nooks and crannies of scheme, such as HTDP (How to Design
>Programs)), but to open your mind. Prepare yourself for an awakening
>experience!

For books about learning Scheme, I would probably put HtDP and
SICP in the same general class. Namely, these are both introductory
computer science texts that use Scheme as their computer programming
language. Their approaches are quite different, but they are
both fundamentally introductory computer science texts. For
specifically studying and understanding Scheme as a language,
the combination of "The Scheme Programming Language" and the
appropriate standard document is really hard to beat.

--
Aaron W. Hsu | arc...@sacrideo.us | http://www.sacrideo.us
Programming is just another word for the lost art of thinking.

Franck Ditter

unread,
Nov 14, 2012, 1:58:53 AM11/14/12
to
In article <87bof1q...@informatimago.com>,
Is Scheme still taught at MIT ? Any course reference number ?...

franck

William Conrad

unread,
Nov 14, 2012, 4:28:51 PM11/14/12
to
On Tue, 13 Nov 2012 21:44:19 +0100 "Pascal J. Bourguignon"
<p...@informatimago.com> wrote:

> However, it's perfectly suitable to an accomplished programmer. Not to
> learn scheme (there are books more specifically designed to teach you
> all the nooks and crannies of scheme, such as HTDP (How to Design
> Programs)), but to open your mind. Prepare yourself for an awakening
> experience!

In that case I'll probably go with HTDP since my object now is to learn
Scheme or get started learning it anyway.

> As for the differences between Scheme, emacs lisp and Common Lisp,
> they're globally rather small. You can easily know the three languages,
> and be proficient in both. The main difference between scheme and emacs
> lisp or CL is that scheme is lisp-1 while the others are lisp-2. see:
> http://www.dreamsongs.com/Separation.html

Thank you!

Bill

--
Is Lisp a pyramid Scheme?

Bakul Shah

unread,
Nov 14, 2012, 4:49:27 PM11/14/12
to
SICP is available online so you can decide for yourself but based
on what you are saying, my instinct says you will be happier
with something like Dybvig's "The Scheme Programming Language".

Pascal J. Bourguignon

unread,
Nov 14, 2012, 4:59:52 PM11/14/12
to
Franck Ditter <nob...@nowhere.org> writes:

> Is Scheme still taught at MIT ? Any course reference number ?...

Check: http://web.mit.edu/alexmv/6.S184/

William Gardella

unread,
Nov 14, 2012, 11:17:50 PM11/14/12
to
Not only is it available online, but it's available online in Info
format, which makes for the very nice experience of sitting with it in
one Emacs window with a Scheme REPL in the other. :)

-WGG

--
I use grml (http://grml.org/)
Message has been deleted

William Conrad

unread,
Nov 15, 2012, 2:32:46 PM11/15/12
to
On Wed, 14 Nov 2012 23:17:50 -0500 William Gardella <garde...@gmail.com>
wrote:
Oh cool where can I find the info version?


















Christian Kellermann

unread,
Nov 15, 2012, 4:40:10 PM11/15/12
to
William Conrad <billc...@mixnym.net> writes:
>
> Oh cool where can I find the info version?

http://www.neilvandyke.org/sicp-texi/

Cheers,

Christian

Pascal J. Bourguignon

unread,
Nov 15, 2012, 5:28:38 PM11/15/12
to
Have a look at this article too:

http://www.eecs.berkeley.edu/~bh/sicp.html

William Conrad

unread,
Nov 16, 2012, 5:36:25 AM11/16/12
to
Thank you!

William Conrad

unread,
Nov 16, 2012, 6:36:37 AM11/16/12
to
Thanks for the links!

Franck Ditter

unread,
Dec 7, 2012, 1:28:08 AM12/7/12
to
In article <87y5i2p...@informatimago.com>,
"Pascal J. Bourguignon" <p...@informatimago.com> wrote:

Brian Harvey's SICP course migrates to Python 3 at Berkeley CS61A :

http://www-inst.eecs.berkeley.edu/~cs61a/fa12/

franck

chthon

unread,
Dec 17, 2012, 6:51:06 AM12/17/12
to
Op woensdag 14 november 2012 05:43:20 UTC+1 schreef Aaron W. Hsu het volgende:
>
> >However, it's perfectly suitable to an accomplished programmer. Not to
> >learn scheme (there are books more specifically designed to teach you
> >all the nooks and crannies of scheme, such as HTDP (How to Design
> >Programs)), but to open your mind. Prepare yourself for an awakening
> >experience!
>
> For books about learning Scheme, I would probably put HtDP and
> SICP in the same general class. Namely, these are both introductory
> computer science texts that use Scheme as their computer programming
> language. Their approaches are quite different, but they are
> both fundamentally introductory computer science texts. For
> specifically studying and understanding Scheme as a language,
> the combination of "The Scheme Programming Language" and the
> appropriate standard document is really hard to beat.
>
> --
>
> Programming is just another word for the lost art of thinking.

A couple of years ago I first started with SICP to learn Lisp, but after a couple of weeks I gave up, mostly because the other chapters after the first were not about Lisp. I then discovered HtDP and I worked it through (almost) completely. HtDP is certainly one of the best books about programming out there. What I found very enlightening in the first chapters, was on how to think about algorithms and solving problems using only recursion. Another nice thing about the book is that it builds nicely upon DrScheme/DrRacket.

After that I started to learn Common Lisp with only the CLHS and ILISP, later SLIME.

I returned to SICP but with another goal in mind: I wanted to implement a small Lisp, and for that, chapter 4, Metalinguistic Abstraction, is the ideal guideline. I did not implement it in Scheme, but in Perl.

SICP is not really for learning Lisp, it is for learning the basics of CS. Its title should be taken literally: 'structure' and 'interpretation' of computer programs. It contains a whole lot of ways on how programs can be written, and it contains a whole lot of ways that a program can be run.

SICP is a book to keep and to return to, I repeat, not for learning Lisp, but to learn about basic and advanced programming, and to learn about the different ways and levels that a computer program can be run.

Regards,

Jurgen
0 new messages