Apesar de já possuir a edição mais nova (a 2ª edição) eu consegui comprar, usada, de um estudante que se formou no MIT há alguns anos atrás, a 1ª edição do livro Structure and Interpretation of Computer Programs (SICP), de Harold Abelson, Gerald Jay Sussman e Julie Sussman.
Esse livro, lançado em 1985 para ser o livro texto da disciplina homônima no MIT, foi um marco na história da ciência da computação e, principalmente, da formação dos cientistas da computação.
A disciplina MIT 6.001 (ministrada no MIT de 1980 até 2008) foi, durante 29 anos, o curso de “introdução” à ciência da computação, o curso onde os alunos aprendiam, de fato, a programar. Note que introdução está entre aspas pois o 6.001 era um dos cursos mais difíceis e desafiadores de todo o currículo de ciência da computação do MIT. Quando o MIT alterou seu currículo, em 2008, a MIT 6.001 foi substituída por 3 outras disciplinas (6.00, 6.01 e 6.02) devido ao tamanho e profundidade de seu conteúdo.
A MIT 6.001 utilizava o dialeto Scheme da Lisp para ensinar desde os conceitos básicos até os mais abstratos e avançados da programação de computadores. No MIT ninguém era considerado um cientista da computação, de fato, se não dominasse o conteúdo do livro da disciplina, o SICP. Esse livro foi tão influente na ciência da computação que mais de 100 das maiores universidades ao redor do mundo o adotaram em disciplinas similares à MIT 6.001.
Philip Greenspun, um dos cientistas da computação mais produtivos do MIT e fundador da ArsDigita, descreveu assim o SICP em suas recomendações de leitura:
Learn to Program
Or learn to talk about programming if you already know how to program. I’ve only ever seen one great book on the subject of computer programming: Structure and Interpretation of Computer Programs (Abelson and Sussman; MIT Press). If you’re already a great programmer, it will take you an evening to read the first few chapters and you’ll discover a precision vocabulary for discussing what you’ve spent 10 years learning the hard way. If you’re not already a great programmer, I would have thought that these few chapters would save you from having to spend years flailing around in the dark. Unfortunately, there doesn’t seem to be a substitute for practical experience.
Sidenote: the authors used to have a review wall outside their offices at MIT. University professors from around the world writing in scientific journals said ‘finally I understand what all this computer science stuff is about; this is the most brilliant book ever. I’m glad that we’re using it to teach freshmen now.’ In the center was a review from Byte magazine: ‘I didn’t understand any of this book.’
SICP is tougher to read than Teach Yourself to be a Dummy in 21 Days but it is the real thing, well organized and written.
Philip Greenspun, em Web Nerd Bookshelf
E por que estou escrevendo isso tudo? Para mostrar um pequeno detalhe no livro que acabei de receber, escrito à mão pelo dono anterior do livro, na contra-capa, logo abaixo do preço:
Pelo menos para mim, esse “and worth every penny!” é a reafirmação, por alguém que utilizou e estudou esse livro no MIT, de que ele é fantástico.
Meu programa de estudo de Lisp está baseado nos seguintes livros:
No momento estou estudando o Practical Common Lisp e o SICP, para ter a visão dos dois principais dialetos Lisp: Common Lisp e Scheme.
Espero que, quando terminar de estudar, eu possa escrever abaixo do recado do primeiro dono do livro: sim, realmente, valeu cada centavo mesmo!
Versões em PDF deste texto:
- PDF para impressão (links ocultos e não coloridos)
- PDF para web (links destacados e coloridos)