To introduce students to a wide variety of data structures and algorithms. To provide students with a coherent knowledge of techniques for implementing data strctures and algorithms. To discuss the advantages and disadvantages of the different data structures and algorithms. To introduce the main algorithms for fundamental tasks such as sorting and dictionary search.
On successful completion of this module, students are expected
1 - to understand and to be able to apply a wide variety of data structures, together with their internal representation and algorithms;
2 - to be able to make informed choices between alternative ways of implementation, justifying choices on grounds such as time and space complexity;
3 - to be able to select, with justification, appropriate data structures to ensure efficient implementation of an algorithm.
Students will be expected to attend three hours of formal lectures as well as to participate in one hour of supervised practicals in a computer lab in a typical week. Lectures will introduce students to the academic content and practical skills which are the subject of the module, while computer practicals will allow students to practice those skills. In addition, students will be expected to devote three hours of unsupervised time to solving continuous assessment tasks and private study. Private study will provide time for reflection and consideration of lecture material and background reading.Continuous assessment will be used to test to what extent practical skills have been learnt, in particular, assessment tasks will be solved individually and each solution comprises the resolution, using sound software engineering techniques, of the given problems expressed in terms of a requirements statement.