To my linguistics homepage

LING/C SC/PSYC 408/508
Computational Techniques for Linguists
Fall 2026

This is a introductory course to computers and general programming useful for linguists (and non-engineers). No background is assumed. Taught from the ground up with historical context, which will help to de-mystify many things, by a computer scientist who also thinks like a linguist, you will develop an understanding of why things are the way they are (spoiler: sometimes for backwards compatibility with things that have long disappeared from relevance, sometimes entirely by accident).

Topics include the useful fundamentals of Linux, the Terminal (Shell usage and programming), Python with NLTK (Natural Language Toolkit) and matplotlib (for charts/graphs), the dot language (for networks) and web technologies such as HTML, CSS, Javascript and Apache2.

In addition to homework exercises, a simple term project incorporating some technology introduced from the class is required. Students are encouraged to create a deliverable that incorporate material/data that they are interested in, e.g. for their graduate research, hobbies or other interests.

New! for this semester, we will discuss how to incorporate and leverage ChatGPT's ability (in the free version, without the Code Interpreter) to help rough out Python code.

Examples:

Textbook and Software

No textbook, no purchase of AI tokens is required. All reading material will be made available online. All software used in this class will be freely available.

Software

Students will be expected to have their own laptops and have administrator permissions to install apps for use.

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

Administrivia

Location Douglass, Rm 216
Time Tuesdays/Thursdays 2:00PM - 3:15PM (NOTE: new time!)

Syllabus

See lecture1 slides.

Lecture Notes

Available in Adobe PDF and Microsoft Powerpoint .pptx formats.

Lectures will be recorded using Panopto.

Preview! 1st lecture below.

August

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
8/25 lecture1.pdf lecture1.pptx 24 Viewer Administrivia (Syllabus) and Introduction:
Natural Language processing tools: SMT parser, Google n-grams, and the Natural Language Toolkit (NLTK).
The fundamental nature of computation: the Turing Machine, Busy Beavers example.
8/27 lecture2.pdf lecture2.pptx 27 Viewer Two kinds of computer language.
Binary and hexadecimal. Computer vs. Human Brain. Machine Language. Parallelism and supercomputers. Integers and 2's complement arithmetic. Binary Coded Decimal (BCD). Floating point numbers.
Homework 1 postponed until next time.

September

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
9/1 lecture3.pdf lecture3.pptx 31 Part 1: Viewer Part 2: Viewer Binary numbers contd. Homework 1.
Character representation: ASCII and Unicode. HTML5 and Unicode.
9/4 lecture4.pdf lecture4.pptx 24 Viewer Homework 1 review. Python len() and sys.maxsize.
Character representation contd.: HTML5 and Unicode.
Homework 2. Installing Ubuntu as a guest operating system on your Windows 11 machine.
Recommend installing Microsoft's Windows Sub-system for Linux 2 (WSL2).
Navigating around the hierarchical file system: pwd, cd, ~, .., .
Text editor: nano.
sudo prefix, rm
Checking the Ubuntu version, Tk graphics with Python, and Pip (package manager).
pokemon.html / pokemon2.html / pokemon3.html
9/8 lecture5.pdf lecture5.pptx 18 Viewer: 1 , 2 , 3 , 4 Terminal commands. The Bash shell.
Control-D, what it means. Control-G, ringing the bell.
The bc calculator.
Shell variables. Shell commands. Directories and files. Shell arithmetic using expr and ((...)).
PS1 prompt customization.
.bashrc editing using nano.
Terminal log: terminal5.txt
9/10 lecture6.pdf lecture6.pptx Viewer: 1 2 25 Aside: ASR 33 Teletype terminal
More Terminal commands.
The cat command.
Shell scripting.
Homework 3: Bash shell. Natural language corpus example: text.txt (from Pride and Prejudice)
Terminal log: terminal6.txt
9/15 lecture7.pdf lecture7.pptx 24 Viewer: 1 2 3 Homework 3 review.
The spirit of Unix: piping commands together to do powerful things!
Useful: tail. awk. termgraph: ASCII graphics.
A note on file permissions: chmod binary pattern for rwx.
Terminal log: terminal7.txt
9/17 lecture8.pdf lecture8.pptx 29 Viewer Re-cap: worked example (A Tale of Two Cities) from last time and ChatGPT.
The calculator bc revisited: scale, obase, arbitrary precision pi and e.
Bash command substitution: two ways. Positional parameters $n. If-test: [...] and [[...]]].
Homework 4: writing a Bash shell script.
File: test.sh / test2.sh / test3.sh
Terminal log: terminal8.txt
9/22 lecture9.pdf lecture9.pptx 19 Viewer 1 2 3 Homework 4 Review.
Bash shell: suffix and prefix deletion, string maninpulation, loops, positional parameters and globbing.
Example programs:
line30.sh
cmd.sh
rmext.sh
Terminal log: terminal9.txt
9/24 lecture10.pdf lecture10.pptx 33 Viewer 8 useful cheat sheets for Bash scripting and commands.
The frontend of a modern browser: an introduction to html5: html, css and javascript.
What is hypertext? Client-side vs. server-side. HTML tags. URL format. IMG. Embedded images using base64. Text element tags. Preformatted blocks.
9/29 lecture11.pdf lecture11.pptx 20 Viewer http responses: 404, 451 (Ray Bradbury)
Turning on debugging in your browser: Safari, Google Chrome and Firefox.
Ungraded Homework Exercise.
More html tags.
X11 colors. History of X11.
UTF-8 and the meta tag.
Introduction to CSS: inline style.
Tabs.
Sample file: mypage.html
Sample file (changed): mypage2.html

October

Date Lecture Notes Number
of Slides
Panopto Topic
PDF Powerpoint
10/1 lecture12.pdf lecture12.pptx 34 CSS definitions in <style> in <head>.
Tabs
Homework 5
Javascript. Console in browser.
document.write(string), document.getElementById(ID).innerHTML,
console.log(string).
Tic-tac-toe example.
Javascript variables, and numbers (64-bit floats).
Random number generation using Math.random().
File: sample.html
File: sample2.html
File: sample3.html
10/7 lecture13.pdf lecture13.pptx 25 Viewer

November

w
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: Tue Sep 29 17:01:41 MST 2026