An introduction to how computers process language and solve language-related tasks. This course discusses the language technologies of our daily life — spam filtering, machine translation, and many more — and the algorithmic concepts at their core. The course explores a variety of issues: Why do computers do well in some areas (spell checking) yet fail miserably in others (essay grading)? How useful is linguistic knowledge in building state-of-the-art language technologies? Will we ever have perfectly fluent AIs as depicted in science fiction? And how will these technological advances impact the role of language in our society? Students will also acquire basic programming skills in Python, and write scripts for simple language tasks. No previous training in linguistics, mathematics, or computer science required.