Show/hide main menu


4CCS1DST Data Structures

Credit value: 15
Lecturers: Dr Grigorios Loukides and Dr Vladmir Aleksic (office hours)
Semester: 2
Teaching pattern: weekly 2-hour lecture and 1-hour large-group tutorial, bi-weekly 2-hour practical session and three 1-hour small-group tutorials during the semester.


Formative assessment: coursework

Learning aims & outcomes
To introduce a number of data structures and algorithms in order to provide a toolkit for solving computational problems. To present analysis and implementations in Java of introduced algorithms and data structures. To develop further understanding and skills of programming in Java.

As a result of this module, you should be able to select and use the most appropriate data structures and algorithms to solve programming problems. You should also develop advanced programming skills by implementing such data structures and algorithms in Java. You should be able to estimate the computational performance of your chosen solution.

  • Concepts of Abstract Data Types (ADTs), Data Structures and Algorithms.
  • Object orientated implementation of ADTs.
  • Examples of ADTs (stack, queue, array list, node list, tree, priority queue, map, dictionary, hash table) and their implementations (arrays, linked lists, general trees, binary trees, heaps, hash tables, binary search trees).
  • Introduction to the performance analysis of algorithms.
  • Searching algorithms (linear, binary) and their efficiency.
  • Sorting algorithms (selection sort, insertion sort, merge-sort, quick-sort, heap-sort, bucket-sort) and their efficiency.
Suggested Reading and Resources (Link to MyReadingLists)
Sitemap Site help Terms and conditions  Privacy policy  Accessibility  Modern slavery statement  Contact us

© 2018 King's College London | Strand | London WC2R 2LS | England | United Kingdom | Tel +44 (0)20 7836 5454