One textbook: Speech and Language Processing

Course Description This is the second of a two-part course sequence to train students with a linguistics background in the core methodologies of computational linguistics. Successful completion of this two-course sequence will enable students to take graduate-level elective courses in computational linguistics; both courses are offered by the Graduate Center's Linguistics Program, as well as courses offered by the Computer Science Program. This course (Methods in Computational Linguistics II) will provide training in: the use of computational libraries built specifically for computational linguistics, the techniques used in performing computational analyses of electronic natural language corpora, and the foundational mathematics, probabilistic methods and statistics that are the backbone of modern computational linguistics. The course will go significantly beyond a survey of these topics. By completing the Methods in Computational Linguistics sequence, at the end of the first year, Computational Linguistics Master's students will have the skills they need to engage in further study of state-of-the-art topics in natural language processing.

  • Spring 2020 course webpage containing all slides and assignments
  • Spring 2020 syllabus of the course
Textbook: Learn Three.js

Course Description Fundamentals of computer graphics programming. Graphics hardware and software standards. 2D geometric primitives and raster images. 3D object representations. Data structures, algorithms, and the graphics pipeline. Graphical user interfaces. Underlying concepts in computer graphics systems, including games, animation, modeling, rendering, and paint systems.

  • Spring 2020 course webpage containing all slides and assignments
  • Spring 2020 syllabus of the course
  • Spring 2019 course webpage containing all slides and assignments
  • Spring 2019 syllabus of the course
Textbook: Human and Machine Hearing: Extracting Meaning from Sound

Course Description "Machine listening" is a multidisciplinary field at the intersection of signal processing, machine learning, and psychoacoustics. This course will begin by introducing necessary material from those fields to provide a foundation for the rest of the course. Machine listening is primarily concerned with analyzing and understanding three types of signals: speech, music, and environmental sounds and these will be the focus of the course. We will also consider additional applications that require the creation or manipulation of these sounds in speech and music.

  • Spring 2019 course webpage containing all slides and assignments
  • Spring 2019 syllabus of the course
  • Fall 2016 course webpage containing all slides and assignments
  • Fall 2016 syllabus of the course
Textbook: Managing and Mining Multimedia Databases

Course Description Multimedia database design issues. Indexing and retrieval of text documents, audio files, images and video. Multimedia data types and formats. Techniques and data structures for efficient multimedia similarity search. System support for distributed multimedia databases. Measurement of multimedia information retrieval effectiveness. Products, applications, and new developments.

  • Fall 2018 course webpage containing all slides and assignments
  • Fall 2018 syllabus of the course
  • Fall 2017 course webpage containing all slides and assignments
  • Spring 2016 course webpage containing all slides and assignments

Course Description Introduction to multimedia topics, including: web design, game design, animation, data visualization, simulation and robotics. Introduction to multimedia hardware and software, including game boxes. Human interface design and input using multimedia devices. Graphical and other forms of output to multimedia devices. Emphasis on design and creation of web pages with HTML and cascading style sheets; interactive, graphical web-based programs; simple computer games, movies and narratives. Computer-based sound editing. Introduction to agent-based programming for simulations and robotics. Uses of multimedia in industry. Hands-on exercises.

  • Spring 2018 course webpage containing all slides and assignments
  • Spring 2018 syllabus of the course
  • Spring 2017 course webpage containing all slides and assignments
  • Spring 2016 course webpage containing all slides and assignments
  • Fall 2015 course webpage containing all slides and assignments
Textbook: Python Programming: An Introduction to Computer Science

Course Description This is the first of a two-part course sequence to train students with a linguistics background in the core methodologies of computational linguistics. Topics: Computer Basics, Programming Code; Introduction to Python and the IDLE editor vs Jupyter Notebooks; Processing with Numbers: Data Types and Conversions; String Processing with Python; Opening, Reading, and Writing Data Files; Booleans and Conditionals; Basic Graphics and User-Interface Issues; Designing Functions, Top-down Software Design; Loops, Control of Flow, List Comprehensions; Python Containers: Lists, Tuples, Dictionaries; Defining and Using Classes, Object-Oriented Software Design; Overview of Topics in Computational Linguistics; Introduction to Machine Learning

Textbook: Neural Networks and Learning Machines

Course Description A survey of fundamental methods in neural networks. Single- and multi-layer perceptrons; radial-basis function networks; support vector machines; stochastic machines and deep networks; recurrent and dynamic networks; supervised and unsupervised learning; application to pattern classification and function approximation problems.

  • Fall 2014 syllabus of the course
  • Fall 2014 course webpage containing all slides and assignments
  • I was the instructor for this course
Textbook: Speech and Audio Signal Processing

Course Description Audio processing is a huge field, so this course is necessarily eclectic rather than comprehensive. The first half of the course covers fundamentals in signal processing, pattern recognition, acoustics and auditory perception. In the second half we look at several application areas, including psychoacoustic compression schemes (such as MP3), speech recognition, music analysis and retrieval, and sound mixture organization.

  • Spring 2009 syllabus of the course
  • Spring 2009 course webpage containing all slides and assignments
  • I was the co-lecturer for this course twice, and the summer manager for it once