VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

252-0846-AAL 4 Credits MSC D-BAUG
You're viewing possible stale or outdated data. Please check the latest semester for more up-to-date information.

Computer Science II

Enrolment ONLY for MSc students with a decree declaring this course unit as an additional admission requirement. Any other students (e.g. incoming exchange students, doctoral students) CANNOT enrol for this course unit.
VVZ CR n/a

Last Updated: 2026-02-05 16:08:26

Abstract

This course provides the foundations of programming and working with data. Computer Science II particularly stresses code efficiency and provides the basis for understanding, design, and analysis of algorithms and data structures. In terms of working with data, foundations required for understanding experimental data and notation and basic concepts for machine learning are covered.

Objective

Based on the knowledge covered by the lecture Computer Science I, the primary educational objective of this course is the constructive knowledge of data structures and algorithms. After successfully attending the course, students have a good command of the mechanisms to construct a program in Python and to work with multidimensional data using Python libraries. Students particularly understand how an algorithmic problem can be solved with a sufficiently efficient computer program. Secondary educational objectives are formal thinking, the power of abstraction, and appropriate modeling capabilities.

Content

Introduction of Python: from Java to Python, advanced concepts and built-in data structures in Python; parsing data, operating on data using Numpy and visualization using Matplotlib; linear regression, classification and (k-means) clustering, mathematical tools for the analysis of algorithms (asymptotic function growth, recurrence equations, recurrence trees), classical algorithmic problems (searching, selection and sorting), design paradigms for the development of algorithms (divide-and-conquer and dynamic programming), data structures for different purposes (linked lists, trees, heaps, hash-tables). The relationship and tight coupling between algorithms and data structures is illustrated with graph algorithms (traversals, topological sort, closure, shortest paths). In general, the concepts provided in the course are motivated and illustrated with practically relevant algorithms and applications. Exercises are carried out in Code-Expert, an online IDE and exercise management system. Programming language used in this course is Python.

Resources

Lecture Notes

The slides will be available for download on the course home page.

Literature

T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms , 3rd ed., MIT Press, 2009

Learning Materials (Links)

General Information

Language
English
Levels
MSC
Frequency
Semesterly recurring

Examination

Type
session examination
Mode
written 120 minutes
Aids
Sie dürfen maximal 4 A4-Blätter mit in die Prüfung nehmen.Inhaltliche und formale Anforderungen (Text, Bilder, ein-/doppelseitig, Ränder, Schriftgrösse, etc.) bestehen nicht. Elektronische Geräte bzw.digitale Unterlagen sind nicht erlaubt.You may take up to 4 A4 sheets into the exam. There are no constraints regarding content and layout (text, images, single/double page, margins, font size, etc.). Electronic devices and digital documents are not allowed.
During the semesters when the physical course Informatik II 252-0846-00S is offered, bonus grade points can be achieved also for this course under the same conditions as specified for the physical course.The exam will most likely be performed in hybrid form (on paper and at the computer).

Course Components

Type Title Time & Place Hours
revision course / private study Computer Science II
Self-study course. No presence required.
No time listed 120 h semesterly

Offered In