LAC: Language and The Computer

Francis Bond: 2010, 2011, 2012, 2013, 2015, 2017, 2021, 2023, 2024s, 2024w, 2025s.
Michael Wayne Goodman: 2019, 2020.

​Traditionally linguistic analysis was done largely by hand, but computer-based methods and tools are becoming increasingly widely used in contemporary research. This course provides an introduction to skills and resources that can assist the linguist, or indeed anyone, in performing fast, flexible, and accurate quantitative analyses. Students will learn a programming language (Python) along with techniques for processing human language data. No previous programming experience is required: we will teach you the basics of programming and computational linguistics along with some good software engineering practices.

Course page (here); Source on Github

Monday 16:45-18:15, Room 2.39, tΕ™. Svobody 26, 779 00 Olomouc

Course Outline

Week:
Date
Content Data Structures Readings Projects
1:
02-10
Why do NLP? Why Python? Setting up Colab and some simple data-types string PCC 1 & 2, πŸ“ Cheat Sheet, πŸ“ Cheat Sheet BW
2:
02-17
Introducing and Working with Lists list, tuple PCC 3 & 4, πŸ“ list, πŸ“ list BW
DiP3 2.4

3:
02-24
If Statements boolean PCC 5, πŸ“ if/while, πŸ“ if/while BW
4:
02-24
Dictionaries, User Input and While Loops dictionary, set PCC 6 & 7, πŸ“ dict., πŸ“ dict. BW
5:
03-03
Functions PCC 8, πŸ“ functions, πŸ“ functions BW
6:
03-10
Files and Exceptions PCC 10, πŸ“ files/exceptions, πŸ“ files/exceptions BW Project 1
Reading Week
7:
03-31
Testing Your Code
PCC 11,πŸ“ testing, πŸ“ testing BW
8:
04-07
Regular Expressions regex Interactive RE,
Wikiversity Python Programming/RegEx
Project 1
due Apr 11 24:00 CET
10:
04-08
Wordnet
11:
04-14
Plotting

9
04-21
Tokenization No lecture
12:
04-28
Feedback, Review/catch up Handy Summary of Python and NLP Concepts
13:
05-05
Final In-Class On-Line Open-Book
Programming Challenge
15:00–19:00, room 3.28
later for one student
Project 2
due Jun 30 24:00

Textbooks and Tools

Assessment and Solutions to Problems

Evaluation Criteria (same for all projects)

Assessment problems are generally open ended --- it is not expected that the student can solve them fully: the goal is to see how they approach the problem and understand it.

A note on using AI (such as ChaGPT or Claude)

Research shows (Shein 2024) that using AI to help code allows you to solve problems faster, but not to remember how to do it. The goal of this course is to learn the foundations of programming, you will retain them better if you solve the problems on your own.

Once you know more about how to program, you can and should use AI to help you. I do, and it is helpful, but it makes mistakes that a human wouldn't (or shouldn't). For example, I asked it to split data into 10 roughly equal bins, which it did, but it only returned nine of them! I noticed, because I could check the code and understand the output, ... That is what this course will teach you.


Course materials were originally heavily inspired by clt231: Introduction to Natural Language Processing at the University of Helsinki. Thanks to Graham Wilcock for letting us use them.

I will try not to make things too hard (cartoon from Abtruse Goose)

Instead this class should be like this (cartoon from XKCD)

Francis Bond <bond@ieee.org> <francis.bond@upol.cz>
Home page