This is the primary course website for Computational Linguistics 2 (Lin 637), offered by the Department of Linguistics at Stony Brook University. For a brief list of topics, check the syllabus.
This repository is publicly accessible and hosts the LaTeX source code for the lecture notes. Compiled pdfs of each chapter are available in the pdf folder.
This course assumes a certain degree of familiarity with generative syntax, phonology, and basic mathematics (sets, functions, relations, first-order logic). Please take the online survey to ensure that you satisfy the prerequisites. Giving a few wrong answers is okay, but if you feel that you do not know enough in a certain area, you should brush up on that in the first two weeks of the class. Relevant materials are suggested in the readings repository (access restricted to enrolled students).
In addition, you will have to use Python and possibly markdown and/or LaTeX at various points during this course. The link list at the end of this document has some useful tutorials.
If you don't want to deal with installing Python and git, you can download our virtual machine that already comes with everything preconfigured.
Course readings are made available through the private readings repository. You must be enrolled in this class in order to get access.
Each homework will be hosted in its own private repository. Only course participants have access to these repositories. Each assignment will be announced in GitHub's issue tracker. I recommend that you watch this repository and configure GitHub to email you update notifications.
If you want to compile the lecture notes yourself, or use them as the basis for your own course, carefully follow the steps below.
-
Make sure you have all necessary software installed and set up correctly, in particular
- a recent LaTeX distribution with
Tikz
>= 3.00 and recent versions ofminted
andforest
- the Python
pygments
package (required by minted)
- a recent LaTeX distribution with
-
Clone the repository via
git
, or download and extract the zip file. Note that the project folder will also contain an emptybuild
folder, which is used for temporary files to speed up compilation. -
Use the standard
tex --> pdf
compilation tool chain (nottex --> dvi --> ps --> pdf
), but make sure thatpdflatex
is run with the parameters--shell-escape
and--etex
.
- I highly recommend github's interactive git tutorial.
- Tutorials for using git via the command line
- Official documentation for git
- Interactive tutorial to markdown basics
- Complete markdown syntax
- Overview of Github's markdown dialect
- Overleaf (formerly writeLaTeX) is an online LaTeX editor with live preview
- Andrew Roberts' Getting to Grips with LaTeX
- A succinct yet extensive tutorial for Python 3
- The official Python 3 documentation
- Automate the Boring Stuff with Python is an excellent introduction that covers the basics of Python and applies them to real-world tasks.
- The repository for LIN 120 Language & Technology also contains Jupyter notebooks that cover the basics of Python, with an emphasis on programming techniques for computational linguistics.