Algorithms and Data Structures (IT)
Requirements of entry
To study the concept of algorithms, and how to analyse their efficiency.
To study the concept of abstract data types, and the abstract data types most
commonly used in software development.
To study the basic data structures most commonly used to represent these
abstract data types, together with algorithms operating on these data structures.
Intended learning outcomes
Understanding of the concepts of algorithms and algorithm complexity; ability
to understand algorithms expressed in a suitable notation; familiarity with
basic insertion, deletion, searching, merging, and sorting algorithms; ability to
implement these algorithms in a suitable programming language; knowledge
of the complexity of these algorithms.
Knowledge of when and how to use recursion in algorithms and programs.
Understanding of the concept of an abstract data type (ADT); ability to
understand ADTs specified informally; ability to design, specify, and
implement ADTs; familiarity with standard ADTs (strings, stacks, queues,
lists, sets, maps, trees, graphs); knowledge of how to decide which ADTs are
suitable for use in particular programs.
Familiarity with data structures commonly used to represent the above ADTs
(arrays, linked lists, search trees, hash tables); ability to implement these data
structures in a suitable programming language; knowledge of how the
complexity of ADT operations is affected by the choice of data structures.
Assessment Type Weighting
Course texts and required reading
Java Collections, Watt and Brown