This module provides an understanding of data structures and algorithms and its significance in programming. It gives a holistic approach to design, implement and use the various data types and algorithms to solve problems.
Module Aim
This Module aims at equipping students with skills to use algorithms and data structures to solve real life problems. It also aims at providing an understanding on how to evaluate the efficiency of an algorithm.
Module Learning Outcomes
Upon completion of this module, the student should be able to:
1. Discuss the use of primitive data types and build-in data structures.
2. Develop programs using different data structures for various applications.
3. Implement user-defined data structures in a high-level programming language.
4. Describe the concept of recursion and illustrate its applications with examples.
5. Compare iterative and recursive solutions and determine the appropriate approach for different problems.
6. Identify the most suitable data structure for solving specific computational problems.
7. Analyse the time and space complexity of simple algorithms.
8. Discuss factors other than computational efficiency that influence the choice of algorithms.
9. Describe the performance of algorithms using asymptotic notation (Big O, Omega, and Theta) to express upper, lower, and tight bounds.
10. Design algorithms to address various problem scenarios.
11. Evaluate the computational efficiency of key algorithms for sorting, searching, and hashing.
12. Demonstrate the ability to select, evaluate, and implement appropriate algorithms within a programming context.