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 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.
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 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 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.
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.
Explore les stratégies de test automatisées, y compris la couverture du code et diverses techniques de test, pour assurer un développement logiciel fiable.
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.