3 points par GN⁺ 2024-06-17 | 1 commentaires | Partager sur WhatsApp

Pourquoi Structure and Interpretation of Computer Programs est important

L’innovation de SICP

  • Élévation du niveau intellectuel : SICP a considérablement relevé le niveau intellectuel de l’enseignement introductif en informatique. Alors que les premiers cours de CS se concentraient auparavant sur l’apprentissage des détails d’un langage de programmation particulier, SICP mettait l’accent sur la compréhension de la vue d’ensemble du processus de programmation.
  • Accent sur l’abstraction : l’ouvrage souligne l’importance de l’abstraction, qui consiste à repérer des motifs généraux à partir de problèmes concrets et à créer des outils logiciels qui mettent en œuvre chacun de ces motifs.
  • Les fonctions comme données : il mettait fortement l’accent sur l’idée que les fonctions peuvent être utilisées comme des données. C’est un concept difficile à apprendre, mais extrêmement puissant une fois assimilé.
  • Divers paradigmes de programmation : il intégrait dès le premier cours de CS trois paradigmes de programmation : fonctionnel, orienté objet et déclaratif.

Le choix du langage Scheme

  • Une notation simple et cohérente : Scheme possède une notation très simple et cohérente pour tout. Là où d’autres langages utilisent des syntaxes différentes pour l’affectation de variables, l’exécution conditionnelle, les boucles ou les appels de fonctions, Scheme traite tout avec une seule notation.
  • Apprentissage de plusieurs paradigmes : grâce à la simplicité de Scheme, il devient facile d’apprendre différents paradigmes de programmation. Cela permet notamment de comprendre comment la programmation orientée objet est mise en œuvre.
  • Préparer l’avenir : SICP développe chez les étudiants la capacité à apprendre de nouveaux langages de programmation. Sa philosophie est que « le langage que vous utiliserez dans le futur n’a pas encore été inventé ».

L’approche optimiste de SICP

  • Des attentes élevées : SICP adopte une vision optimiste de ce que des étudiants de première année à l’université peuvent accomplir. Les étudiants y écrivent généralement des interpréteurs de langages de programmation, un sujet habituellement réservé aux années supérieures.
  • Un apprentissage en profondeur : le texte lui-même n’est pas facile à lire, mais chaque phrase compte et chaque exercice enseigne une nouvelle idée importante.

L’influence de SICP

  • Une influence durable : les cours fondés sur SICP ont été peu nombreux, mais leur influence a été immense. De nombreux manuels publiés ensuite ont essayé de se hisser au niveau de référence fixé par SICP.
  • L’expansion de Scheme : l’usage de Scheme comme langage d’apprentissage s’est étendu du collège jusqu’aux études supérieures.
  • Une informatique centrée sur les idées : l’idée selon laquelle l’informatique doit être centrée sur les idées s’est largement diffusée.

La pérennité de SICP

  • Une longue durée de vie : SICP a perduré plus de 25 ans et est toujours imprimé. L’environnement informatique a profondément changé, mais les grandes idées qui le sous-tendent n’ont pas changé.
  • L’évolution des cours : les cours fondés sur SICP ont ajouté au fil du temps la parallélisation, le contrôle de la concurrence, le design d’interfaces utilisateur et le paradigme client/serveur.

Les changements du cursus du MIT

  • Un cursus centré sur les applications : le MIT est passé d’un cursus centré sur les sujets à un cursus centré sur les applications. Le choix du langage de programmation n’était que la plus petite partie de cette décision.
  • Le défi d’une nouvelle approche : cette nouvelle approche est plus difficile à enseigner, et chaque cours nécessite la coopération du corps enseignant en génie électrique et en informatique.

La réaction des étudiants

  • Une popularité a posteriori : pendant le cours, les étudiants ne réalisent pas toujours à quel point ils apprennent, mais ils le considèrent ensuite comme l’un des cours les plus appréciés. Des diplômés ont aussi indiqué qu’ils utilisent encore dans leur travail ce qu’ils y ont appris.

L’avis de GN⁺

  • La philosophie éducative de SICP : SICP met l’accent sur l’apprentissage des grandes idées plutôt que sur les détails d’un langage de programmation, ce qui permet aux étudiants d’acquérir plus facilement la capacité d’apprendre de nouveaux langages.
  • Les atouts de Scheme : la simplicité de Scheme et sa notation cohérente sont très bénéfiques pour les débutants. Elles permettent de comprendre facilement divers paradigmes de programmation.
  • Les changements au MIT : l’évolution du cursus du MIT met l’accent sur un apprentissage centré sur les applications, ce qui peut offrir une expérience plus proche de la pratique réelle.
  • La continuité de l’enseignement : la longue durée de vie de SICP montre que sa philosophie éducative et son contenu restent valables aujourd’hui. Cela souligne la valeur fondamentale de l’enseignement.
  • Le lien avec la pratique : une formation fondée sur SICP développe des capacités directement applicables dans le monde professionnel, ce qui constitue une aide précieuse même après l’obtention du diplôme.

1 commentaires

 
GN⁺ 2024-06-17
Avis Hacker News
  • Le cours du Prof. Abelson est disponible sur YouTube et vaut le temps qu’on y consacre : il offre une compréhension approfondie de l’informatique et peut aider à relativiser le battage médiatique récent.

  • La première moitié du livre était une lecture légère et intéressante : la partie orientée objet a posé problème, et la pensée fonctionnelle convenait personnellement mieux.

  • On peut voir sur YouTube des cours du début des années 80 : ils incluent de l’humour, des premières tentatives de graphisme et la mode des années 70, ce qui les rend instructifs.

  • Question de savoir si ce livre vaut toujours la peine d’être lu, même pour des programmeurs très expérimentés.

  • On pensait que l’objectif de SICP était d’effrayer les gens qui n’aiment pas l’informatique : en réalité, c’était un cours fondamental très précieux, même s’il a poussé certaines personnes à se réorienter vers une autre spécialité.

  • Impossible de dépasser les premières pages : si cela avait été un cours obligatoire, on aurait fait autre chose.

  • Avoir travaillé comme assistant pédagogique du cours CS 61A à Berkeley : l’argument selon lequel la notation simple et unifiée du langage Scheme aide à l’enseignement existait, mais en pratique les étudiants étaient déroutés. Le fait que tout se ressemble dans Scheme est considéré comme un bug.

  • La meilleure leçon apprise dans SICP est que, dès le moment où l’on écrit sa première fonction, on crée un DSL pour résoudre un problème de domaine : cette intuition a permis de progresser comme programmeur.

  • Chaque lecture à propos de SICP provoque une frustration envers Javascript : si Javascript avait été Scheme, le développement web aurait été meilleur.

  • Demande de comparaison entre SICP et PAIP : SICP semble traiter de programmation fonctionnelle et des fondements de l’informatique, tandis que PAIP paraît davantage centré sur la pratique générale de la programmation.