Explore les défis de programmation, les techniques de débogage, les tests de logiciels et les pratiques de sécurité dans le développement de logiciels.
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 l'abstraction de données en nombres rationnels, y compris la vue du client, l'auto-référence, les conditions préalables, les assertions, les constructeurs et les marqueurs de fin.
Explore les types de fonctions implicites et leur application dans un système de gestion de séance de cours, en discutant du compromis entre les types et les termes dans les paramètres implicites.
Couvre les principes de programmation modulaire, en se concentrant sur la gestion de la complexité du projet grâce à la structuration efficace du code et à la gestion des dépendances.
Explore la synthèse automatique de la synchronisation correcte et efficace dans les programmes, en mettant l'accent sur la suppression de l'atomicité redondante et l'ajout de métadonnées de synchronisation.
Couvre les méthodes itératives pour trouver des points fixes de fonctions, en se concentrant sur les calculs de racine carrée et la puissance des fonctions en tant que valeurs de retour.
Explore l'encapsulation et l'abstraction dans la programmation orientée objet à travers une étude de cas Tic-Tac-Toe, mettant en évidence les avantages de l'encapsulation des données et de l'accès contrôlé.
Couvre l'importance et les défis des systèmes d'exploitation, leur omniprésence, leur impact sur les programmes et leur rôle d'illusionnistes et d'arbitres.
Explique comment les systèmes d'exploitation créent l'illusion de ressources dédiées et infinies grâce à la virtualisation et à l'abstraction des processus.