Computational Thinking with Python

Undergraduate (BSc) course, Utrecht University, School of Information and Computer Science, 2020

In this course we follow the description of computational thinking by Denning and Tedre (2019): Computational thinking is the mental skills and practices for (1) designing computations that get computers to do jobs for us, and (2) explaining and interpreting the world as a complex of information processes. That is why we have also added two (related) lines in this box:

  1. Designing: the Python programming language. Python is an “imperative” programming language written in science and industry is widely used to perform all kinds of small and large tasks, such as data and text analysis, visualization, for deep learning, and much more. There is a global community of users who create ‘modules’ for just about any task imaginable available, from music analysis to climate science.
  2. Explaining: we will discuss a number of parts of information retrieval, the field that is about the development of search technology. How can you lyrics, as well make images and music searchable? Which models and algorithms are involved used? How do you give a user the optimal answer to his/her search question? Both lines come together in the final assignment of the seminar: itself a simple one programming a search engine in Python.

===

Course Goals

  1. Programming in Python, using correctly the constructs and syntax of this language
  2. Computational thinking about information science problems
  3. Apply computational thinking in the field of information retrieval
  4. Break down problems into the individual steps required to solve them
  5. Find and use existing tools and modules to implement individual steps
  6. Implement a simple user interface
  7. Deliver tested, documented and maintainable Python code