Google translate instantly translates between any pair of over eighty human languages like French and English. How does it do that? Why does it make the errors that it does? And how can you build something better? Modern translation systems like Google Translate, Bing Translator, and SDL FreeTranslation learn to translate by reading millions of words of already translated text. This course will show you how they work. We cover fundamental building blocks from linguistics, machine learning, algorithms, data structures, and formal language theory, showing how they apply to a real and difficult problem in artificial intelligence.

Spring 2017 information

Time and place
Lectures on Monday & Thursday, 16:10 to 17:00, Medical School Sydney Smith Lecture Theatre
Labs on Tuesdays, 10:00, in weeks 2, 5, 8, and 10, Forrest Hill 1.B30
Adam Lopez
Teaching assistant, markers, and demonstrators
Office hours
In the hour before lecture or by appointment
Discussion Forum
Statistical Machine Translation (errata) by Philipp Koehn. Available from the University library. Also available from amazon or Blackwell’s as a hardcopy or ebook.
Course Descriptor
INFR11133 | MT
Three practical assignments (33% each), due 9 Feb, 9 March, and 30 March.

The course will follow the school-wide late coursework policy and academic conduct policy.

The course assumes you have taken ANLP or equivalent. Machine translation applies concepts from computer science, statistics, and linguistics. You needn’t be an expert in all three of these fields (few people are), but if you are allergic to any of them you should not take this course. Concretely, you will be expected to already understand the following topics before taking the course, or be prepared to learn them independently.
  • Discrete mathematics: analysis of algorithms, dynamic programming, basic graph algorithms, finite and pushdown automata.
  • Other essential maths: basic probability theory; basic calculus and linear algebra; ability to read and manipulate mathematical notation including sums, products, log, and exp.
  • Programming: ability to read and modify python programs; ability to design and implement a function based on high-level description such as pseudocode or a precise mathematical statement of what the function computes.
  • Linguistics: basic elements of linguistic description.

Home : Teaching : Courses 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh