COMP 526 – Efficient Algorithms (Fall 2023)
This is an archived version of this module from Fall 2023.
Efficient Algorithms (COMP 526) is a first-semester masters module on efficient algorithms and data structures. It covers a few fundamental results in algorithms and data structures plus more advanced topics, with an emphasis on methods that are useful in applications.
Quick links
Slido ⋅ Live ⋅ Canvas ⋅ Campuswire ⋅ Units
Teaching Evaluation
Below are the results of the University’s end-of-module survey.
Lectures
There will be synchronous interactive lectures, starting in the week of Sept 25. Live participation is expected; recordings will be available.
Our regular lecture slots are
- Thursday 15:00 – 16:30 in Building 502, Lecture Theater 3;
on Nov 2 in Sherrington Lecture Theater 1 instead - Friday 11:00 – 12:30 in Eleanor Rathbone Theater
If you are registered for the module, lectures will appear on your timetable.
(Trouble finding rooms? Check out this list.)
Units
The module will consist of the following units:
- Unit 0 – Administrativa & Proof Techniques
- Unit 1 – Machines & Models
- Unit 2 – Fundamental Data Structures ⋅ (extra material)
- Unit 3 – Efficient Sorting
- Unit 4 – String Matching
- Unit 5 – Compression
- Unit 6 – Error-Correcting Codes
- Unit 7 – Parallel Algorithms
- Unit 8 – Text indexing
- CA1: Programming Puzzle 1
- CA2: Programming Puzzle 2
Tutorials
There will be small-group tutorials, run by Ben Smith.
The tutorial groups will meet
- Tuesdays 14:00 – 15:00,
- Tuesdays 15:00 – 16:00,
- Thurdays 10:00 – 11:00,
- Thurdays 11:00 – 12:00, resp.
- Fridays 10:00 – 11:00.
You are assigned to one of the groups by the timetabling team; check your personal timetable.
Tutorial | Date | Content | Worksheet |
---|---|---|---|
1 | Oct 03–06 | Unit 0 | tutorial-01.pdf |
2 | Oct 10–13 | Units 0 & 1 | tutorial-02.pdf |
3 | Oct 17–20 | Units 2 & 3 | tutorial-03.pdf |
4 | Oct 24–27 | Unit 3 | tutorial-04.pdf |
5 | Oct 31–Nov 03 | Unit 4 | tutorial-05.pdf |
6 | Nov 14–17 | Unit 5 | tutorial-06.pdf |
7 | Nov 21–25 | Units 5 & 6 | tutorial-07.pdf |
8 | Nov 28–Dec 01 | Units 7 & 8 | tutorial-08.pdf |
9 | Dec 05–08 | Unit 8 | tutorial-09.pdf |
10 | Dec 12–15 | exam problems | tutorial-10.pdf |
Online Tools
We will use the following tools and services in this module.
Campuswire
Campuswire is the main online communication channel. Use it as a question & answer forum, for (social or topical) discussions. (See features of the platform for Q&A and chat).
Canvas
We will use the university’s official learning management system Canvas for quizzes (class tests and online exams) and assessments. You are automatically enrolled for COMP526 on Canvas when you are registered for the module.
Slido
During the live lectures, I will use Slido to for interactive parts.
Exam & Assessment
The final grade for the module is the weighted average of
- the final exam (60%) and
- several continuous assessments:
- programming puzzle 1 (10%),
- programming puzzle 2 (10%),
- several “class tests” on Canvas (15% in total), and
- bonus marks for good participation (5%).
More details will be provided in class (see Unit 0).
Note that some past exam papers are made available from the department via the all-student Canvas course.
Further reading
There are many good algorithms textbooks, but no single definitive one that covers all topics of this module (in the way I want them presented!). Indeed, I have been cherrypicking the – in my opinion – most effective descriptions from a variety of sources; check the individual units for details.
Our library’s reading list for the module can help you access the resources.