5 points par GN⁺ 2023-12-23 | 1 commentaires | Partager sur WhatsApp
  • Nand2Tetris fournit des ressources permettant aux apprenants qui veulent comprendre un système informatique de fond en comble de construire eux-mêmes un système informatique universel et les couches logicielles modernes
  • Cours, supports de projet et outils sont réunis au même endroit, et peuvent être utilisés gratuitement en open source dans un cadre non commercial
  • Ce cursus est utilisé dans plus de 400 universités, lycées et bootcamps, par des apprenants allant du lycéen au doctorant, jusqu’aux ingénieurs seniors
  • Les autodidactes peuvent suivre les notes de cours du site web et la section Projects, et Coursera propose une inscription payante avec délivrance d’un certificat officiel
  • La structure vise à la fois l’apprentissage individuel et les cours en établissement, et les enseignants peuvent obtenir des ressources supplémentaires en prenant contact séparément

Ressources pédagogiques pour construire un ordinateur depuis les bases

  • Le site officiel des cours Nand to Tetris rassemble les ressources nécessaires pour construire un système informatique universel et les couches logicielles modernes à partir de zéro
  • Les ressources se composent de cours, de supports de projet et d’outils, et s’adressent aux étudiants, enseignants et autodidactes
  • L’ouvrage associé est The Elements of Computing Systems de Noam Nisan et Shimon Schocken
  • Des contenus CACM liés au cursus sont proposés en texte et en vidéo

Parcours de formation et usages dans l’enseignement

  • Le cursus Nand to Tetris est enseigné dans plus de 400 universités, lycées et bootcamps
    • Les participants vont des lycéens aux doctorants, jusqu’aux ingénieurs seniors
    • On peut consulter le syllabus détaillé étendu d’une version académique typique du cours
  • Il est possible de suivre librement le programme en s’appuyant sur les notes de cours du site et la section Projects
  • Le cours Coursera est payant et donne droit à un certificat officiel
  • Des ressources supplémentaires pour les enseignants peuvent être obtenues en écrivant à nand2tetris@gmail.com

