Computational Thinking (HS 2023)
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.
This course follows the flipped classroom paradigm. You (the student) will self-study all important concepts by
- Reading a script chapter
- Watching a few short video clips
- Solving the exercises
We have weekly paper exercise sessions to learn all the important concepts, with questions on the level of exam questions.
- Weekly paper exercises are managed by Lioba Heimbach
- In each exercise session the assistant is going to recap of the relevant parts of the script/videos
- Subsequently there will be free time to solve the exercises with a helpful assistant being present
- You can choose any of the three session (room, zoom, or recorded) below, no registration needed
For each topic, the whole class meets every two weeks on Thursday. Each class meeting is organized as follows:
- We are going to have a quiz on the current subject
- And you can ask remaining questions about the subject
- These general meetings are happening only in semester weeks 1, 3, 5, 7, 9, 11, 13 and 14
- The class meetings are organized by Roger Wattenhofer, on Thursday 12-2 in ETF E1
- The class meetings are going to be recorded: Recordings
Students can win a 1/4 bonus grade for the exam
- In order to get the bonus, you must answer at least 60 quiz questions correctly (out of a total of 120 quiz questions throughout the whole semester).
- Bonus points can only be won by physically attending the class meeting every two weeks.
- Here you can see whether you are on track to get the bonus.
- If you do not get the bonus, but you have a good excuse why you should get it (e.g., doctor's note, military service, inherit bonus from previous year), please send an email to Susann Arreghini.
- Thursday, 21.9.2023: The first class meeting. Please study the Python Cheat Sheet before this meeting, so that you can score high in the first quiz.
- The exercises start right after the first class meeting, i.e., on Friday, 22.09.2023.
- The exercise on 03.11.2023 will not take place, we will publish a recording ahead of time.
- Thursday, 17.11.2023: We have updated the notebook for Exercise 9.
- The exam questions are in English, answers can be in German, English, or a combination of both
- You are allowed to bring any written material you like (lecture notes, books, personal notes,...), but no electronic devices whatsoever (no calculator, phone, laptop, headphones,...).
- The exam will last 120 minutes and consist of 120 points
- Here is an overview of what you can expect at the exam
- Old exam questions (with solutions): HS 2022, FS 2022, HS 2021, FS 2021, HS 2020