The course gives an overview on basic concepts of data structures and general principles of algorithmic design. The general algorithmic paradigms will be examined based on the classical problems of searching, sorting and classical graph problems like shortest path or minimal spanning trees. Finally, the course will give an introduction to the general methodology of programming.

This course is centered around software design and systems development. We explore and apply the concept of object-oriented programming which is (still) the leading programming paradigm for extensive projects. In contrast to other programming paradigms like functional or declarative programming object-oriented programming languages model objects through their attributes and functionalities. This concept has proven convenient when modeling real-world problems. 




The course content is currently available here

Statistical core module for Data Science.