Course overview#

Computational and data-driven work is increasing popular in all areas of academia, including linguistics. This course, aimed at first-year students of General Linguistics and Computational Linguistics, aims to provide a foundation in programming relevant for the language sciences. The main motivation is to convey how to think algorithmically, like a computer scientist would, by breaking complex problems into smaller sub-units of tasks, possibly with an eye to making recurrent chunks of operations generally reusable (functional abstraction).

Towards this goal, the courses introduces Python, covers the basics of the language, and shows how it can be used in common tasks in linguistic research, such as in text processing, data wrangling, or plotting.

Further resources#

There are many introductions to programming in general and to scientific programming in Python already. Here are some recommendable open access resources:

If you are interested in a general perspective on how thinking algorithmically has influenced our modern lives, consider the book Algorithms to Live By by Brian Christian and Tom Griffiths. For the absolute beginner to writing structured instructions for a computer, you might also consider a gamified approach and play around with stuff like Tynker.

Acknowledgements#

This web-book was started by Juliane Schwab, and extended by Michael Franke and Todd Snider. The material is based on course materials by Johannes Dellert and Gerhard Jäger.