We offer courses in the following areas:

Machine Learning

These courses cover both statistical and symbolic reasoning about knowledge, sometimes referred to as Machine Learning and Artificial Intelligence, respectively. Statistical reasoning requires students to have a firm understanding of statistics. The class in statistics also teaches students how to analyze research experiments (whether one algorithm works better than another).

Natural Language Processing

Courses on natural language processing (also referred to as computational linguistics) focus on building computer algorithms that can analyze human language, including determining the syntactic structure of sentences, the semantic meaning of a sentence or phrase, and the role of each sentence in a text or dialogue. These algorithms are used in summarizing texts, searching for information on the web, and building interactive systems.

Speech & Signal Processing

Courses on speech and signal processing cover the mathematical modeling of continuous signals, especially speech and image signals. Also included are courses on mapping speech signals to the words that were said, and the reverse problem of mapping sequences of words into speech signals.

Data Science

Data Science concerns the automatic analysis of structured and unstructured data. It is closely related to Machine Learning and Statistics. It usually requires large computational resources such as computer clusters.  

Computer Science

These courses give students breadth in computer science.


These courses are intended for Masters students who are interested in research and for Ph.D. students. They focus on how to perform and analyze research experiments, and how to present them.