Gostaríamos de agradecer às muitas pessoas que nos ajudaram a desenvolver este livro e este currículo.
Nossa disciplina é um claro descendente intelectual de “6.231”, uma maravilhosa disciplina sobre linguística de programação e o cálculo λ ministrada no MIT no final dos anos 1960 por Jack Wozencraft e Arthur Evans Jr.
Devemos uma grande dívida a Robert Fano, que reorganizou o currículo introdutório do MIT em engenharia elétrica e ciência da computação para enfatizar os princípios do design de engenharia. Ele nos liderou no início desta empreitada e escreveu o primeiro conjunto de notas da disciplina a partir do qual este livro evoluiu.
Muito do estilo e da estética da programação que tentamos ensinar foram desenvolvidos em conjunto com Guy Lewis Steele Jr., que colaborou com Gerald Jay Sussman no desenvolvimento inicial da linguagem Scheme. Além disso, David Turner, Peter Henderson, Dan Friedman, David Wise e Will Clinger nos ensinaram muitas das técnicas da comunidade de programação funcional que aparecem neste livro.
Joel Moses nos ensinou sobre a estruturação de grandes sistemas. Sua experiência com o sistema Macsyma para computação simbólica forneceu a visão de que se deve evitar complexidades de controle e concentrar-se em organizar os dados para refletir a estrutura real do mundo sendo modelado.
Marvin Minsky e Seymour Papert formaram muitas de nossas atitudes sobre programação e seu lugar em nossas vidas intelectuais. A eles devemos a compreensão de que a computação fornece um meio de expressão para explorar ideias que, de outra forma, seriam muito complexas para serem tratadas com precisão. Eles enfatizam que a capacidade de um aluno de escrever e modificar programas fornece um meio poderoso no qual a exploração se torna uma atividade natural.
Também concordamos fortemente com Alan Perlis que programar é muito divertido e que devemos ter cuidado para apoiar a alegria da programação. Parte dessa alegria deriva de observar grandes mestres em ação. Temos a sorte de ter sido programadores aprendizes aos pés de Bill Gosper e Richard Greenblatt.
É difícil identificar todas as pessoas que contribuíram para o desenvolvimento do nosso currículo. Agradecemos a todos os palestrantes, instrutores de recitação e tutores que trabalharam conosco nos últimos quinze anos e dedicaram muitas horas extras à nossa disciplina, especialmente Bill Siebert, Albert Meyer, Joe Stoy, Randy Davis, Louis Braida, Eric Grimson, Rod Brooks, Lynn Stein e Peter Szolovits. Gostaríamos de reconhecer especialmente as contribuições excepcionais de Franklyn Turbak, agora em Wellesley; seu trabalho no ensino de graduação estabeleceu um padrão ao qual todos podemos aspirar. Somos gratos a Jerry Saltzer e Jim Miller por nos ajudarem a lidar com os mistérios da concorrência, e a Peter Szolovits e David McAllester por suas contribuições para a exposição da avaliação não determinística no Capítulo 4.
Muitas pessoas dedicaram um esforço significativo apresentando este material em outras universidades. Algumas das pessoas com quem trabalhamos de perto são Jacob Katzenelson no Technion, Hardy Mayer na Universidade da Califórnia em Irvine, Joe Stoy em Oxford, Elisha Sacks em Purdue e Jan Komorowski na Universidade Norueguesa de Ciência e Tecnologia. Estamos excepcionalmente orgulhosos de nossos colegas que receberam prêmios importantes de ensino por suas adaptações desta disciplina em outras universidades, incluindo Kenneth Yip em Yale, Brian Harvey na Universidade da Califórnia em Berkeley e Dan Huttenlocher em Cornell.
Al Moyé organizou para que ensinássemos este material a engenheiros da Hewlett-Packard e para a produção de videotapes dessas palestras. Gostaríamos de agradecer aos talentosos instrutores—em particular Jim Miller, Bill Siebert e Mike Eisenberg—que projetaram cursos de educação continuada incorporando esses tapes e os ensinaram em universidades e indústrias em todo o mundo.
Muitos educadores em outros países dedicaram um trabalho significativo traduzindo a primeira edição. Michel Briand, Pierre Chamard e André Pic produziram uma edição em francês; Susanne Daniels-Herold produziu uma edição em alemão; e Fumio Motoyoshi produziu uma edição em japonês. Não sabemos quem produziu a edição em chinês, mas consideramos uma honra ter sido selecionados como o tema de uma tradução “não autorizada”.
É difícil enumerar todas as pessoas que fizeram contribuições técnicas para o desenvolvimento dos sistemas Scheme que usamos para fins instrucionais. Além de Guy Steele, os principais magos incluíram Chris Hanson, Joe Bowbeer, Jim Miller, Guillermo Rozas e Stephen Adams. Outros que dedicaram um tempo significativo são Richard Stallman, Alan Bawden, Kent Pitman, Jon Taft, Neil Mayle, John Lamping, Gwyn Osnos, Tracy Larrabee, George Carrette, Soma Chaudhuri, Bill Chiarchiaro, Steven Kirsch, Leigh Klotz, Wayne Noss, Todd Cass, Patrick O’Donnell, Kevin Theobald, Daniel Weise, Kenneth Sinclair, Anthony Courtemanche, Henry M. Wu, Andrew Berlin e Ruth Shyu.
Além da implementação do MIT, gostaríamos de agradecer às muitas pessoas que trabalharam no padrão IEEE Scheme, incluindo William Clinger e Jonathan Rees, que editaram o R⁴RS, e Chris Haynes, David Bartley, Chris Hanson e Jim Miller, que prepararam o padrão IEEE.
Dan Friedman tem sido um líder de longa data da comunidade Scheme. O trabalho mais amplo da comunidade vai além das questões de design de linguagem para abranger inovações educacionais significativas, como o currículo do ensino médio baseado no EdScheme da Schemer’s Inc., e os maravilhosos livros de Mike Eisenberg e de Brian Harvey e Matthew Wright.
Agradecemos o trabalho daqueles que contribuíram para tornar este um livro real, especialmente Terry Ehling, Larry Cohen e Paul Bethge na MIT Press. Ella Mazel encontrou a maravilhosa imagem da capa. Para a segunda edição, somos particularmente gratos a Bernard e Ella Mazel pela ajuda com o design do livro, e a David Jones, mago do TeX extraordinário. Também somos devedores aos leitores que fizeram comentários penetrantes sobre o novo rascunho: Jacob Katzenelson, Hardy Mayer, Jim Miller e especialmente Brian Harvey, que fez com este livro o que Julie fez com seu livro Simply Scheme.
Finalmente, gostaríamos de reconhecer o apoio das organizações que encorajaram este trabalho ao longo dos anos, incluindo o apoio da Hewlett-Packard, possibilitado por Ira Goldstein e Joel Birnbaum, e o apoio da DARPA, possibilitado por Bob Kahn.