Distributed Computing
ETH Zurich

Computational Thinking (HS 2020)

Course catalogue

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.

News

Exam


Lecture Material

Chapter Title Lecturer Lecture Notes Exercises Solutions Responsible Assistant Recordings
Introduction
16.09.2020
Roger Wattenhofer PDF 1:1
PDF 2:1
Python Basics
Chapter 1
Algorithms
16.09.2020
23.09.2020
Roger Wattenhofer PDF 1:1
PDF 2:1
Notebook
Exercise 1 Notebook
Exercise 2 PDF
Exercise 2 Notebook
Solutions 1 Notebook

Solutions 2 Notebook
Henri Week 1
Week 2
Chapter 2
Complexity
30.09.2020
7.10.2020
Roger Wattenhofer
Andras Papp
PDF 1:1
PDF 2:1
Exercise 3 PDF
Exercise 3 Notebook
Solutions 3 PDF
Robin
Andras
Chapter 3
Cryptography
14.10.2020
21.10.2020
Roger Wattenhofer
Chapter 4
Data and Storage
date TBD
Roger Wattenhofer
Chapter 5
Machine Learning
date TBD
Roger Wattenhofer
Chapter 6
Neural Networks
date TBD
Roger Wattenhofer
Chapter 7
Computability
date TBD
Roger Wattenhofer