Clases en video de SICP (1986)
(ocw.mit.edu)- Es posible seguir el recorrido completo de MIT 6.001
Structure and Interpretation of Computer Programsa través de 20 clases en video, lo que las convierte en un buen material para repasar SICP de forma sistemática - Las clases se impartieron en julio de 1986 para empleados de Hewlett-Packard, y Hewlett-Packard Television se encargó de la producción profesional
- Los videos pueden verse en MIT OCW y en un sitio alterno, y se ofrecen bajo una licencia Creative Commons compatible con uso comercial
- El contenido de las clases se basa en la 1.ª edición de SICP de 1985, y en la 2.ª edición de 1996 se reescribieron algunos programas y se añadió material nuevo
- El orden de temas y presentaciones se mantiene, por lo que siguen siendo una referencia valiosa incluso para quienes estudian con la 2.ª edición
Estructura de las clases y forma de acceso
- Hal Abelson y Gerald Jay Sussman cubren en 20 clases el curso completo MIT 6.001
Structure and Interpretation of Computer Programs - Las clases se impartieron en julio de 1986 para empleados de Hewlett-Packard, y Hewlett-Packard Television se encargó de la producción profesional
- Los videos fueron proporcionados por Hal Abelson y Gerald Jay Sussman, y se usan con autorización
- Los mismos videos están disponibles, además de MIT OCW, en un sitio alterno, bajo una licencia Creative Commons compatible con uso comercial
Nota sobre la edición del libro
- Estas clases se basan en la 1.ª edición de Structure and Interpretation of Computer Programs, publicada en 1985
- En la 2.ª edición de 1996, varios de los programas tratados en las clases fueron reescritos y se agregó material nuevo
- Como el orden general de temas y presentaciones no cambió, estas clases en video siguen siendo útiles también para estudiantes que usan la 2.ª edición
Lista de clases
-
Lisp y abstracción de procedimientos
- 1A: Overview and Introduction to Lisp: panorama general e introducción a Lisp
- 1B: Procedures and Processes; Substitution Model: procedimientos, procesos y modelo de sustitución
- 2A: Higher-order Procedures: procedimientos de orden superior
-
Datos y procesamiento simbólico
- 2B: Compound Data: datos compuestos
- 3A: Henderson Escher Example: ejemplo de Henderson Escher
- 3B: Symbolic Differentiation; Quotation: diferenciación simbólica y quoted expressions
- 4A: Pattern Matching and Rule-based Substitution: pattern matching y sustitución basada en reglas
- 4B: Generic Operators: operadores genéricos
-
Estado, objetos y streams
- 5A: Assignment, State, and Side-effects: asignación, estado y efectos secundarios
- 5B: Computational Objects: objetos computacionales
- 6A: Streams, Part 1: streams, parte 1
- 6B: Streams, Part 2: streams, parte 2
-
Evaluador y programación lógica
- 7A: Metacircular Evaluator, Part 1: evaluador metacircular, parte 1
- 7B: Metacircular Evaluator, Part 2: evaluador metacircular, parte 2
- 8A: Logic Programming, Part 1: programación lógica, parte 1
- 8B: Logic Programming, Part 2: programación lógica, parte 2
-
Modelo de máquinas y compilación
- 9A: Register Machines: máquinas de registros
- 9B: Explicit-control Evaluator: evaluador de control explícito
- 10A: Compilation: compilación
- 10B: Storage Allocation and Garbage Collection: asignación de memoria y garbage collection
1 comentarios
Opiniones de Hacker News
Para estudiar SICP se puede usar MIT Scheme; otra opción es usar Racket o DrRacket con este paquete adicional: https://docs.racket-lang.org/sicp-manual/
Los demás tienen demasiadas funciones alrededor y pueden distraer
MIT Scheme no está hecho para correr en Apple Silicon, y aunque con algunos trucos se puede usar la versión amd64 en Macs recientes, es probable que desaparezca si Apple elimina Rosetta2
Por eso Racket podría ser una mejor opción
Casi cualquier implementación decente de Scheme puede usarse para SICP, pero no la recomendaría porque el lenguaje ha cambiado incluso después de la 2.ª edición
Eso sí, después de iniciar tu propio proyecto puedes usar otro sistema, y tal vez tengas que leer la documentación para encontrar los equivalentes modernos de modismos antiguos
Todo programador debería aprender LISP, o al menos estudiarlo en serio
La mayoría de los programadores de aplicaciones solo saben pensar de forma procedural, como los programadores de C
LISP es un lenguaje “bello” que trata con conceptos y no con el hardware, y cuando lo usé durante varios años en proyectos de posgrado en mi alma mater en 1990, me cambió por completo la forma de pensar
Hace tiempo hice SICP solo con el libro, y creo que las clases son mucho mejores y el libro funciona como material de referencia complementario
No hace falta resolver los ejercicios ni seguir el libro
Ya sea que estés entrando recién en el área o tengas décadas de experiencia, si todavía no viste estos videos o no tomaste una clase de SICP, probablemente le sirvan a casi cualquiera
Estudié estos videos y todo el libro hasta el final, y también armé un grupo de estudio offline a través de un newsgroup
Fue realmente divertido y un gran punto de inflexión, pero hacia la mitad del libro empezó a bajar la cantidad de participantes del grupo
El consejo de leer SICP fue el mejor consejo que recibí en /g/
Aprendí Lisp con esto, luego aprendí Clojure y construí mi carrera alrededor de eso
Es un lenguaje que me gusta bastante
Lo recomiendo muchísimo
Con solo ver la primera clase ya te engancha de inmediato
¿Qué puede sacar de esto alguien interesado en programación de sistemas?
Por eso, en la medida en que la programación de sistemas trata principalmente sobre gestión de estado y abstracción, me parece muy profundamente relacionada
Pero si por “programación de sistemas” te refieres a forzar la integración de sistemas existentes y desordenados, o a desarrollar olfato para librerías de terceros, quizá no tenga mucha relación
Aun así, también hay ideas valiosas aquí. Vi un video donde Sussman explica por qué dejó atrás SICP y pidió crear en MIT un nuevo curso introductorio; se lo veía archivando con respeto y consideración la joya que había pulido
Significaba que se había terminado la época en la que podíamos esperar ver a través de todas las capas de abstracción
Estas clases tienen muy mala calidad de audio
¿Habrá alguna forma de limpiarlo?