Insegno l'unico e unico corso di architettura informatica in un college di arti liberali. Il corso è richiesto per l'informatica maggiore e minore. Non abbiamo ingegneria informatica, ingegneria elettrica, altri corsi di hardware, ecc. Il mio obiettivo principale nel corso è che gli studenti comprendano fino a livello di gate come funzionano i computer, che credo imparino meglio attraverso un laboratorio hardware e non solo attraverso un libro di testo ( Computer Organization and Designdi Hennessy e Patterson). Il mio obiettivo secondario è quello di entusiasmarli per l'architettura informatica e aumentare la loro eccitazione per l'informatica. Prepararli direttamente per l'industria non è un obiettivo, anche se motivarli a studiare più architettura informatica. In genere, gli studenti non hanno avuto alcuna esperienza nella costruzione di qualcosa o in un corso di laboratorio a livello universitario. In genere, 10-15 studenti seguono il corso per semestre.
Ho insegnato il corso dal 1998 in un modo simile a come mi è stato insegnato architettura informatica ed elettronica digitale alla fine degli anni '80 al MIT: usando chip DIP TTL su breadboard alimentate. Al primo incarico di laboratorio hardware, gli studenti costruiscono un sommatore completo. Circa a metà semestre, iniziano a costruire un semplice computer con un set di istruzioni a 8 bit. Per ridurre il cablaggio, fornisco loro un PCB con alcuni componenti elettronici (due flip-flop D, due ALU LS 181 a 4 bit cablati insieme per fungere da ALU a 8 bit e un buffer a tre stati). Sul primo di questi laboratori, derivano i segnali (molto semplici) di controllo per i due formati di istruzione e costruiscono il circuito, inserendo le istruzioni sugli interruttori e leggendo i risultati dalle luci. Nel secondo dei laboratori, aggiungono un contatore di programmi (2 LS163) e una EPROM (chela mia domanda originale era, prima di passare a come dovrei insegnare l'architettura introduttiva). Nel laboratorio finale, aggiungono un'istruzione di ramo condizionale. Mentre gli studenti trascorrono una buona quantità di tempo a cablare e eseguire il debug, sento che è lì che avviene gran parte dell'apprendimento e gli studenti se ne vanno con un vero senso di realizzazione.
Le persone su questo forum mi hanno detto che avrei dovuto passare a FPGA, con cui non avevo mai lavorato prima. Sono un ingegnere informatico, non un ingegnere informatico, e ormai non frequento la scuola da un po ', ma sono in grado di imparare. Non sarei in grado di ottenere molti soldi ( forse qualche migliaio di dollari) per sostituire i nostri attuali trainer digitali. Abbiamo un solo analizzatore logico.
Dati i miei obiettivi e i miei vincoli, consiglieresti agli EE di attenermi al mio attuale approccio di passare a uno basato su FPGA? In quest'ultimo caso, puoi darmi qualche suggerimento sui materiali con cui educare me stesso?
Come richiesto, ecco un link al programma e agli incarichi di laboratorio .
Aggiunta: Sì, è anche un corso di logica digitale. Quando sono arrivato al mio college, gli studenti dovevano prendere un semestre di ciascuno di architettura informatica e logica digitale, e li ho combinati in un solo semestre. Certo, questa è una dichiarazione sul passato, non sul futuro.