This course is an introduction to automatic speech recognition, speech understanding and speech synthesis/text-to-speech from the computer science and linguistics (as opposed to EE) perspective. Focus on understanding of key algorithms including noisy channel model, Hidden Markov Models (HMMs), A* and Viterbi decoding, N-gram language modeling, unit selection synthesis, and roles of linguistic knowledge (esp. phonetics, intonation, pronunciation variation, disfluencies). Prerequisites: programming experience. Recommended: basic familiarity with probability.