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.
  1. 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.

  • Link to the book

  • 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!