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

227-0014-20L 4 Credits BSC D-ITET
You're viewing possible stale or outdated data. Please check the latest semester for more up-to-date information.

Computational Thinking

Lecturers & Examiners: Prof. Dr. Roger Wattenhofer
VVZ CR 1.0

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

Abstract

We learn: algorithmic principles, dynamic and linear programming, complexity, electronic circuits, P vs. NP, Turing machines, reductions, cryptography, zero-knowledge proofs, data organization, dictionaries, hashing, databases, SQL, machine learning, regression, clustering, deep neural networks. We will use Python as a programming language. There will be paper and programming exercises every week.

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. 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. To give just one more example: How can we design the best electronic circuit for a given problem? In this class, we study various problems together with the fundamental theory of computation. The weekly lectures will be based on blackboard discussions and coding demos, supported by a script and coding examples. 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, on paper and in Python.

Resources

Learning Materials (Links)

General Information

Language
English
Levels
BSC
Frequency
Yearly recurring

Examination

Type
session examination
Mode
written 120 minutes
Aids
open book
Students can earna 1/4 bonus grade for the exam, by- being in the top 3 in a single quiz,- or by being part of the winning team (up to 3 students) of a single programming challenge,- or by having actively participated in at least half the quizzes and programming challenges throughout the semester.

Course Components

Type Title Time & Place Hours
lecture Computational Thinking
  • Thu 12:15-14:00 (ETF E 1)
2 h weekly
exercise Computational Thinking
  • Mon 12:15-13:00 (ETZ F 91)
  • Mon 13:15-14:00 (ETZ F 91)
  • Tue 09:15-10:00 (HG E 33.3)
  • Fri 10:15-11:00 (ETZ G 91)
  • Fri 11:15-12:00 (ETZ G 91)
1 h weekly

Offered In