VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Computer Science II
Last Updated: 2026-02-05 16:37:57
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)
- Main link
- Vorlesungshomepage
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.
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
-
-
Course Units for Additional Admission Requirements (The courses below are only available for MSc students with additional admission requirements.)
-
-
-
Course Units for Additional Admission Requirements (The courses below are only available for MSc students with additional admission requirements.)
-