Undergraduate Teaching 2023-24

Engineering Tripos Part IIB, 4M26: Algorithms and Data Structures, 2022-23

Engineering Tripos Part IIB, 4M26: Algorithms and Data Structures, 2022-23

Not logged in. More information may be available... Login via Raven / direct.

PDF versionPDF version

Module Leader

Dr I Budvytis

Lecturers

Dr I Budvytis and Dr S Albanie

Timing and Structure

Lent term. 16 lectures (including 3 examples classes). Intake: Part IIB students only.

Prerequisites

Due to a novel form of assessment (coding based exam) the intake of this course will be limited to approximately 30 Part IIB students for the first year (2022-2023). Only students who have strong skills in coding with Python are expected to attend this module. Students who are interested in taking this module will be required to pass a coding test in Michaelmas 2022. It is important to have an alternative course in mind for Michaelmas/Lent term in case one does not pass the test.

Aims

The aims of the course are to:

  • Introduce the principles behind algorithm and data structure design and evaluation.
  • Cover key topics including elementary and advanced data structures, sorting algorithms, graph algorithms, etc.
  • Provide an extensive hands-on understanding of the aforementioned topics via coding-focused computerised examples papers and exam.

Objectives

As specific objectives, by the end of the course students should be able to:

  • Analyse computational efficiency of most algorithms.
  • Re-implement and debug algorithms taught under time constraints.
  • Correctly choose the right algorithmic solution and data structures for the problem encountered.
  • Understand relative theoretical and practical advantages and disadvantages of various methods.
  • Devise and implement new algorithms or modify existing algorithms to solve previously unencountered tasks.

Content

  • Introduction (1L)
    • Algorithms and Data Structures: what are algorithms, why study algorithms and how? Introduction of the coding platform and other resources. Applications.
  • Fundamentals of Algorithms (2L)
    • Elementary data structures - stacks and ques, linked-lists, arrays, dictionaries. Algorithmic complexity. Strategies for algorithmic design: divide and conquer, dynamic algorithms, greedy algorithms.
  • Advanced Data Structures (2L)
    • Hash tables, binary search trees, red-black trees, b-trees.
  • Sorting Algorithms (2L)
    • Sorting algorithms - Heapsort, Quicksort, sorting in linear time.
  • Graph Algorithms (3L)
    • Graph algorithms - shortest path (BFS, DFS, Dijkstra, Bellman-Ford), topological sorting, strongly connected components, maximum flow (Ford-Fulkerson), minimum spanning trees (Kruskal’s, Primm’s).
  • Further Topics (2L)
    • Parallel algorithms, matrix operations, NP-completeness, approximation algorithms.
  • Recent Developments (1L)
    • Large language models for code generation.
  • Example classes (3L)
    • Discussion of examples papers and past examination papers.

Further notes

The information regarding coding test in Michaelmas 2022 will be made available via Moodle page of 4M26 - Algorithms and Data Structures.

Examples papers

A computerised exam is held at the Design Project Office (DPO). A mixture of (i) coding, (ii) simple pen-and-paper algorithm run-through and (iii) short theoretical questions are provided in the exam paper. See example question here: http://mi.eng.cam.ac.uk/~ib255/files/4M26-Algorithms_and_Data_Structures...

Booklists

Introduction to Algorithms (3rd ed) by Cormen, T., Leiserson, C., Rivest, R., Stein, C. The MIT Press. ISBN:978-0-262-03384-8.

Also, please refer to the Booklist for Part IIB Courses for references to this module, this can be found on the associated Moodle course.

Examination Guidelines

Please refer to Form & conduct of the examinations.

 
Last modified: 17/01/2023 13:59