Literature and Resources
Good books and resources to read
This section provides a curated list of books and resources to enhance your understanding of algorithmic thinking and programming. Each recommendation includes a brief description to help you choose the most suitable resources for you.
Algorithmic Thinking
Books
- Christian, B., & Griffiths, T. (2016). Algorithms to live by: the computer science of human decisions. First international edition. New York, Henry Holt and Company.
- A book that inspired this lecture and will give you a good intuition for the principles of algorithmic thinking and how they can be applied to solve problems in everyday life.
- Zingaro, D. (2024) Algorithmic thinking, 2nd edition: Unlock your programming potential. AU: No Starch Press.
- A book that introduces you to different algorithms and their reasoning. Written without any pseudocode, but with a lot of examples and explanations.
Python
Books
- Downey, A. B. (2024). Think Python: How to think like a computer scientist (Third edition). O’Reilly.
- A great book to start with if you have no experience with programming.
- Link to free online book
- Downey, A. B. (2023). Modeling and Simulation in Python. No Starch Press.
An interesting book for those who want know more about simulations in Python.
VanderPlas, J. (2016). A whirlwind tour of Python (August 2016, First edition). O’Reilly Media Inc.
- A very good and short book to get a quick overview of the most important features of Python if you already have some experience with programming.
- Link to the free online version
Elter, S. (2021). Schrödinger programmiert Python: Das etwas andere Fachbuch (1. Auflage). Rheinwerk Verlag.
- A book that is unfortunately only available in German, but a very good and comedic start for beginners with lots of illustrations, examples and exercises. It is only available in print.
Matthes, E. (2023). Python crash course: A hands-on, project-based introduction to programming (3rd edition). No Starch Press.
- A great book to learn Python with a hands-on approach. Highly recommended even for beginners but only available to buy.
Resources
- Daily Dose of Data Science
- A website and a newsletter with lots of easy-to-digest resources to improve your skills in Data Science.
General
Books
- Wilke, C. (2019). Fundamentals of data visualization: A primer on making informative and compelling figures (First edition). O’Reilly Media.
- A book that is highly recommended to understand the principles of data visualization and how to create effective visualizations.
- Link to the free book website
- Thomas, D., & Hunt, A. (2019). The pragmatic programmer, 20th anniversary edition: Journey to mastery (Second edition). Addison-Wesley.
- A fantasticbook to understand the principles of software development and how to create effective software.
Resources
- Quarto
- A static website generator that is very powerful and flexible. Used to create the slides and the website for the course.
- Cursor
- A code editor based on VS Code that is very powerful and flexible. It uses AI to help you write code.
- Zed
- A young and lightweight code editor that is very fast and lightweight with built-in collaboration and AI features.
- Advent of Code
- A wonderful website with daily challenges during the christmas time. Highly recommended to playfully improve your skills.
- Tiny Python Projects
- Interesting and fun projects to programm in order to improve your programming skills.
- Github
- The largest provider for git repositories owned by Microsoft. A lot of open source projects are hosted here and you can read the code.
- Codewars
- A platform to improve your coding skills by solving challenges. You can compete with others, see how other people solved the challenges and read and learn from the code.
- Cheat-Sheets
- Fantastic resource with cheat sheets for the book “Python Crash Course” by Eric Matthes. You can use these to quickly look up syntax and functions.
- ortools
- Google’s optimization tools based on metaheuristics. Include options for routing as well!