To my linguistics homepage

LING/C SC/PSYC 438/538
Computational Linguistics
Fall 2026

This is a introductory course in computational linguistics at an advanced level. No pre-requisites for graduate students, we will learn the rudiments of programming and the theoretical underpinnings of grammar systems from scratch.

Reference Textbook

Optional: Speech and Language Processing 2nd edition, by D. Jurafsky and J.H. Martin, Prentice-Hall 2008. Or 3rd edition PDF.

Software

All software used in this class will be freely available.
We will use Python, Perl and SWI-Prolog as programming languages.
The instructor reserves the right to ask students to install additional software necessary to do some homework exercises.

Instructor: Sandiway Fong sandiway@arizona.edu
Office: Douglass 308 (send email for an appointment or take a chance and drop by before class)

Administrivia

Location Social Sciences, Rm 411
Time Tuesdays/Thursdays 3:30PM - 4:45PM

Syllabus

See lecture1 slides.

Lecture Notes

Available in Adobe PDF and Microsoft Powerpoint .pptx formats.

August

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
8/25 lecture1.pdf lecture1.pptx 39 Part 1: Viewer / Part 2: Viewer Administrivia and Introduction. Syllabus.
Homework 1: read PDF of chapter 1 of textbook for Homework 3 next time.here.
Homework 2: Install Perl and Python.
Some notes on programming languages. AI and coding.
8/27 lecture2.pdf lecture2.pptx 36 Viewer Language and computers: openai/whisper, assistive technologies and some limits.
Recursive nature of language.
Introduction to natural language analysis: syntactic structure. Parser demos, ChatGPT.
Homework 3

September

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
9/1 lecture3.pdf lecture3.pptx 15 Viewer Homework 3 Review.
Guest presentation: Jeff Winkelman, Career Development & Employee Relations, Social & Behavioral Sciences
SBS Resume Building
9/3 lecture4.pdf lecture4.pptx 38 Viewer What is a Language Model: a look at text completion. English subject verb agreement. Oddities.
LLM: memorizing quotes. ChatGPT-2 to 5.
Beginning programming with Perl: focusing on proper use of quotes. QWERTY keyboard history. ChatGPT help.
world.perl / world.py
Homework 4: using GPT-2, Stanza and Berkeley Neural Parser.
9/8 lecture5.pdf lecture5.pptx 28 Viewer A note on submission dates
Homework 4 review and extensions: AI subword tokenization
A bit more on quoting.
Recommend installing WSL2 (Ubuntu) on Windows 11.
perlintro review: scalars and arrays.
9/11 lecture6.pdf lecture6.pptx 41 Viewer perlintro contd.
@ARGV array and some array operations.
Numeric and string equality. Coercion. Repetition. General looping: while, for, foreach. List range.
Useful string functions, including chomp and split. tr.
String length: bytes vs. characters (utf-8).
File I/O: open and <filehandle>.
Programs: myprog.perl / myprog.py
Program: read.perl
Example text file: falconheavylaunch.txt
Homework 5: two exercises.
Data files: 5letters.txt / 6letters.txt / 7letters.txt
9/15 lecture7.pdf lecture7.pptx 25 Viewer Homework 5 review. Scrabble word length statistics.
Worked Perl file I/O example. Split and summing the words. Word frequency table using hash tables.
Sorting in Perl, Python and on the command line.
Files: falconheavylaunch.txt
Terminal log: terminal7.txt
9/17 lecture8.pdf lecture8.pptx 30 Viewer Perl hash table recap and dict in Python. Anonymous arrays in Perl. Part of Speech dict example.
Homework 6 on spelling rules + disemvoweling.
Code: hw6template.perl
File: ppch1.txt (note: utf-8 character set)
9/22 lecture9.pdf lecture9.pptx 39 Viewer Homework 6 review.
Perl references. Perl Modules: CPAN. Date::Calc. cpanm command.
Python libraries timedate and locale.
Ungraded homework: install Lingua::EN::CMUDict, the CMU Pronouncing Dictionary.
File: dow.perl
9/24 lecture10.pdf lecture10.pptx 35 Viewer Ungraded Homework Review: Lingua::EN::CMUDict and Google AI!
Biased news reporting.
Homework 7: On media bias and headlines
Introduction to Perl regex.
9/29 lecture11.pdf lecture11.pptx 34 Viewer Homework 7 Review: on media bias and headlines
"The lines of code that changed everything"
Getting deeper into Perl regex:
Word boundaries \b, capture, backreferences, shortest vs. greedy matching, nondeterminism (backtracking).

October

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
10/1 lecture12.pdf lecture12.pptx 26 Viewer Homework 8: regex and the FinCEN Files.
More on Perl regex: Perl code inside a replacement string in s/pattern/replacement/!
Character and word frequency counting
Zipf's Law: Brown Corpus case study
File: 12thnight.txt
Homework file: download_transactions_map.csv (1.1MB)
10/6 lecture13.pdf lecture13.pptx 28 Viewer Homework 8 review.
Perl regex: lookahead, lookbehind.
Predicate argument structure: Framenet. Propbank.
10/8 lecture14.pdf lecture14.pptx 27 Viewer Ungraded Regex Homework
Stanford CoreNLP. Stanford dependencies and Universal Dependencies (UD). ChatGPT and syntax.
Relative clauses and Perl regex.
10/13 lecture15.pdf lecture15.pptx 30 Viewer Extra: ChatGPT 5 on the center-embedding cases
Regex recursion and center-embedding.
Prime number testing using Perl regex (backreferences).
Slides updated: 4:45pm
10/15 lecture16.pdf lecture16.pptx 22 Viewer Homework 10: regex recursion
Introduction to Finite State Automata (FSA).
Note: slides updated 4:40pm
10/21 lecture17.pdf lecture17.pptx 24 Viewer Homework 10 review
regex example: Einstein on xkcd simplewriter
FSA contd.: formal definition, Perl and Python implementations revisited.
e-transitions, and single vs. multiple start states.
Non-deterministic FSA (NDFSA). NDFSA to DFSA conversion.
File: fsa.perl
10/22 lecture18.pdf lecture18.pptx 15 Viewer Non-deterministic FSA (NDFSA). NDFSA to DFSA conversion again. Two worked examples.
Markov Chains. Case of Eugene Onegin.
Homework 11. Note: Q5 is not optional for 538.
File: Hayes 2013
10/27 lecture19.pdf lecture19.pptx 23 Viewer Homework 11 review.
Regular Languages and closure properties.
Turing Machines (TMs), a useful digression.
Programming a TM: +1, +2, doubling.
Terminal log: terminal19.txt
Slides updated: 4:50pm
10/29 lecture20.pdf lecture20.pptx 15 Viewer Example of a machine is (perhaps) easier to build than a regex.
The state bypass method: converting a FSA into a regex algorithmically
Homework 12

November

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint

December

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint


To my linguistics homepage
Last modified: Wed Oct 28 21:22:51 MST 2026