This page is for the 2018 offering of this course, and is here for archival purposes. This course will no longer be offered. Instead, it will be merged with Natural language understanding and Natural language generation into a new 20-point second-semester NLP course: Natural language understanding, generation, and machine translation.

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, Medical School, Room 425 Anatomy Lecture Theatre - Doorway 3
  • Thursdays 16:10 to 17:00, Medical School, Room 425 Anatomy Lecture Theatre - Doorway 3

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.


The assessment will consist of:

  • A practical course work assignment, due in week 8 (30%). You are encouraged to work in pairs.
  • a final exam in the April/ May diet (70%): April 30th, 14:30-16:30, Appleton Tower Concourse.

The course will follow the school-wide late coursework policy and academic conduct policy. Past exam papers are available here.


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.
  • 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. The website is based on source code by Adam Lopez, available on github.