Welcome to the course home page for Algorithms: Data Structures and Computational Complexity! This was a new course being run by a team of students here at Cambridge, after the previous year's successful Algorithms 2010 course.

Algorithms 2011 Example Sheet 3
Algorithms 2011 Example Sheet 2
Algorithms 2011 Example Sheet 1

Quick links:

Introduction

In this course - a largely independent sequel to the brand-new Algorithms 2010 course taught last year - we move on to discuss in detail some of the important theoretical and practical concepts underlying some of the basic topics in algorithms. The two key areas we will focus on will be Data Structures, and then Complexity Theory and Approximation Algorithms.

For a more detailed list of the topics we intend to cover, you can view the schedules in either HTML or PDF format.

We have set out to make this course as accessible as possible to as many people as possible - in particular, first-year students were warmly welcomed to attend! As far as background goes, we have set out the main things you should check you can understand in the What do I need to know? section. Don't worry about this, there really is not anything too difficult!

When & Where?

The course was held in

MR2 at the Centre for Mathematical Sciences (directions)
at
2 - 3 PM on Tuesdays and Thursdays
during
Lent term 2011.

The first lecture was on Thursday 20 January 2011, and there were sixteen lectures in total.

This Website

This website will hopefully soon host notes for the lectures, videos of the lectures and some real examples of code implementing the techniques discussed.

Also, if you look around the site (particularly in the Resources section), you will find plenty of material for further reading as well as challenging problems you may like to attempt.

Algorithms 2010

Last year, another course entitled Algorithms (2010) was run by Sean Lip, and he worked with Freddie Manners and Ludwig Schmidt to present a 16 lecture course introducing the basics of complexity analysis, and going on to discuss and solve a whole range of problems. Topics from dynamic programming, graph algorithms, greedy algorithms, maximum matching and network flow theory were discussed (see the schedules).

The course was filmed, and videos for all of the lectures are available on the course website. Alternatively, the full notes for the course are available from the author's website.

Finally, the course had supplementary material in the form of example sheets (see the course home page) and 10 challenge questions and programming tasks, which you might like to attempt if you are enthusiastic. (Solutions for the challenge problems are also given, if you would like to see how other students solved them last year.)

Contact Information

Lecturing team contact: tucac2011 AT gmail.com, organizer's home page.

Webmaster e-mail: cpt39 AT cam.ac.uk, home page.