background preloader

Welcome to the SICP Web Site

Welcome to the SICP Web Site
Wizard Book n. Hal Abelson's, Jerry Sussman's and Julie Sussman's Structure and Interpretation of Computer Programs (MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. Comments or questions Contact Us.

Python Sourced[edit] And what defines a 'python activist' anyway? Blowing up Perl installations worldwide? Unsourced[edit] On Python[edit] Excellent plan! The Zen of Python (from the output of "import this")[edit] Beautiful is better than ugly. External links[edit] Start Programming with Python The SICP Picture Language Version: This package provides support for the picture language used in SICP. The non-standard primitives cons-stream and amb are also provided. 1 Introduction The SICP Picture Language is a small language for drawing pictures. It shows the power of data abstraction and closure. Before using this package, read section 2.2.4 of SICP, which is an excellent introduction to the ideas of the picture language. Peter Henderson has written an updated version of "Functional Geometry", which explains how to construct the Escher fish image. Note: The primitives cons-stream and amb needed in other chapters of SICP are also provided. 2 Reference The basic concept of the picture language is a painter. 3 Example 4 Vectors A mathematical vector is called a vect here, in order to avoid confusion with the builtin vectors of Scheme. Constructs a vect with the given coordinates. Returns the x-coordinate. Returns the y-coordinate. Adds the two vects by adding their coordinates pairwise. 5 Frames 6 Segments Index

k-punk: Dis-identity politics Dis-identity politics The discussion of V for Vendetta - on Pinocchio Theory in particular - has been far more interesting than the film deserved. Yes, there is a certain frission in seeing a major Hollywood movie refusing to unequivocally condemn terrorism, but the political analysis in the film (as in the original comic) is really rather threadbare. That is Moore's fault; it can't be blamed on the Wachowskis. As for V for Vendetta's politics - apart from the subjective destitution scenes, they amount in large part to the familiar populist ideology which maintains that the world is controlled by a corrupt oligarchy that could be overthrown if only people knew about it. The climactic scenes of V for Vendetta, in which the people rise up (by this time, against no-one) made me think, not of some great political Event, but rather of the Make Poverty History campaign - a 'protest' with which no-one could possibly disagree. This returns us to the question of reflexive impotence. 1. 2. 3.

Become a Programmer, Motherfucker If you don't know how to code, then you can learn even if you think you can't. Thousands of people have learned programming from these fine books: Learn Python The Hard Way Learn Ruby The Hard Way Learn Code The Hard Way I'm also working on a whole series of programming education books at Learn C The Hard Way Learn SQL The Hard Way Learn Regex The Hard Way Graphics Programming Language Agnostic NerdDinner Walkthrough Assembly Language Bash Clojure Clojure Programming ColdFusion CFML In 100 Minutes Delphi / Pascal Django Erlang Learn You Some Erlang For Great Good Flex Getting started with Adobe Flex (PDF) Forth Git Grails Getting Start with Grails Haskell Java JavaScript JavaScript (Node.js specific) Latex The Not So Short Introduction to LATEX (perfect for beginners) Linux Advanced Linux Programming Lisp Lua Programming In Lua (for v5 but still largely relevant)Lua Programming Gems (not entirely free, but has a lot of free chapters and accompanying code) Maven Mercurial Nemerle Nemerle

Fix error handling first Created 6 February 2003, last updated 24 January 2007 Often when unexpected errors first occur, I've found problems in the way the error is handled. This isn't surprising: error handling code is often the least-exercised part of your system, so it's natural that there are bugs in it. It is important to fix the error handling problems first, then the original error. Sometimes there is a whole chaing of problems started by the original error condition, then compounded as layers of error handling code mis-handle the condition. Fix all the problems, backwards. In any program, there will be code specifically designed to handle unusual situations, whether they be errors, exceptions, failed assertions, edge conditions, odd input, whatever. Estimates vary about what fraction of a large program is devoted to error handling, especially when different error handling techniques (status codes vs. exceptions, for instance) are taken into account. Always fix error handling before fixing errors. Wrong.

PythonBooks - Learn Python the easy way ! SICP Mind Your Decisions Today’s puzzle is a re-telling of a puzzle from Steve Miller’s Math Riddle’s website. On a square-shaped lazy susan turntable, a card is placed on each of the four corners. You are in a dark room and cannot see if the cards are face-up or face-down. Your job is to get all four of the cards to be face-up or face-down.On a given turn, you can flip over any or all of the cards. Then you press a button to verify your guess. If you are correct, you win and the game ends. I am doing something different for today’s puzzle. You can also try my variation, which is written in the comments. If you are stuck or want to verify a solution, I ask that you share this post on Twitter/Facebook/Google+/Reddit/Email/Etc.

Free Online Course Materials Stringification Created 9 December 2002, last updated 6 February 2003 One of the greatest features of modern programming environments is also the most humble: ubiquitous stringification. When I first worked in Java, I didn't think much about the java.lang.Object.toString method. Gradually, I understood. This may be one of those features you don't miss until it's gone. Being able to always stringify objects without a lot of rigamarole makes it much easier to use those object in "natural" ways. As described above, Java has the java.lang.Object.toString method, inspired by Smalltalk's asString method. Python provides two built-in methods for dealing with stringification: __str__() provides the "informal" (or human-readable) string for an object, and is called by the str() built-in function and the print statement. The default implementations are boring, by necessity: what information could they use to print something interesting? Write your own implementation!

Project Gutenberg - free ebooks