The information on this page is for the 2017 offering of the course. The 2018 offering will differ in several aspects.

Course Description

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, 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 machine learning, computer science, and linguistics, showing how they apply to a real and difficult problem in artificial intelligence.

Time and Place

  • Mondays 16:10 to 17:00, Appleton Tower lecture theatre 1
  • Thursdays 16:10 to 17:00, David Hume Tower lecture halls B (weeks 1–4) and C (weeks 5–11)
  • Labs on Tuesdays, 10:00, in weeks 2, 5, 7, and 10, Forrest Hill 1.B30

Teaching Team

Ask us questions on piazza. But answer questions too.


There is no required textbook. The course will draw on recent literature from this fast-moving field. However, some background will be drawn from the following books.


Three practical assignments, each worth 1/3 of the overall course marks. Due 9 Feb, 13 March, and 13 April.

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.

Course catalogue

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.

Material on this page is freely reuasable under a Creative Commons attribution license,
and you are free to reuse it with appropriate credit. You can get the source code on github.