LING 430: Computational Linguistics
Information · Coursework · Policies · Schedule
Information
Course description
Computational linguistics combines insights from linguistics and computer science to study language with computational tools and to build language technologies. This course offers a hands-on, beginner-friendly introduction to the field. We will learn Python while working with real language data and will connect each computational method to the linguistic assumptions it makes.
The course begins with programming, development tools, representations of language, and text processing. We then move through symbolic approaches such as regular expressions and computational morphology; statistical approaches such as n-gram language models, Naive Bayes, regression, and sequence labeling; and contemporary approaches using neural networks, embeddings, and large language models. We then bring these methods together in topics such as linguistic corpus analysis and automatic speech recognition. Throughout the course, we will examine evaluation, error analysis, data documentation, bias, and the social consequences of language technology.
No previous programming experience is assumed. However, students should be prepared to invest the necessary time and effort to become proficient over the course of the semester. Students who take this course will gain a thorough understanding of the fundamental methods used in computational linguistics, along with an ability to assess the strengths and weaknesses of natural language technologies based on these methods.
Learning outcomes
By the end of the course, you will be able to:
- Write, run, test, and debug programs in Python.
- Process text using strings, regular expressions, tokenization, and Unicode-aware methods.
- Explain and implement introductory computational models of morphology, language modeling, classification, sequence labeling, and parsing, and describe the main components of an automatic speech-recognition system.
- Work with linguistic corpora, annotations, metadata, and data documentation.
- Evaluate NLP systems using appropriate metrics and systematic error analysis.
- Explain how linguistic theory and data choices affect computational models.
- Critically assess the capabilities, limitations, biases, and social implications of current language technologies, including large language models.
Prerequisites
ANTH 200/LING 200 or instructor approval. No prior coursework in programming or computer science is required.
Meeting times and format
This course is taught in person. Class meetings will include lectures, discussion, live coding, and activities. Please bring a laptop to every class.
| Days | Time | Location |
|---|---|---|
| Tuesday & Thursday | 2:30-3:45 PM | Herring 125 |
Instructor
| Name | Office | Office hours | |
|---|---|---|---|
| Siyu Liang | siyu.liang@rice.edu | Herring 205 | Tuesday 12:30-2:30 PM or by appointment |
Texts and readings
All required readings will be available at no cost through open-access sources or Canvas. We will draw selectively from the following references rather than read any one book from beginning to end:
- Downey (2024). Think Python (3rd ed.)
- Jurafsky & Martin. Speech and Language Processing (3rd ed. draft)
- Bird, Klein, & Loper. Natural Language Processing with Python
Additional articles, documentation, and corpus materials will be posted on Canvas. Readings listed in the schedule are tentative and may be adjusted as the semester develops.
This course was influenced by several excellent courses during its development, with gratitude: LING 471 (UW, Olga Zamaraeva and Matt Kelley), LING 362 (Georgetown, Amir Zeldes), LING 1330 (Pittsburgh, Janet Liu), and CS 124 (Stanford, Dan Jurafsky).
Reading expectations
Some readings, especially chapters from Jurafsky & Martin, are technically dense and are also assigned in upper-level undergraduate and graduate NLP courses. For those, close reading of every equation, algorithm, or implementation detail is not expected unless otherwise noted. Read to familiarize yourself with the central problem, terminology, model intuition, and linguistic implications. For readings on programming knowledge, you should spend enough time to be able to replicate the code, which could vary depending on your background. Think Python chapters are walked through in class: you do not need to read them beforehand, but revisiting a chapter after its class meeting is the recommended way to consolidate — every chapter opens directly in Colab, so you can run it like a class notebook.
Coursework
Homework assignments
There will be six homework assignments. Most will provide starter code that you will inspect, modify, and extend. In addition to working code, submissions will include short explanations or error analyses: you should understand what your program does, why it works, and where it fails. All homework deadlines 11:59 PM on the days they are due.
Homework is graded on completion rather than correctness. You will receive a full grade for a genuine attempt that follows the instructions and explains your work. A clear explanation of an imperfect solution is more valuable than unexplained code that happens to run. Your lowest homework grade will be dropped, so the best five of six homework grades will count toward the final grade. Because the assignments build on one another, try to submit each one on time even if you expect it to be your dropped grade.
Paper presentation
Students will give a 10-minute presentation on a peer-reviewed computational linguistics paper in a group of 2 to 3. The presentation should explain the research question, data, method, and findings; connect the work to linguistic ideas from the course; and consider possible social consequences or limitations.
Presentations will take place during the last two class meetings, December 1 and December 3. Paper choices are due November 19, and slides are due on the team’s presentation day.
Take-home final exam
The final is a take-home exam due December 15. It will focus on conceptual understanding, interpretation and correction of short code samples, pseudocode, evaluation, and the application of computational methods to language data. It will not require live coding or memorization of long programs. Instructions for submission will be posted on Canvas.
Grading
| Component | Weight |
|---|---|
| Homework (best 5 of 6 assignments) | 75% |
| Paper presentation | 15% |
| Take-home final exam | 10% |
| Participation extra credit | Up to 2% |
Letter grades will be assigned using the following scale. Any curve or adjustment will only benefit students.
| Grade | Percentage | Grade | Percentage | Grade | Percentage |
|---|---|---|---|---|---|
| A+ | 97-100 | A | 90-96.99 | ||
| B+ | 87-89.99 | B | 83-86.99 | B- | 80-82.99 |
| C+ | 77-79.99 | C | 73-76.99 | C- | 70-72.99 |
| D+ | 67-69.99 | D | 63-66.99 | D- | 60-62.99 |
| F | Below 60 |
Policies
Participation and keeping up
This course introduces programming and computational linguistics at the same time, so the material is cumulative and can move quickly. If you miss a meeting, review the posted material promptly and ask for help before the next topic builds on it.
At the instructor’s discretion, up to 2% extra credit may be awarded for sustained, constructive contributions to learning in or outside class. Examples include contributing thoughtfully to class or discussion boards, supporting a study group, and helping classmates learn. Near the end of the semester, students may nominate themselves or a classmate and briefly describe the contribution. Nominations will inform, but not determine, the instructor’s decision.
Collaboration
Talking through concepts, developing high-level pseudocode together, and helping a classmate debug are encouraged. Unless an assignment says otherwise, the code and written analysis you submit must be your own. You should be able to explain every part of your submission. List anyone with whom you discussed the assignment, cite any external code, data, or ideas you use, and follow the collaboration rules stated in each assignment.
Late work and extensions
If unexpected circumstances make it difficult to complete work on time, email the instructor as soon as possible so that we can agree on a timeline that keeps you on track. Without an approved extension or a different policy stated in the assignment, late homework loses 10% of the earned score for each 24-hour period or part thereof, up to 48 hours.
Use of large language models
Large language models can be useful, but they can be detrimental to learning for students who do not yet have the technical foundation to understand the output. For that reason, you are strongly discouraged from using an LLM to generate homework code. Struggling productively with a problem, testing possible solutions, and debugging are central parts of learning in this course.
Unless a homework explicitly permits it, an AI assistant may be used only as a tutor: for example, to explain a concept or help interpret an error message. It may not write substantial portions of the code or analysis you submit. Any permitted use must be disclosed, and you must verify and be able to explain the resulting work. Submitting generated work that you cannot explain does not count as a genuine attempt.
To make these expectations concrete, this course uses the AI Usage Scale (Parsons et al. 2024) as the shared vocabulary for describing AI assistance. For the written portions of your work: Levels 0–2 (grammar and sentence-level polish) are always acceptable; Levels 3–5 (brainstorming, feedback on drafts, paraphrasing for your own understanding) are acceptable with disclosure; Levels 6–8 (structural assistance and substantial generation) are not permitted unless an assignment explicitly says otherwise. For code, apply the same scale: having AI explain a concept or an error message sits in the acceptable range, while having it produce the functions you submit does not. When you disclose AI use, name the level.
Communication
- Use the relevant Canvas discussion board for technical and logistical questions so that everyone can benefit from the answer.
- Use email for grades, accommodations, or other private matters.
- On weekdays, the instructor will normally respond to email within 24-48 hours; responses may take longer on weekends or university holidays. Use office hours or request an appointment for questions that require an extended discussion.
Academic integrity
All work in this course is governed by the Rice Honor System. Academic misconduct includes presenting another person’s work as your own, consulting prior solutions or exams without permission, falsifying data or results, using unauthorized assistance, or violating an assignment’s collaboration rules. Once you begin the take-home final, you may not discuss it with anyone until the exam period has ended; the final instructions will identify any resources you may use. When in doubt about collaboration, reuse of code, citation, or AI assistance, ask before submitting the work.
Accessibility and accommodations
If a documented disability or other condition may affect your academic work, first contact Rice’s Student Disability Resource Center to determine appropriate accommodations, and then meet with the instructor to discuss how they will be implemented in this course. Please do this as early as possible. You are also encouraged to tell the instructor about temporary conditions or other access barriers; if there is something reasonable I can do to make the course more accessible, please let me know.
Title IX, support, and mandatory reporting
Rice prohibits harassment, sexual harassment, sexual assault, dating violence, and stalking. Under Rice policy, university employees, including the instructor, are Mandatory Reporters and must promptly share information they receive about such conduct involving a Rice student or employee with a Title IX Coordinator. Students seeking support or information about reporting and supportive measures can contact The SAFE Office or review Rice’s reporting options. For an emergency, call 911 or the appropriate campus emergency service.
Religious observances
Please notify the instructor as early as possible if a religious observance conflicts with a class meeting, assignment, presentation, or exam so that a reasonable accommodation can be arranged.
Schedule
Class schedule
The schedule is a working plan and may change in response to class progress. Readings are to be completed before the associated meeting. Unless otherwise stated, assignments are due at 11:59 PM on the listed date.