Introduit les fondamentaux de l'ingénierie logicielle, couvrant le traitement de l'instruction, les algorithmes, les langages de programmation, les abstractions, les tests, la sécurité et l'open source.
Couvre les composants d'un processeur, les classifications ISA, des ISA spécifiques comme MIPS, des exemples de langage de montage, et l'importance de la régularité de l'instruction automatique.
Explore le flou, les oracles de bogues, les revues de codes et les techniques de test automatisé, soulignant l'importance de la désinfection pour détecter les défauts.
Couvre les fondamentaux des processeurs, de la logique numérique à l'exécution de programme, y compris les composants comme ALU, fichier de registre, et la logique de contrôle.
Explore les techniques de test logiciel avancées, y compris les tests basés sur les propriétés, pour assurer l'exactitude du code et améliorer la qualité du logiciel.
Couvre l'architecture du processeur, l'évolution des performances, les algorithmes vers la transition des ordinateurs, les registres, les instructions, l'unité arithmétique et la gestion de la mémoire.
Explore la gestion des défauts, des stratégies d'essai et des défis en matière de qualité des logiciels, avec des exemples du monde réel et des études de cas.
Couvre la pipelining dans l'architecture informatique, en mettant l'accent sur son rôle dans l'amélioration des performances grâce à un parallélisme au niveau de l'instruction et en abordant les défis associés.
Couvre la planification dynamique dans les processeurs, en se concentrant sur l'exécution dans le désordre et la gestion efficace des dépendances d'instructions.
Explore des techniques de test logiciel avancées, y compris les tests basés sur les propriétés et diverses formes de fuzzing, pour tester efficacement des systèmes complexes.