Language Processing

CS/EE 555/655 Sequence Analysis

The goal of this course is to give a broad but detailed introduction to the key algorithms and modeling techniques used for sequence processing, especially for speech and language processing applications, with an emphasis on exact and approximate sequence matching problems.

CS 562/662 Natural Language Processing

This course covers key models and algorithms that are used for automatic processing of natural language text. In natural language processing (NLP) tasks, inputs are word sequences and the outputs consist of linguistic annotations to those sequences. These annotations are crucial for downstream applications like automatic speech recognition, machine translation, information extraction, and question answering. Students in this course will implement key parts of a natural language pipeline, including text normalization, sequence tagging, named entity recognition, parsing, topic modeling, and sentiment anal

CS 550/650 Dialogue

Spoken dialogue systems are already being deployed to help people find out flight information, trade stock, access email, and find out traffic conditions. With the continuing advancements in speech technology, more information and services will become readily available. A simple cell phone will be enough to hook into the information age.
This course teaches the fundamentals of spoken dialogue systems. Spoken dialogue systems include components for speech recognition, parsing, semantic interpretation, dialogue management, text generation, speech synthesis, and agent architecture. The course will be organized in terms of 3 frameworks for dialogue management: finite-state machines, form-filling, and speech-act reasoning. We will examine how speech recognition, parsing, and semantic interpretation fit into each framework. We will also contrast hand-crafting a dialogue manager with using machine learning.

CS 506/606 Information Retrieval

Description forthcoming.

CS 506/606 Special Topic: Practical Linguistics

Engineers working on speech and language technologies need to be familiar with the way that speech is produced and perceived and the ways in which human languages vary. But few engineers have taken courses in linguistics, and few linguistics courses are geared towards the needs of engineers. This course will acquaint students with the ways in which natural languages vary in phonetics, phonology, prosody, morphology, syntax, semantics, and pragmatics. It will also cover the acoustic and articulatory structure of speech, and the use of linguistic resources such as electronic lexicons.

Speech and Signal Processing

EE 553/653 Speech Signal Processing

Speech systems are becoming more and more commonplace in today's computer systems. Examples are speech recognition systems and Text-to-Speech synthesis systems. This course will introduce the fundamentals of the underlying speech signal processing that enables such systems. Topics include speech production and perception by humans, frequency transforms, filters, linear predictive features, pitch estimation, speech coding, speech enhancement, and prosodic speech modification.

CS/EE 552/CS652 Automatic Speech Recognition

This course will provide theoretical foundations and practical experience in speech recognition by machine. Specific topics include feature extraction, dynamic time warping, vector quantization and Gaussian mixture models, hidden Markov models, Viterbi search, training with expectation maximization (EM), decision-tree based clustering, language models, finite-state formulation, and speaker adaptation.

EE 530/630 Speech Synthesis

This course will introduce students to the problem of synthesizing speech from text input. Speech synthesis is a challenging area that draws on expertise from a diverse set of scientific fields, including signal processing, linguistics, psychology, statistics, and artificial intelligence. Fundamental advances in each of these areas will be needed to achieve truly human-like synthesis quality and advances in other realms of speech technology (like speech recognition, speech coding, speech enhancement). In this course, we will consider current approaches to sub-problems such as text analysis, pronunciation, linguistic analysis of prosody, and generation of the speech waveform. Lectures, demonstrations, and readings of relevant literature in the area will be supplemented by student lab exercises using hands-on tools.

EE 584/684 Introduction to Image Processing

This course covers basic image processing principles and techniques with a brief introduction to machine vision. Specific topics include image transform methods, image filtering, image enhancement, image restoration, segmentation, image representation and feature extraction, image recognition and classification, and image compression. Application of these techniques is illustrated in numerous examples. Pre-requisite: probability and statistics or equivalent, calculus, linear algebra and proficiency in at least one high-level programming language.

Machine Learning/Artificial Intelligence

CS 506/606 Statistics

Description forthcoming.

CS/EE 559/659 Machine Learning

This course will provide theoretical foundations and practical experience in statistical learning methods or machine learning. Both supervised and unsupervised learning methods will be covered. Specific topics include linear models for regression and classifications, decision trees, neural networks, support vector machines, kernel methods, Gaussian processes, dimension reduction, density estimation and clustering. Pre-requisite: probability and statistics or equivalent, calculus, linear algebra and proficiency in at least one high-level programming language.

CS 560/660 Artificial Intelligence

This course introduces you to declaratively representing information using rich knowledge representation schemes with formal semantics. You'll learn to reason about this information in order to draw new conclusions, make consistent assumptions, or plan new actions. This reasoning process is at the heart of building intelligent agent-based systems. The theory in this course is balanced by building working programs in the logic-based programming language Prolog.

The course surveys the foundations and applications of symbolic approaches to artificial intelligence. The approach emphasizes the formal basis of automated reasoning and includes an introduction to programming in Prolog. Fundamentals covered include search, knowledge representation, automated inference, planning, nonmonotonic reasoning, and reasoning about belief.

Computer Science

CS 533/633 Automata and Formal Languages

Automata theory introduces fundamental models that are used over and over again in computer science for programming languages, in compiler construction and in algorithms. These models are a valuable part of the repertoire of any computer scientist or engineer. This course introduces progressively more powerful models of computation, starting with finite automata and moving to stack and tape (Turing) machines. It also presents the regular, context-free, recursive and recursively enumerable languages and shows how they correspond to the various models of computation and to generation mechanisms such as regular expressions and grammars. The emphasis is on understanding the properties of these models, the relationships among them and how modifications such as nondeterminism and resource bounds affect them.

CS 506/606 Special Topics: Problem Solving w/Large Clusters

Many real-world computational problems involve data sets that are too large to process on a single computer, or that have other characteristics--- fault-tolerance, etc.--- that require multiple computers working together. Examples include analysis of high-throughput genomic or proteomic data, data analytics over very large data sets, large-scale social network analysis, training machine learning models on "web scale" data sets, and so forth. In this course, we will explore a variety of approaches to solving these kinds of problems through a mixture of lectures and student-led discussions of the research literature in the field. We will also hear from several guest lecturers with practical experience applying these kinds of algorithms in both academia and industry. In addition to reading and discussing articles, students will become familiar with the Hadoop map-reduce environment as well as several other such systems through class assignments. There will also be a final project on the subject of the student's choice. Prerequisites: A graduate level course on machine learning or probability and statistics. Students should be comfortable coding in at least one programming language, and will find the course much easier if they are familiar with the UNIX command-line environment than if they are not.

CS 506/606 Programming Tools for Research

Description forthcoming.


GEN 569/669 Scholarship Skills

This course will make you a better scholar, and a better professional in non-academic venues. It will make you a better writer, a better presenter, and a better reviewer. The course concentrates on your written and oral exposition skills, and also discusses effective reading. You will learn more about both the production and consumption of media used by computer scientists and biomedical engineers to communicate toda

You will learn to write conference and journal articles and theses, and get some tips on effective reading. You will learn how to be an effective reviewer for journals and conferences. You will listen to and deliver oral presentations. You will learn how to prepare yourself for a job hunt in academia or industry when you graduate.

CS 568/668 Empirical Research Methods

Description forthcoming.