Algorithms and Data Structures is a first course on fundamental data structures and algorithms. It covers theoretical analysis based on implementations in Python.
Introduction; concept of asymptotic analysis, big-Oh notation (GTG 3.3.1 and 3.3.2); typical growth functions (GTG 3.2); Basic examples: finding the maximum, prefix averages, three-way disjointness, element uniqueness (GTG 3.3.3); arithmetic progression (GTG, Proposition 3.3)
No class due to university function
Basic examples (ctd.); geometric and arithmetic progression revisited; fundamental techniques of proof (GTG 3.4), experimental analysis
Discusson of Exercise Sheet 1 - solutions; Recursion (GTG Chapter 4)
Recursion: using induction to prove operation counts; Low-level arrays, referential arrays, dynamic arrays; amortization (selected parts of GTG Chapter 5)
Discusson of Exercise Sheet 2 - solutions; Amortization revisited - shrinking dynamic arrays; further properties of array operations (GTG Chapter 5 ctd.)
Stacks and queues (GTG 6.1 and 6.2)
No class