The aim of this course is to develop the skills necessary for solving simple programming tasks and for knowing where to look when addressing more complex tasks. The programming language used will be Python, but the overall aim is to understand basic programming concepts to such an extent that the acquired skills can be extended to other languages relatively easily.
We will approach programming in the spirit of Niklaus Wirth, who invented the slogan “Programming = algorithms plus data structures”. We will think of programs as tools for creating a virtual world (in the form of data structures) and performing operations in that world (using algorithms). Furthermore, we follow Donald Knuth’s principle, who emphasized that programs are written for people rather than machines, therefore the main virtues of a program are readability and modularity.
Since we will view programming as more of a practical skill than a theoretical issue, we will proceed in circles: the essentials of data structures and algorithms, then progressively more details of data and more details of programs and program structure.
Students are expected to come to the seminars with their own laptop (we can arrange borrowing one if need be, but we have to know that in advance). The students are kindly asked to download and install Python and the IDLE editor in advance. (Python can be downloaded here (Links to an external site.), and instructions on how to install IDLE can be found here (Links to an external site.), for example.) You may have to install the Tkinter graphics library if your Python distribution does not include it.