Go to: Na-Rae Han's home page  

Studying Computational Linguistics at Pitt: A Guide

(Last modified 11/20/2020)

Overview

With Artificial Intelligence (AI) finally maturing and natural language becoming its central interface, this is a good time to be a computational linguist. If you want to major in linguistics with a special focus on computational linguistics, or are just plain curious about computational methods, Pitt is a great place to be. This document gives you an overview of the classes and resources available at Pitt and beyond.

Timeline

Computational methods are all about habit-building, which means you don’t become a computational linguist in one short semester. Get an early start: freshman is a good time to pick up a programming language, and, if you haven’t heard, that language should be Python. You should continue learning and training through the sophomore and junior years, taking more courses (I recommend at least one computational course a semester) and gaining exposure through collaborating with faculty members and participating in computational linguistics research projects. In your senior year, you should look beyond academia and look for career opportunities or plan to seek further training through grad school.

But what if you only have so much room in your schedule? It's never too late to pick up some computational training before you graduate, which will make you a stronger linguist. Taking a couple of key courses will give you this foundation. Many students have done this and found it instrumental in their post-graduation career building.

Courses

If you never took a programming course before, you should do so first by taking CS 8 or CS 12. Both teach Python, and CS 12 in particular is tailored for students with a humanities background. Many students don't find themselves immediately taking to programming, but don't be discouraged! When you get to LING 1330 "Intro to Computational Linguistics", you will see how the training you picked up lines up neatly with your linguistic interests.
CS 0008Introduction to Computer Programming with Python
CS 0012Introduction to Computing for the Humanities
The two key computational courses offered in our department are LING 1330 and LING 1340. Taking 1330 before 1340 is recommended, but there is no strict sequencing.
LING 1330/2330Introduction to Computational Linguistics
LING 1340/2340Data Science for Linguists
What about R? R is a popular tool as well, especially in the context of statistically focused research. We now have a class on R:
LING 1810/2010Statistics for Research in Linguistics

Additional Courses

If you are picking up a major or minor in computer science, you should consider taking some of the following courses. They are offered through Pitt's CS department and also CMU's Language Technologies Institute (LTI), and often come with CS prerequisites such as Java, algorithms and databases.
CS 1571 Introduction to Artificial Intelligence
CS 1671 Human Language Technologies
LTI 11-411 Natural Language Processing
LTI 11-719 Computational Models of Discourse Analysis
LTI 11-727 Computational Semantics for NLP
Additionally, some NLP courses are more about bridging CS and theoretic linguistic foundations, and they welcome participation from linguistics majors:
LTI 11-721Grammars and Lexicons
LTI 11-722Grammar Formalisms
LTI 11-823Conlanging: Learning about linguistics and language technologies through construction of artificial languages
If your interest runs more along the side of the humanities than engineering, Digital Humanities (DH) is a good interdisciplinary field. Some courses you can take:
LING 1050 Computational Methods for the Humanities
ENGCMP 1200Advanced Composing Digital Media: Communicating with Data (offered as ENGCMP 1200, Topics in Composition)
If you are more interested in statistics and data science approaches, below courses will give you a good foundation:
INFSCI 0019Python for Data Management and Analytics
CS 0155 Data Witchcraft

Research and Industry Experience

Another critical component of computational linguistics is application: a practical experience of having actually applied your computational knowledge and training to a research project or a real-world problem. A research experience you can gain through LING 1903 Directed Research as well as collaborating with linguistics faculty, CS faculty and people at the LTI. You can gain job experience through LING 1900 Linguistic Consulting and Internship, which places students at local companies in Pittsburgh, many of which are technology firms. Such opportunities abound, which has been one of the unique advantages our students have been enjoying.

Knowledge and Skills

At the core, you will need a solid training in computational linguistics and its methods:
  • Computational linguistics as a subfield of linguistics
  • A general-purpose programming language (Python)
  • Basic computation and data competence: Command line, regular expressions, data exchange formats (XML, CSV, JSON, etc.), data visualization
And below are additional skills and training that could accompany the core knowledge. Note that nobody picks up every skill in the list -- you should find your focus area.
  • Linguistic knowledge management: ontology, annotation design and analysis
  • Computer Science orientation: data structures, algorithms, statistics, machine learning
  • Foreign language: language typology and knowledge of non-Indo-European, less-commonly-studied languages

Get Involved

You should join PyLing (Pitt Python Linguistics Group), which has become a thriving community of computational linguists at Pitt and CMU. You can continue your learning through guest presentations and tutorials, and get to know NLP researchers, practitioners and alumni working in the field. You should also check out the LTI colloquium and the CS Intelligent Systems colloquium, which often feature well-known NLP researchers from around the world.

And Beyond: Grad Programs

Computational linguistics as an advanced degree makes a lot of sense! There are many excellent Master's programs to choose from, which are listed below. These programs typically do not require a formal CS-side credential (such as a CS minor) in order to apply, but most require some level of foundational CS coursework such as "Data Structures and Algorithms", so you should prepare accordingly.

Questions?

There is so much more information than I could possibly put all in here! If you have are curious and/or have questions, come talk to me.


Programs:

Groups:

Learning Resources: