Il corso di Architettura dei Calcolatori e Sistemi Operativi si divide in due parti principali. Nella prima parte si introducono le istruzioni macchina, il linguaggio assembler, e la loro traduzione da C, oltre alle tecniche di assemblaggio e collegamento. Si studiano i circuiti logici e l'algebra di Boole, con particolare attenzione alle funzioni combinatorie e ai circuiti come ALU, registri e memorie. Si approfondisce anche la microarchitettura del processore, inclusi concetti come pipeline e memorie cache. Nella seconda parte si affronta la programmazione di sistema con un focus su parallelismo, thread e programmazione concorrente. Si esplora la struttura e il funzionamento dei sistemi operativi, con argomenti come la gestione dei processi, la memoria virtuale, il file system e la gestione delle periferiche.