- Academic Registry
Programme & Unit Catalogues


CM20254: Data structures and algorithms

[Page last updated: 27 October 2020]

Follow this link for further information on academic years Academic Year: 2020/1
Further information on owning departmentsOwning Department/School: Department of Computer Science
Further information on credits Credits: 6      [equivalent to 12 CATS credits]
Further information on notional study hours Notional Study Hours: 120
Further information on unit levels Level: Intermediate (FHEQ level 5)
Further information on teaching periods Period:
Semester 1
Further information on unit assessment Assessment Summary: CW 25%, EX 75%
Further information on unit assessment Assessment Detail:
  • Problem Sheet 1 (CW 7%)
  • Problem Sheet 2 (CW 7%)
  • Problem Sheet 3 (CW 7%)
  • Multiple Choice Assignment (CW 4%)
  • Examination (EX 75%)
Further information on supplementary assessment Supplementary Assessment:
CM20254A - Examination Only (where allowed by programme regulations)
Further information on requisites Requisites: Before taking this module you must ( take CM10227 AND take CM10228 ) OR take XX10190 OR take EE10134
This unit will use Java as a programming language for examples and assignments. Some resources will be provided for students not familiar with Java, but students will need to allocate extra time to learn its basic principles.
Description: Aims:
To build on the students' understanding of algorithms and data structures and how to apply them. To facilitate the empirical assessment of algorithmic differences.

Learning Outcomes:
On completion of this unit, students will be able to:
1. determine the complexity of a variety of algorithms
2. carry out basic comparative empirical assessments of implementations of alternative algorithms
3. choose the right algorithms and data structures for the task in hand
4. General understanding of modern public key cryptography by the example of RSA cryptosystem.

Skills:
Use of IT (T/F, A), Problem Solving (T/F, A).

Content:
Complexity. Best, worst and average cases; time, space and other measures; big Ο, big Θ and big Ω; analysis of algorithms like selectionsort, heapsort, integer multiplication, recursive algorithms and others.
Data structures. Lists, stacks, queues, trees, hash tables, graphs, etc.
Algorithms and data structures in practice. The effect of the "hidden constant", and crossover points between algorithms, e.g., when to prefer bubblesort over quicksort; polyalgorithms; the gap between algorithms and implementations; how data structures affect the complexity of an implementation; computationally hard problems in everyday life.
Complexity of integer factorization and primality testing with application to RSA public key cryptosystem.
Further information on programme availabilityProgramme availability:

CM20254 is Compulsory on the following programmes:

Department of Computer Science
  • USCM-AFB06 : BSc(Hons) Computer Science (Year 2)
  • USCM-AAB07 : BSc(Hons) Computer Science with Study year abroad (Year 2)
  • USCM-AKB07 : BSc(Hons) Computer Science with Year long work placement (Year 2)
  • USCM-AFM01 : MComp(Hons) Computer Science (Year 2)
  • USCM-AAM02 : MComp(Hons) Computer Science with Study year abroad (Year 2)
  • USCM-AKM02 : MComp(Hons) Computer Science with Year long work placement (Year 2)
Department of Electronic & Electrical Engineering
  • UEEE-AFB13 : BEng(Hons) Computer Systems Engineering (Year 2)
  • UEEE-AKB13 : BEng(Hons) Computer Systems Engineering with Year long work placement (Year 2)
  • UEEE-AFM13 : MEng(Hons) Computer Systems Engineering (Year 2)
  • UEEE-AKM13 : MEng(Hons) Computer Systems Engineering with Year long work placement (Year 2)

CM20254 is Optional on the following programmes:

Department of Computer Science
  • USCM-AFB20 : BSc(Hons) Computer Science and Mathematics (Year 2)
  • USCM-AAB20 : BSc(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
  • USCM-AKB20 : BSc(Hons) Computer Science and Mathematics with Year long work placement (Year 2)
  • USCM-AFM14 : MComp(Hons) Computer Science and Mathematics (Year 2)
  • USCM-AAM14 : MComp(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
  • USCM-AKM14 : MComp(Hons) Computer Science and Mathematics with Year long work placement (Year 2)
Department of Mathematical Sciences
  • USMA-AFB15 : BSc(Hons) Mathematical Sciences (Year 2)
  • USMA-AFB15 : BSc(Hons) Mathematical Sciences (Year 3)
  • USMA-AAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 2)
  • USMA-AAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 4)
  • USMA-AKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 2)
  • USMA-AKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 4)
  • USMA-AFB13 : BSc(Hons) Mathematics (Year 2)
  • USMA-AFB13 : BSc(Hons) Mathematics (Year 3)
  • USMA-AAB14 : BSc(Hons) Mathematics with Study year abroad (Year 2)
  • USMA-AAB14 : BSc(Hons) Mathematics with Study year abroad (Year 4)
  • USMA-AKB14 : BSc(Hons) Mathematics with Year long work placement (Year 2)
  • USMA-AKB14 : BSc(Hons) Mathematics with Year long work placement (Year 4)
  • USMA-AFM14 : MMath(Hons) Mathematics (Year 3)
  • USMA-AKM15 : MMath(Hons) Mathematics with Year long work placement (Year 4)

Notes:

  • This unit catalogue is applicable for the 2020/21 academic year only. Students continuing their studies into 2021/22 and beyond should not assume that this unit will be available in future years in the format displayed here for 2020/21.
  • Programmes and units are subject to change in accordance with normal University procedures.
  • Availability of units will be subject to constraints such as staff availability, minimum and maximum group sizes, and timetabling factors as well as a student's ability to meet any pre-requisite rules.
  • Find out more about these and other important University terms and conditions here.