A cura di @Johnny Banana.
Benvenuti nel nuovo angolo dedicato a tutti gli autodidatti di Hookii!
Questo spazio è pensato come una sorta di gruppo di studio per seguire insieme corsi online suggeriti dagli utenti. L’idea è quella di pubblicare una lezione per volta e sfruttare i commenti per scambiarsi pareri, informazioni, spiegazioni e risultati degli esercizi.
Il corso inaugurale insegna a costruire un computer partendo da zero (per giocarci a Tetris).
L’obiettivo delle lezioni è consentire agli studenti di comprendere “fino alle ossa” come funzioni davvero un computer. Il corso ruota infatti intorno alla realizzazione di un pc completo e funzionante, hardware e software, partendo dai principi fondamentali e dal “mattone” più semplice possibile, cioè una porta logica chiamata NAND con quattro stati di input-output.
Cominciamo con questa piccola timida porta NAND, e guidiamo gli studenti attraverso un’elaborata sequenza di progetti durante i quali, per gradi, costruiscono un chip set, una piattaforma hardware, un assembler, una macchina virtuale, un sistema operativo di base e un compilatore per un linguaggio semplice, tipo Java, che chiamiamo “JACK”. Gli studenti celebrano la fine di questo tour de force usando JACK per scrivere tutta una serie di giochi come Pong, Snake e Tetris.
Le lezioni sono in inglese, con sottotitoli disponibili (sempre in inglese).
Non è richiesta alcuna precedente competenza in informatica o elettronica.
È possibile seguire il corso gratuitamente su Coursera, oppure tramite una playlist su YouTube.
Ulteriori approfondimenti sono disponibili sul sito ufficiale del progetto, nand2tetris.org
Questa prima lezione comprende due moduli.
Nel modulo 0 (5 video per 24 minuti complessivi) viene presentata l’intera tabella di marcia del corso, sono descritti sommariamente gli strumenti che verranno impiegati ed è fornita una panoramica del progetto.
In a nutshell. Course introduction and overview, the roles of abstraction and implementation in systems design, the road ahead.
Si rimanda alla pagina di Informazioni generali sul corso su Coursera per una spiegazione più dettagliata.
Nel modulo 1 (8 video per 120 minuti complessivi) si comincia a fare sul serio:
– vengono introdotti i principi della logica booleana;
– viene illustrato il linguaggio HDL;
– viene presentato il simulatore utilizzato durante tutto il corso;
– vengono descritte alcune porte logiche di cui è richiesta la realizzazione;
– si risponde alle domande più comuni poste dagli studenti.
In a nutshell. We will start with a brief introduction of Boolean algebra, and learn how Boolean functions can be physically implemented using logic gates. We will then learn how to specify gates and chips using a Hardware Description Language (HDL), and how to simulate the behaviour of the resulting chip specifications using a hardware simulator. This background will set the stage for Project 1, in which you will build, simulate, and test 15 elementary logic gates. The chipset that you will build this module will be later used to construct the computer’s Arithmetic Logic Unit (ALU) and memory system. This will be done in modules 2 and 3, respectively.
Key concepts. Boolean algebra, Boolean functions, gate logic, elementary logic gates, Hardware Description Language (HDL), hardware simulation.
Il compito finale, descritto in dettaglio nei video, consiste nella realizzazione di 15 chip. Le istruzioni sono riassunte in questa pagina.
I materiali a supporto del modulo sono:
- Nand2Tetris Software Suite: il software sviluppato per le esercitazioni
- Il Capitolo 1 del libro “The Elements of Computing Systems” su cui si basa il corso
- L’Appendice A Hardware Description Language (HDL) dello stesso libro, da usare come riferimento tecnico
- L’HDL Survival Guide, sempre come riferimento tecnico
- Una sezione FAQ, disponibile su Coursera
Immagine da Tambako the Jaguar.
Commenta qui sotto e segui le linee guida del sito.