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: Statistical parsing
    • Method: Probabilistic context-free grammar
    • Reading: J&M ch. 14 pp. 459-463, 467

Week 12

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

  • 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: Meaning and structure: semantic roles
  • Nov 21: Meaning and structure: semantic parsing

  • Nov 22 11:00 Computational Linguistics colloquium talk by Jacob Andreas

Week 14: Applications

  • Nov 28: Thanksgiving break

Week 15: Class project presentations

Time per group: 5 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

  • Dec 5: Class project discussion

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