1 commentaires

 
GN⁺ 2023-12-23
Avis de Hacker News
  • Quand j’ai essayé pour la première fois il y a 7 ans, après l’université, je ne suis allé que jusqu’au chapitre 2 ; c’était très gratifiant, mais j’ai laissé tomber à cause d’autres side projects.
    J’ai repris il y a 3 mois et j’en suis maintenant au chapitre 8 : j’ai terminé les portes logiques, l’ALU, le CPU, l’assembleur et la moitié de la machine virtuelle. À chaque chapitre, je me demande « mais comment ça peut bien marcher ? », puis quand ça fonctionne vraiment, c’est extrêmement satisfaisant.
    Parmi les side projects purement destinés à apprendre que j’ai faits, c’est le plus gratifiant, et je suis assez fier de moi de m’y tenir jusqu’au bout ; je le recommande vivement.

    • Je l’ai fait aussi, et il m’a fallu trois tentatives pour tout terminer.
      L’automne/hiver dernier, je l’ai mené en parallèle avec l’excellente série de Ben Eater sur la construction d’un ordinateur 8 bits sur breadboard ; pendant des mois, j’ai acheté des composants en Chine et j’ai construit les sous-systèmes au fur et à mesure qu’ils arrivaient tout l’hiver.
      Ce serait une bonne prochaine étape : c’est très gratifiant, et voir les LED clignoter tout en comprenant ce qui se passe à l’intérieur est vraiment génial.
    • En suivant ce type de parcours et en lisant des livres comme Code, on éprouve un profond respect pour les gens qui ont découvert tout cela les premiers.
    • Je me demande comment on apprend les connaissances nécessaires en physique du solide pour bien comprendre le contexte des deux premiers chapitres.
      Par exemple, le mécanisme réel par lequel un circuit intégré transforme des entrées en sorties utiles : je n’ai pas trouvé de ressource qui explique correctement comment fonctionne réellement même le plus simple des circuits intégrés réels, comme le TI SN7400.
    • J’ai fait tout le projet dans le cadre d’un cours, et c’était l’un des meilleurs cours que j’aie suivis dans mon cursus d’informatique ; c’était vraiment excellent.
  • J’ai vraiment adoré ce cours, et je le recommande vivement à toute personne qui travaille avec des ordinateurs sans avoir suivi de cours d’informatique bas niveau.
    Il donne une compréhension intuitive des parties essentielles du fonctionnement d’un ordinateur qui influencent les programmes de plus haut niveau et les langages de programmation ; personnellement, ma plus grande révélation a été de vraiment comprendre la différence entre la pile et le tas.
    Le fait que les machines complexes que nous utilisons soient construites en empilant sans cesse des circuits simples a aussi quelque chose de magique, et les enseignants arrivent à donner rapidement l’essentiel de sujets comme le langage assembleur, qui pourraient remplir plusieurs semestres, sans les simplifier à l’excès.
    Si vous avez le temps, je le recommande vraiment. La première partie, de la porte NAND à la construction du CPU, est amusante et assez facile, mais la deuxième partie, qui va de l’ordinateur à un système d’exploitation complet, demande beaucoup plus de travail.

    • Je me demande si le cours en ligne et le livre sont le même matériel.
      J’essaie de déterminer s’il faut les deux, ou si un seul suffit.
  • Je recommande vivement ce cours/livre.
    Aller jusqu’au bout est extrêmement gratifiant.

  • Après avoir terminé l’excellente série de Ben Eater sur l’ordinateur 8 bits (https://eater.net/8bit/), passer à nand2tetris m’a semblé très naturel.
    Cela permet de vraiment comprendre des notions fondamentales de conception d’ordinateurs qui sont souvent survolées, et c’est un projet parfait à commencer pendant les vacances.

    • Je plussoie la recommandation de Ben Eater.
      J’aime beaucoup ses vidéos, en particulier celles qui introduisent les boucles et les interruptions.
      Voir le code qu’il avait écrit être réécrit de façon bien plus élégante grâce à ces concepts était très satisfaisant.
    • L’été dernier, j’ai fait l’ordinateur 6502 de Ben Eater, et je le recommande aussi.
      Maintenant, il va falloir que je regarde NAND to Tetris.
    • J’ai fait nand2tetris quand j’étais à Recurse, et à l’époque je regardais aussi beaucoup Ben Eater.
      Les deux allaient très bien ensemble.
  • Il existe un jeu NAND amusant inspiré de ce cours : https://nandgame.com/

    • Il y en a aussi un encore plus amusant, avec des évaluations extrêmement positives sur Steam : https://store.steampowered.com/app/1444480/Turing_Complete/
    • C’est un peu différent, mais je recommande aussi TIS-100 et Shenzhen IO.
      Les deux consistent à écrire dans des langages proches de l’assembleur, et ils sont très agréables à apprendre.
  • Si vous cherchez à comprendre les ordinateurs à un niveau plus bas, je recommande aussi le cours Digital Design and Computer Architecture de l’ETH Zürich.
    https://www.youtube.com/playlist?list=PL5Q2soXY2Zi-EImKxYYY1...

    • C’est une mine d’or.
      J’ai suivi un cours d’introduction à l’architecture des ordinateurs, mais malheureusement il n’allait pas très loin, et il ne couvrait absolument pas des « tours de magie » des CPU modernes comme l’exécution dans le désordre.
      Je pense que cette playlist sera mon sujet des vacances.
  • J’ai de bons souvenirs de ce livre et de la période où je l’ai pris en main.
    En prenant un café avec ma petite amie, je lui ai dit que j’avais lu qu’on pouvait construire toutes les portes logiques uniquement avec NAND ; par curiosité, nous avons pris plusieurs serviettes en papier et essayé de voir si nous pouvions toutes les reconstruire en écrivant des NAND partout.
    Nous avons fini par y arriver, et c’était vraiment amusant.
    À chaque fois que nous obtenions une porte à partir de NAND, j’écrivais le nom de la nouvelle porte sur la serviette ; j’ai ramené ces serviettes et cet enthousiasme à la maison, et quelques jours plus tard j’ai essayé de combiner ces portes pour finir par reconstituer toute l’ALU.
    C’est ainsi que sont apparus les multiplexeurs et plusieurs autres choses intéressantes ; j’ai fini par bloquer, mais comme j’avais entendu parler de ce livre, j’ai décidé de le commander.
    Les chapitres suivants m’ont vraiment aidé à comprendre le bas niveau, qui m’avait toujours semblé mystérieux avec ma seule expérience logicielle.
    Cela dit, je n’ai jamais réellement tout construit jusqu’au bout.
    Quand je suis arrivé à la partie logicielle bas niveau, j’avais l’impression d’avoir déjà suffisamment compris, donc le travail en lui-même m’attirait moins, mais rien que la lecture était excellente.

  • Il y a aussi ce dépôt de george hotz, qui est assez intéressant.
    https://github.com/geohot/fromthetransistor

    • Au début, je n’étais pas sûr de ce que je regardais.
      Il n’y a pas de matériel, seulement un plan général pour un cours hypothétique, mais les premiers commits rendent les choses un peu plus claires.
      « Je l’ai écrit il y a quelques années et je voulais le mettre en ligne. Recruter est difficile, une grande partie de l’enseignement moderne de l’informatique est vraiment médiocre, et il est trop difficile de trouver des gens qui comprennent la pile informatique moderne à partir des premiers principes. Peut-être qu’un jour, si j’ai de nouveau 12 semaines libres, je le proposerai comme cours à suivre chez soi. Moi aussi, j’ai envie de m’amuser. »
    • Je trouve amusante l’idée que l’enseignement moderne de l’informatique serait médiocre.
      En licence, je n’ai pas fait CS mais du génie informatique, et nous avons couvert environ 80 % des sujets de cette liste.
      J’ai suivi plusieurs cours de Verilog et de systèmes d’exploitation, et nous avons aussi beaucoup travaillé avec des microcontrôleurs/FPGA.
      Le moment fort, de loin, a été de construire un CPU en Verilog puis d’écrire l’assembleur/le compilateur.
      C’était un cursus difficile, mais en obtenant mon diplôme j’avais l’impression de comprendre assez bien toute la pile.
      Peut-être qu’il ne connaît tout simplement pas très bien le génie informatique.
  • Je me demande si le préquel, « sand2nand », serait aussi possible en projet DIY.

  • J’ai suivi ce cours un peu par curiosité quand je travaillais comme analyste de données, et il a déclenché ma reconversion professionnelle.
    C’est vraiment un excellent cours ; si vous avez le temps, je vous conseille vivement de le faire.

    • Félicitations.
      Je me demande si vous avez bifurqué vers un parcours plus orienté programmation bas niveau.