HG2051 – Language and the Computer (AY2025-26)

Hiram Ring <hiram.ring@ntu.edu.sg>

Fridays, 9:30am-12:20pm (Sem1)

TR+28 (LHS-B2-05, The Hive)

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 to assist the linguist 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: you will learn the basics of programming and computational linguistics along with some good software engineering practices.

Schedule

Week Date Topic Notes
1 15 Aug What is Computational Linguistics? Why do it? Why use Python?
Computer Science basics
Setup, VS_Code
2 22 Aug Basic Types and Data Structures; Using Python to Count Things; Lists
What is AI?
3 29 Aug Assignment, Expressions, and Control; Strings
4 5 Sep Text Corpora and Conditional Frequencies [Student Union Day]
5 12 Sep Lexical Resources and WordNet
6 19 Sep Processing Raw Text
7 26 Sep Mid-review; Working with Software Projects
3 Oct Recess
8 10 Oct Algorithmic Thinking and Regular Expressions
9 17 Oct N-Grams and Collocations
10 24 Oct Part-of-speech Tagging Project 1 due, 11:59pm
11 31 Oct Classification
12 7 Nov Ethics, Language Models, and Software Libraries
13 14 Nov Review and Final Quiz
21 Nov Project 2 due, 11:59pm

Course Pages

Grading Criteria

This course is graded with continuous assessment as follows:

You may also get 1–5% extra credit (not exceeding 100% in the course) by submitting a contribution (e.g., code or documentation) to an open-source project. Contact me for details.

Resources

Acknowledgments

Much of the content for this course has been borrowed (with permission) from Michael Wayne Goodman and Francis Bond, who taught previous years. Below are some archives of the previous courses: