Module Catalogues, Xi'an Jiaotong-Liverpool University   
Module Code: CSE104
Module Title: Data Structures
Module Level: Level 1
Module Credits: 5.00
Academic Year: 2017/18
Semester: SEM2
Originating Department: Computer Science and Software Engineering
Pre-requisites: N/A
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.
Learning outcomes 
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.
Method of teaching and learning 
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.
Lectures 1-3 Introduction to Data Structures Data Structures, Data Types, and Abstraction Data Types; Abstraction, Information Hiding, and Encapsulation; Efficiency; Static vs. Dynamic data structures.
Lectures 4-9 (Multi-dimensional) arrays and vectors Abstract Datatype definition; Java arrays of objects (declaration, initialisation, use, iteration through array elements, iterators), data representation of arrays and access to array elements; Abstract Datatype definition; multi-dimensional arrays (declaration, initialisation, use, iteration); various internal representation of multi-dimensional arrays and access to elements of multi-dimensional arrays; Java vectors (declaration, initialisation, use); examples of multi-dimensional array and vector use.
Lectures 10-16 Lists Abstract Datatype definition; Realisation of lists using arrays; Singly linked lists in Java (declaration, initialisation, use, iteration); data representation of singly linked lists; Doubly linked lists in Java (declaration, initialisation, use, iteration); data representation of doubly linked lists; variations of lists including circular lists, their implementation using references or arrays; examples of list use.
Lectures 17-28 Stacks, Heaps and Queues Abstract Datatype definitions; Realisation of stacks, heaps and queues using lists or arrays; priority queues and their implementation; examples of stack and queue use.
Lectures 29-34 Trees Abstract Datatype definition (trees, binary trees); Realisation of trees using references or arrays; tree traversal; (binary) search trees; AVL trees; splay trees; (2,4) trees; red-black trees; B-Trees.
Delivery Hours  
Lectures Seminars Tutorials Lab/Prcaticals Fieldwork / Placement Other(Private study) Total
Hours/Semester 28     14  4    104  150 


Sequence Method % of Final Mark
1 Final Exam 80.00
2 Assessment Task 1 10.00
3 Assessment Task 2 10.00

Module Catalogue generated from SITS CUT-OFF: 10/22/2017 9:36:26 PM