In this course students learn the basics of programming, algorithmic thinking and the Python language. After finishing this course you will:
- be able to analyse problems and break them down into steps that a computer can execute
- have a basic knowledge of Python allowing you to further develop these skills by applying them in other courses and projects
- know how and where to find existing Python tools and problem solutions and figure out how to use/alter them for your own needs
Programming skills are becoming an important part of the scientific toolbox. Many linguistic studies contain more data than is feasible to edit and process by hand and machine learning is rapidly improving on many tasks like translation, parsing and speech recognition. While there are user friendly software kits like SPSS, the best thing about programming is not being limited to tools that already exist. Being able to write your own scripts and adapt those of your fellow scientist is much more flexible and powerful.
Python is one of the most widely used programming languages in both science and industry. It is so popular because it is open source (it is free and anyone can add/edit/improve whatever they need) and because it is available on many operating systems. In this course you will learn the basics of Python programming and algorithmic thinking: the process of converting the problem or task you want to solve into clear steps that can be executed by your computer. The course consists of lectures combined with weekly lab sessions and assignments to put the lecture into practice. The material and assignments will focus on skills that are relevant for linguistic/language technology research such as processing text and audio data, visualisation techniques and using Python to analyse your data.
During the course you will learn about the basic data structures and control flows of Python through the assignments, but perhaps just as important are the skills to find and solve problems in your code and knowing where and how to look for solutions to your problems; a smart programmer never reinvents the wheel if the solution is somewhere on the web.