The knowledge acquired in this lecture is a prerequisite for the modules “Software Engineering,” “Computer Structures and Operating Systems”, “Computer Science in depth”, “Project Seminar”, and the Bachelor thesis. The module presupposes basic programming and mathematical skills as conveyed in the modules “Programming” and “Mathematics for Economists”. Data structures specify the elementary layout variants of data in (main and secondary) memory of computers. Their key aspects concern creation, usage, and maintenance of the respective structure. Furthermore, they are central to the design of various algorithms, which form the foundation of various applications in computer science. In this lecture, a representative selection of data structures (such as lists, trees, heaps, graphs, stacks, queues, hash structures) as well as fundamental algorithms (such as searching and sorting, routing in graphs, tree algorithms, string matching) are presented. Essential aspects are, on the one hand, the development of analysis and evaluation techniques of algorithms and, on the other, the shaping of the ability to discriminate between “efficiency” and “inefficiency.” The latter paves the way towards so-called NP-complete problems and their approximate treatment. Besides the lecture, exercises are offered. Students are aware of fundamental algorithms to make best use of data structures.

Learning outcomes

Academic: Evaluation, selection, and application of suitable data structures and algorithms for given scenarios. Soft skills: Independent and team work to discuss and solve algorithmic problems. Presentation of devised solutions in small groups.
Number of credit hours per week 6
Course eligibility Compulsory
Presence of students On-campus