6

I want to try out SICP with Python.

Can any one point to materials (video.article...) that teaches Structure and Interpretation of Computer Programs in python.

Currently learning from SICP videos of Abelson, Sussman, and Sussman.

Joel Coehoorn
  • 399,467
  • 113
  • 570
  • 794
yesraaj
  • 46,370
  • 69
  • 194
  • 251

5 Answers5

10

I think this would be great for you, CS61A SICP in Python by Berkeley

sicp-python code at Github

Ahmad Ajmi
  • 7,007
  • 3
  • 32
  • 52
9

A direct translation of SICP in Python would make no sense - Scheme and Python are way too different. But there are a couple similar books in Python. The first that comes to mind is "thinking like a computer scientist". You'll find more informations about available material here: http://www.greenteapress.com/thinkpython/thinkCSpy/

nosklo
  • 217,122
  • 57
  • 293
  • 297
bruno desthuilliers
  • 75,974
  • 6
  • 88
  • 118
  • 1
    I thought SICP was about programming not about Scheme, I know Scheme is used to put across the theory. –  Nov 05 '11 at 11:47
  • 1
    SICP is really about functional programming, and Python is an imperative object-oriented language. Definitly not the same way to design your programs. – bruno desthuilliers Nov 29 '11 at 09:19
  • 1
    Actually Python has a lot of influence from Lisp and functional languages (http://twit.tv/show/floss-weekly/11) and it has certainly a lot of tools to support functional programming (http://docs.python.org/dev/howto/functional.html). – mcepl Mar 02 '12 at 00:50
  • 1
    @mcepl: Yes Python has first-class functions, (restricted) closures, (very restricted) lambdas and borrowed a couple idioms from Lisp and Haskell, but it's still a statement-based imperative language at heart and trying to do proper FP in Python will only feel frustratring at best. – bruno desthuilliers Nov 12 '13 at 08:24
8

Don't think there is a complete set of materials, this is the best I know.

If you are up to generating the material yourself, a bunch of us plan to work through SICP collectively at. I know at least one guy will be using Haskell, so you will not be alone in pursuing an alternative route.

mac
  • 9,885
  • 4
  • 36
  • 51
4

here is what you need - http://www-inst.eecs.berkeley.edu/~cs61a/fa11/61a-python/content/www/index.html

daydreamer
  • 87,243
  • 191
  • 450
  • 722
2

Old question, but thought this might be useful for someone.

http://composingprograms.com/

In the tradition of SICP, this text focuses on methods for abstraction, programming paradigms, and techniques for managing the complexity of large programs. These concepts are illustrated primarily using the Python 3 programming language.
...
Composing Programs is authored and maintained by John DeNero. The text was originally published as lecture notes for CS 61A at UC Berkeley and is based upon the Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman.