Explore la conception de mémoire cache, les succès, les ratés et les politiques d'expulsion dans les systèmes informatiques, en mettant l'accent sur la localité spatiale et temporelle.
Couvre la définition d'un langage de programmation simple et sa sémantique à grande échelle, y compris les expressions arithmétiques et les commandes impératives.
Explore la conception d'algorithmes avec récursion et programmation dynamique, couvrant des concepts comme les Tours de Hanoi et des solutions efficaces.
Explore l'évaluation des performances de la mémoire cache, couvrant les points de repère, la loi d'Amdahl, les performances du processeur, la hiérarchie de la mémoire, les optimisations de cache et les caches multiniveaux.
Introduit la programmation dynamique, en se concentrant sur l'économie de calcul en se souvenant des calculs précédents et en l'appliquant pour résoudre efficacement les problèmes d'optimisation.
Couvre la décomposition fonctionnelle avec la correspondance des motifs dans Scala pour accéder aux données hétérogènes dans une hiérarchie de classes.
Explore des sujets avancés d'ingénierie logicielle et de traitement du signal en utilisant des listes paresseuses pour construire un synthétiseur sonore à partir de zéro.