Programmes

BACHELOR OF SCIENCE IN SOFTWARE ENGINEERING

SENG 12533

DATA STRUCTURES, ALGORITHMS ANALYSIS AND DESIGN

Status : Core Pre-requisite : SENG 11523 Co-requisite : None

 

On completion of this course, the student should be able to:

  • Illustrate the properties and implementation details of fundamental data structures and algorithms often used in computer programming
  • Design and successfully implement correct and efficient algorithms for real-world problems
  • Design efficient computer programs using data structures and algorithms
  • Manage the tradeoff between space requirements and efficiency of programs.

Algorithms:Correctness and efficiency of an algorithm, analysis of time and space complexities of algorithms, the best, worst, and average complexities of algorithms, the big O notation, Omega O notation, Theta O notation, growth rates, logarithms, analysis of classical searching and sorting algorithms, intractable problems and approximation algorithms, divide-and-conquer approach, recursion and backtracking, graph algorithms, dynamic programming, combinatorial search and heuristic methods.

Data structures: Fundamental data structures: arrays, structures, linked-list, stacks, queues, trees, dictionaries, hash tables and graphs, advanced data structures.

Lectures, supervised hands-on practical sessions and group work.

End of course unit examination and continuous assessment.

  1. Skiena, S S (2010).The Algorithm Design Manual. Springer
  2. Sahni, S (2005). Data Structures, Algorithms and applications in C++. Silicon Press
  3. Rowe, G W (1997). Introduction to Data Structures & Algorithms with C++. Prentice Hall
  4. Thomas H. C, Charles E. L, Ronald L. R. and Clifford S (2006) , Introduction to Algorithms, Prentice-Hall of India Pvt.

Back