Schedule: LIN353C introduction to computational linguistics


This schedule is subject to change.

Assignments are due right before class (12:30pm) on their due date unless noted otherwise.

Readings can be done either before or after class (unless noted otherwise); they are chosen to support the material covered in class.

Week 1: An introduction

  • Aug 29: Introduction, and a demo of some computational linguistics tasks and methods.

Week 2: Using rules to analyze individual words

  • Sep 3: Introduction to programming: Python basics
    • Reading: Think Python chapter 1 and chapter 2
      Warning: This online book uses Python 2, not Python 3. The main difference that you will see is that it uses print() without the (). This doesn't work in Python 3!

  • Sep 5: Morphology, finite state automata and finite state transducers
    • Taking words apart: What do "sing", "singing", "sings", "sang" have in common, and how do we describe what is different?
    • Reading: J&M ch. 2 second half, ch. 3, pp. 45-68

Week 3

  • Sep 12: Finite state automata, finite state transducers, and morphology
    • Assignment 1 due

Week 4: Rules again, this time to build dialog systems

Week 5: Machine learning

Week 6: Word sequences

  • Oct 3: Machine learning continued.
    • In class: course project discussion. Bring your ideas!
    • Assignment 3 due

Week 7: Word meaning

  • Oct 8: Typical word sequences: Language models

Week 8: Parts of speech

Week 9

Week 10: Syntactic structure

  • Oct 31: Describing the syntax of English with context-free grammars
    • Assignment 6 due

Week 11

  • Nov 5: Automatic syntactic analysis: Parsing
  • Nov 7: Automatic syntactic analysis: Parsing
    • Assignment 7 due

Week 12

  • Nov 14:  Guest lecture: Ray Mooney on RoboNLP
    • Assignment 8 due

  • Nov 15 11:00 Computational Linguistics colloquium talk by Yoav Artzi

Week 13: Meaning and structure

  • Nov 19: The Chomsky hierarchy, or: how complex is human language?
    • Reading: J&M, ch. 16, pp 529-542

Week 14: Applications

  • Nov 28: Thanksgiving break

Week 15: Class project presentations

Time per group: 6 minutes (plus one minute for changing between groups)

You can use the time as you wish. You can demo your system, you can use slides, or you can just talk about your project without slides. Do leave a bit of time for questions!

I used Python's random.shuffle() to make a random order of the groups. If you would like to switch places with another group, arrange for it with the other group, and let me know once it is settled.


  • Dec 3: Class project discussion
    • 12:30 Milla Winner and Meryl Xiong
    • 12:37 Gus Baker-Kallus
    • 12:44 Jordan Cline and John Dikeman
    • 12:51 Miguel Arriaga and Sommer Chavez
    • 12:58 Benjamin Carter
    • 1:05 Dag Lindeberg
    • 1:12 Heath Massery and Ryan Schulze
    • 1:19 Ivana Hernandez and Katherine Tyler
    • 1:26 Julia Pollard-Grayson

  • Dec 5: Class project discussion
    • 12:30 Blake Davis and Marissa Hauser
    • 12:37 Karim Sabar and Ria Upreti
    • 12:44 Parth Shah
    • 12:51 Cutter Dalton and Mark Simmons
    • 12:58 David Wolf
    • 1:05 Joshua Luo, Rishabh Rai and Shrey Sachdeva
    • 1:12 Tabitha Kaiser and Aimee Bartlett
    • 1:19 Jade Marion and Gabriel Flores
    • 1:26 Seiji Shimizu
    • 1:33 Paula Paysan

  • Dec 6 11:00 Computational Linguistics colloquium talk by Dan Roth