Distributed Computing
ETH Zurich

Computational Thinking (HS 2021)

Course catalogue Previous year

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 and social developments. Computational thinking is more than programming a computer -- rather it is thinking in abstractions. Consequently, computational thinking has become a fundamental skill for everyone, not just computer scientists. For example, designing an electronic circuit relates directly to computation. Mathematical 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 learn function parameters. Thanks to clever heuristics, machines now appear to be capable of solving complex cognitive tasks. In this class, we study all these and more 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 Lecture Notes Exercises Solutions 3rd Party Tutorials
Introduction
22.09.2021
PDF
Python Cheat Sheet
Python Basics Notebook
From C++ to Python
Chapter 1
Algorithms
22.09.2021
29.09.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 1 PDF
Exercise 1 Notebook
Exercise 2 PDF
Exercise 2 Notebook
Solutions 1 PDF
Solutions 1 Notebook
Solutions 2 PDF
Solutions 2 Notebook
Recursion and Backtracking [p]
Dynamic Programming
Linear Programming [b][s]
Chapter 2
Complexity
06.10.2021
13.10.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 3 PDF
Exercise 3 Notebook
Exercise 4 PDF
Exercise 4 Notebook
Solutions 3 PDF
Solutions 3 Notebook
Solutions 4 PDF
Solutions 4 Notebook
P vs. NP [p]
3-SAT ≤ Mario [p][s]
Load Balancing Approximation [s]
Chapter 3
Cryptography
20.10.2021
27.10.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 5 PDF
Exercise 5 Notebook
Exercise 6 PDF
Exercise 6 Notebook
Solutions 5 PDF
Solutions Notebook
Solutions 6 PDF
Solutions Notebook
Man in the Middle [p]
Zero Knowledge Proofs [p]
Chapter 4
Data and Storage
03.11.2021
10.11.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 7 PDF
Exercise 7 Notebook
Exercise 8 PDF
Exercise 8 Notebook
Solutions 7 PDF
Solutions 7 Notebook
Solutions 8 PDF
Solutions 8 Notebook
SQL Select Demo
SQL Murder Mystery [p]
SQL Injection [p][a]
Chapter 5
Machine Learning
17.11.2021
24.11.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 9 PDF
Exercise 9 Notebook
Exercise 10 PDF
Exercise 10 Notebook
Solutions 9 PDF
Solutions 9 Notebook
Solutions 10 PDF
Solutions 10 Notebook
Linear Regression Formula
ML Overview [b][p][s]
Chapter 6
Neural Networks
01.12.2021
08.12.2021
PDF 1:1
PDF 2:1
Notebook
Exercise 11 PDF
Exercise 11 Notebook
Exercise 12 PDF
Exercise 12 Notebook
Solutions 11 PDF

Solutions 12 PDF
Solutions 12 Notebook
Neural Networks [p][s]
Chapter 7
Computability
15.12.2021
22.12.2021
PDF 1:1
PDF 2:1
PCP Video
Exercise 13 PDF
Exercise 13 Notebook
Exercise 14 PDF
Solutions 13 PDF
Solutions 13 Notebook
Solutions 14 PDF
Undecidable [p]
Unsolvable [p]