The lab component of the course will cover mathematical concepts used in computational linguistics. The purpose of the lab is to familiarize you with not-so-basic probability theory, information theory, Bayesian inference, linear algebra, and descriptive and inferential statistics. These concepts are crucial in understanding computational linguistics and natural language processing algorithms covered in lecture. If you are shaky about these topics, you are recommended to attend the lab and do the exercise. If you are going to take CS134 next year (Statistical Natural Language Processing), the lab is highly recommended.

Lab instructor: Kenneth Lai

Place and Time: 2 p.m-3 p.m Friday weekly in Volen 101 depending on the progress of the class.

**Lab notes and exercises**

A few labs will have associated exercises. You are encouraged but not required to complete and turn in the exercises. But to make the encouragement more tangible, we will offer extra credit for every exercise you turn in.

Notes and exercises from the lab will be posted here as the semester progresses.

- 1/18: Intro to Python | NLTK book, data
- 1/25: More Intro to Python, and Finite State Machines | slides
- 2/1: Probability Theory I: (Tabular) Probability Distribution Function: Joint, Conditional, and Marginal Probabilities | notes, exercises
- 2/8: Probability Theory II: Naive Bayes classifiers, Maximum Likelihood Estimation | slides, more slides, exercises
- 2/15: no lab
- 3/1: Linear Algebra I: Vector/Matrix operations in Numpy

Last year’s labs:

- Frequentist and Bayesian Statistics
- Information Theory I: Entropy and Mutual Information
- Probability Theory III: Markov Chains and Hidden Markov Models
- Context-Free Grammars and Pushdown Automata
- Word2vec tutorial

Labs from before last year:

- Probability Theory IV: Bayesian Inference, Conjugate Priors, and Summation Pushing
- Basic Maths of Neural Network