Data Structures & Algorithms (VIP)



The knowledge to implement algorithms and data structures that solve real problems, and knowing the purpose, complexity and use of algorithms is part of an essential toolkit for software engineers. An algorithm is a sequence of instructions used to manipulate data held in a structured form and together constitute design patterns for solving a diverse range of computer problems, including network analysis, cryptography, data compression and process control.

This unit introduces students to data structures and how they are used in algorithms, enabling them to design and implement data structures. The unit introduces the specification of abstract data types and explores their use in concrete data structures. Based on this knowledge, students should be able to develop solutions by specifying, designing and implementing data structures and algorithms in a variety of programming paradigms for an identified need.

Among the topics included in this unit are abstract data types specification, formal data notations, data encapsulation, complex data structures, programming language implementations using handles, pointers, classes and methods, algorithm types, data structure libraries, algorithm complexity, asymptotic testing and benchmarking. On completion of this unit the student should be able to identify program data requirements, specify abstract data types using a formal notation, translate into concrete data structures and be able to develop, using a programming paradigm, different sorting, searching and navigational algorithms that implement complex data structures and evaluate their effectiveness.

As a result of studying this unit students will develop skills such as communication literacy, critical thinking, analysis, synthesis, reasoning and interpretation, which are crucial for gaining employment and developing academic competence.

Learning Outcomes

By the end of the unit students will be able to:

LO1. Examine abstract data types, concrete data structures and algorithms.

LO2. Specify abstract data types and algorithms in a formal notation.

LO3. Implement complex data structures and algorithms.

LO4. Assess the effectiveness of data structures and algorithms.

Translate »