Intro to Programming for Computational Linguistics
CASLX 394/CASLX 694/METLX 594, Fall 2026
Boston University
This is an introductory course in computer programming, focusing on applications in computational linguistics (CL) and natural language processing (NLP). This course serves as preparation for LX 496/796 (Computational Linguistics), offered in the Spring semester. Topics include:
- Computer programming in Python
- Text documents, text encodings, rich text and webpages
- Corpus analysis and stylometrics
- Basic NLP: tagging, classification, n-gram language modeling
- Intro to advanced topics (time permitting)
Course Staff
Instructor
- Sophie Hao she/her (BU email:
uu)
Teaching Fellow
- Romi Hill she/her (BU email:
romihill)
Logistics
Lectures
MWF 11:15–12:05, with Sophie
Sargent 103, 635 Commonwealth Ave
Lab
W 3:35–4:25, with Romi
Psychology B51, 64 Cummington Mall
Office Hours
M 3:30–4:30, with Romi
Linguistics 138M, 111 Cummington Mall
Th 11:00–12:00, with Sophie, or by appointment
Linguistics 138S, 111 Cummington Mall
Course Materials
All course materials will be provided to you for free.
Textbook
Natural Language Processing with Python (available online for free)
Steven Bird, Ewan Klein, and Edward Loper
Do not purchase the paper edition of the textbook. It is out of date!
Hardware and Software
Please plan to bring a laptop to each class session. Your laptop needs to be able to run the latest versions of:
We recommend using Miniconda to manage the software for this course. We will install the software together during Week 2 lab.
Web Apps
We will be using the following online platforms for this course.
- Blackboard: Announcements, readings
- Gradescope: Assignment submission, grades, and feedback
- Piazza: Ask and answer questions (access code in Blackboard)
- Google Colaboratory: Create Python notebooks online
Prerequisites
There are no required prerequisites for this course. This course is intended for students with no prior experience in computer programming. If you have taken at least one college-level course in computer programming, this is not the course for you.
Hub Areas
This course satisfies Quantitative Reasoning II and Research and Information Literacy. The learning outcomes corresponding to these areas are as follows.
Quantitative Reasoning II
- Students will frame and solve complex problems using computational methods (Python and computational modeling).
- Students will apply quantitative tools in diverse settings to answer questions in linguistics.
- Students will formulate and test an argument by marshaling and analyzing quantitative evidence through a final project conducting corpus analysis.
- Students will communicate quantitative information through assignments involving hands-on coding.
- Students will recognize and articulate the capacity and limitations of quantitative methods and the risks of using them improperly through class discussions.
Research and Information Literacy
- Students will be able to critically assess both scholarly and public-facing sources, recognizing a variety of ways that sources can be credible; use sources ethically in domains such as attribution of ideas and treatment of human subjects; and interpret and analyze information. Such an experience will be gained through homework assignments and a final project that require students to attribute their claims to existing scholarly work.
- Students will demonstrate understanding of the overall research process and its component parts. As a result, they will be able to formulate good research questions or hypotheses, use disciplinary modes of inquiry, select and deploy sources strategically to address research questions or hypotheses, and contribute to knowledge production. Such an experience will be gained through homework assignments and a final project that require formulating a research question that can be addressed with corpus analyses.
Official Course Description
Introduction to computational techniques to explore linguistic models and test empirical claims. Serves as an introduction to programming, algorithms, and data structures, focused on modern applications to Natural Language Processing (NLP). Topics include tagging and classification, parsing models, meaning representation, and information extraction. (Not intended for students with a background in programming or computer science.) Carries MCS divisional studies credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Research and Information Literacy.