Data Structures and Algorithms Course Syllabus
Data Structures and Algorithms Course Syllabus
Data Structures and Algorithms Course Syllabus
Course Aims: To develop students’ knowledge in data structures and the associated algorithms.
To introduce the concepts and techniques of structuring and operating on Abstract
Data Types in problem solving. To discuss common sorting, searching and graph
algorithms, and to study the complexity and comparisons among these various
techniques
Calendar Description: This course develops students' knowledge in data structures and the associated
algorithms. It introduces the concepts and techniques of structuring and operating
on Abstract Data Types in problem solving. Common sorting, searching and
graph algorithms will be discussed, and the complexity and comparisons among
these various techniques will be studied.
Assessment:
Assessment Rubrics:
1
Level of Achievement Elaboration on Course Grading Description
Excellent (A) The student's performance is outstanding in almost all the intended course
learning outcomes.
Good (B) The student's performance is good in most of the intended course learning
outcomes.
Satisfactory (C) The student's performance is satisfactory. It largely meets the intended course
learning outcomes.
Marginal Pass (D) The student's performance is barely satisfactory. It marginally meets the
intended course learning outcomes.
Fail (F) The student's performance is inadequate. It fails to meet any of the intended
course learning outcomes.
References:
M.A. Weiss, Data Structures and Algorithm Analysis in Java, 3rd Edition, Addison-
Wesley, 2011.
M.A. Weiss, Data Structures and Algorithm Analysis in C++, 4th Edition, Addison-
Wesley, 2013.
Thomas H. Cormen, Introduction to Algorithms, 3rd Edition, MIT Press, 2009.
Course Content:
Topic
I. Algorithm Analysis
A. Mathematical background
B. Recursions
C. Big-o notations
D. Running time calculation
III. Trees
A. Tree traversals
B. Binary trees and binary search trees
C. AVL trees
D. B-trees
IV. Hashing
A. Hash function
B. Separate chaining
C. Open addressing
D. Rehashing
2
V. Priority Queues (Heaps)
A. Binary heaps
B. Applications of priority queues
C. D-heaps
VI. Sorting
A. Insertion sort
B. Shell sort
C. Heap sort
D. Merge sort
E. Quick sort
F. Bucket sort
G. External sorting