Course objectives and syllabus

advertisement
Course Title
:
Data Structures and Algorithms
Course Code
:
DCO20105
Semester Hours (SH)
:
4
SH in Sem A
:
4
Credit Unit
:
3
Level
:
2
Pre-requisites
:
DCO10105 Object-Oriented Programming and Design
Pre-cursor
:
Nil
Semester A
:
Lectures
Laboratories
Total Hours
(Group Size)
:
Lectures
26
Laboratories/Tutorial
Teaching pattern
1.
Aims and Objectives
1.1
Aims
26
26
26 (20)
The aims of this course are:
1.2
(a)
Gain an awareness of the dependence of execution time, bandwidth and memory requirements
on the data structures and algorithms chosen;
(b)
Be able to reason informally about algorithm and data structure correctness and complexity;
(c)
Demonstrate intelligent selection of algorithms and representations; and
(d)
Demonstrate programming using an O-O language and its library.
Objectives
On completion of this course, students should be able to:
(a)
Show knowledge of the basic abstract data types and algorithms for storing, retrieval, and
searching;
(b)
design and implement linear and tree structures, as classes by choosing the appropriate classes
supported by the language’s library;
(c)
understand and analyse different sorting methods and their usage;
(d)
perform execution measurement and performance evaluation with asymptotic notation; and
(e)
apply and select the appropriate abstract data types for different applications.
2.
Syllabus
2.1
Abstract Data types (ADTs) of basic containers.
Linear ADT: Array/Vector, List, Deque, Stack, and Queue. Others: Tree with a focus on the BST,
Hash Map, Priority Queue (Heap) and Red-Black Tree.
2.2.
The design and implementation of the ADTs.
Defining Deque, Stack, and Queue with library’s vector and list. Implementing BST by pointer and
reference structures. Design of implementation concerns: Object vs Reference, Constant Reference,
Member function vs Non-Member function, Function Object. Applications on the basic ADTs.
2.3.
Algorithms and their performance analysis
Basic of Algorithm. Algorithm vs Container and Iterator. Execution Time Analysis and Measurement
with Asymptotic notation. Complexity of Sorting and Container Access: Traversal, Insertion,
Searching, and Removal. Decision on choosing a container and an algorithm.
3.
Teaching Methods
This course will emphasise both implementation skills and analytical techniques for the basic abstract data
types. Lectures are for the concept presentation and explanation of details of some of the abstract data
types’ implementation. Tutorials and labs will be weighed different as the course progress. Tutorials are
for students to better understand in order to perform discussion and analysis. Hands-on practice of program
implementation will be provided during laboratory sessions. Students are expected to carry out exercises
involving class design and implementation. Students are also expected to have a small application to
integrate the concepts and skills presented in the class
Demonstrations and explanations of programming language and quizzes will be arranged during the
lectures/tutorials where deemed appropriate.
4.
Assessment
Coursework
Examination
30% (Lab/Tutorial exercises and an assignment)
70% (Quizzes, tests, and a 2-hour final exam)
Examination includes continued assessments and a two-hour final exam. Continued assessments may be
quizzes and/or the mid-term exam arranged by the instructor throughout the progression of the course.
The total contribution of the continued assessments will be weighted not more than 40% of the
examination.
5.
Booklist
Ford, W. & Topp. W.: Data Structures with C++ using STL, 2nd Edition, Prentice Hall, 2002
Weiss, M.A.: Data Structures and Algorithm Analysis in C++, 2nd Edition, Addison-Wesley, 1999.
Collins, W.J.: Data Structures and the Standard Template Library, international Edition, McGraw-Hill,
2003.
Sahni, S.: Data Structures, Algorithms, and Applications in C++, international Edition, McGraw-Hill,
2000.
Josuttis, N.M..: The C++ Standard Library: A Tutorial and Reference, Addison-Wesley, 1999.
Download