Students can design efficient and compact data structures. They are capable of implementing custom, domain-specific data structure variants and of synchronizing them for multi-core processors in a scalable fashion.
Description
Data structure engineering is the process of designing and implementing in-memory and out-of-memory data structures to support the efficient storage, organization, and retrieval of data. On modern hardware a low asymptotic complexity alone does not guarantee high performance; one must also take features of today's processors and storage technologies into account. The course first introduces the necessary hardware background, before studying different data structures such as hash tables, search trees, and tries and how to optimize them for modern hardware.
Prerequisites
IN0007 Fundamentals of Algorithms and Data Structures (recommended)
IN0004 Introduction to Computer Organization and Technology - Computer Architecture (recommended)
Knowledge of low-level language, e.g., C/C++, Rust