252-0833-00L Computer Science II
Semester | Spring Semester 2023 |
Lecturers | C. Cotrini Jimenez, R. Sasse |
Periodicity | yearly recurring course |
Language of instruction | German |
Comment | Only for Mechanical Engineering BSc (Programme Regulations 2022). |
Abstract | Computer Science II lays the foundation for understanding, designing, and analyzing algorithms and data structures. It also provides an overview of various programming concepts, such as functional programming and static and dynamically typed programming languages. |
Learning objective | Understanding of the design and analysis of basic algorithms and data structures, working with multidimensional data using Python libraries, and overview of various programming concepts. |
Content | Introduction of Python: from C++ to Python, advanced concepts and integrated data structures in Python; analyzing data, manipulating data with Numpy and visualizing with Matplotlib; linear regression, classification and (k-Means) clustering. Basic algorithms and data structures, design patterns for algorithms (induction, divide and conquer, dynamic programming), classical algorithmic problems (searching and sorting), data structures (search trees, heaps, union-find). Exercises are performed in the online IDE and exercise management system Code-Expert. |
Literature | Th. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011 Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein: Algorithmen - Eine Einführung, Oldenbourg, 2010 |
Prerequisites / Notice | Lecture 252-0832-00L Computer Science I or equivalent knowledge of programming with C++. |