Semester: 2
ECTS: 6
Lectures: 30
Practice sessions: 30
Independent work: 120
Module Code: 24-00-506
Semester: 2
ECTS: 6
Lectures: 30
Practice sessions: 30
Independent work: 120
Module Code: 24-00-506

Module title:


Data structures and algorithms

Lecturers and associates:


Borna Skračić, Lecturer

Module overview:


This module introduces students to data structures and algorithms from two perspectives: the concepts they are built on and how to apply them to solve everyday programming problems.

This module is core to Software Engineering subspecialisation and it builds on and extends knowledge, understanding and skills learned in the Programming module in first semester to enable students to solve more complex programming problems and to provide further foundational learning for future modules. Skills learnt in this module will contribute significantly to students’ development as professionals in respecting fields.

Students will learn:
• abstract data types such as lists, linked lists, stacks, queues, hash tables, tree-based dictionaries and similar.
• concrete implementations in STL library.
• algorithms related to data structures such as modification, searching, sorting, iterating and similar.
• how to express and interpret algorithm complexity.

The module is taught in C++ programming language. The module assessment is based on solving a series of smaller practical tasks in C++ programming language and software development tool.


Literature:


Essential reading:
1. Stroustrup, B. (2013) C++ Programming Language. 4th edn. Boston: Addison-Wesley Professional.

Recommended reading:
1. O'Dwyer, A. (2017) Mastering the C++17 STL: Make full use of the standard library components in C++17. Birmingham: Packt Publishing.

Further reading:
1. Cormen, T. (2009) Introduction to Algorithms. 3rd edn. Cambridge: MIT Press.