Learning Outcomes:
On successful completion of this module the students will be able to:• Understand how to determine the amount of resources (such as time and storage) necessary to execute a particular algorithm (algorithm analysis);• Understand the object-oriented JAVA programming constructs needed to encode an algorithm;• Understand the structure, nature and use of fundamental data structures including, Arrays, Linked Lists, Stacks, Queues, Trees, Dictionaries, Graphs etc.;• Understand the object-oriented programming constructs needed to encode a data structure and its access algorithms;• Design programs using these constructs to solve large problems;• Successfully write, compile, debug and run programs using these constructs;• Analyse problems to determine the most appropriate data structures and algorithms that may be applicable to them.
Indicative Module Content:
- Running Time Analysis
- Sorting and Searching
- Arrays, Lists, Vectors
- Stacks, Queues, Deques, Priority Queues
- Trees, Dictionaries, Maps, Hashtables, Graphs