VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Computational Thinking
Last Updated: 2026-06-01 11:31:01
Abstract
We learn: algorithmic principles, dynamic and linear programming, complexity, P vs. NP, approximation, reductions, cryptography, zero-knowledge proofs, relational databases, SQL, machine learning, regression, gradient descent, decision trees, deep neural networks, universal approximation, advanced layers and architectures, reinforcement learning, Turing machines, computability, and more.
Objective
Computation is everywhere, but what is computation actually? In this lecture we will discuss the power and limitations of computation. Computational thinking is about understanding machine intelligence: What is computable, and how efficiently? Understanding computation lies at the heart of many exciting scientific, social and even philosophical developments. Computational thinking is more than programming a computer, it means thinking in abstractions. Consequently, computational thinking has become a fundamental skill for everyone, not just computer scientists. For example, functions which can easily be computed but not inverted are at the heart of understanding data security and privacy. The design of efficient electronic circuits is related to computational complexity. Machine learning on the other hand has given us fascinating new tools to teach machines how to estimate functions. Thanks to clever heuristics, machines now appear to be capable of solving complex cognitive tasks. In this class, we study various problems together with the fundamental theory of computation. The course uses Python as a programming language. Python is popular and intuitive, a programming language that looks and feels a bit like human instructions. The lecture will feature weekly exercises. This course follows the flipped classroom paradigm. Students will self-study all important concepts by reading a chapter in the script, and by watching a few short video clips. The class meets every two weeks to answer questions, and for a quiz on the current topic.
Content
Computation is everywhere, but what is computation actually? In this lecture we will discuss the power and limitations of computation. Computational thinking is about understanding machine intelligence: What is computable, and how efficiently? Understanding computation lies at the heart of many exciting scientific, social and even philosophical developments. Computational thinking is more than programming a computer, it means thinking in abstractions. Consequently, computational thinking has become a fundamental skill for everyone, not just computer scientists. For example, functions which can easily be computed but not inverted are at the heart of understanding data security and privacy. The design of efficient electronic circuits is related to computational complexity. Machine learning on the other hand has given us fascinating new tools to teach machines how to estimate functions. Thanks to clever heuristics, machines now appear to be capable of solving complex cognitive tasks. In this class, we study various problems together with the fundamental theory of computation. The course uses Python as a programming language. Python is popular and intuitive, a programming language that looks and feels a bit like human instructions. The lecture will feature weekly exercises. This course follows the flipped classroom paradigm. Students will self-study all important concepts by reading a chapter in the script, and by watching a few short video clips. The class meets every two weeks to answer questions, and for a quiz on the current topic.
Resources
Lecture Notes
The script is available here:https://disco.ethz.ch/courses/coti/
Learning Materials (Links)
- Main link
- Course Web Page
General Information
- Language
- English
- Levels
- BSC , MSC
- Frequency
- Yearly recurring
Examination
- Type
- session examination
- Mode
- written 120 minutes
- Aids
- open book
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Computational Thinking |
|
2 h weekly |
| exercise | Computational Thinking |
|
1 h weekly |
Offered In
-
-
5. Semester: Weitere Grundlagefächer des 3. Jahres (Studierende absolvieren mindestens zwei der zur Auswahl stehenden Weiteren Grundlagefächer. Empfehlungen zur Fächerwahl sind vorhanden unter )
-
-
-
Fachspezifische Vertiefung (Es müssen mindestens 20 KP aus den Deep Track Lerneinheiten absolviert werden. Überzählige KP können für Wahlfächer angerechnet werden.)
-
-
Vertiefungsfächer Earth Observation (Diese LE's können sowohl als Vertiefungsfach als auch als Wahlfach angerechnet werden.)
-
-
-