Data Structures: Course Objectives
Data Structures: Course Objectives
Course Description:
The purpose of this course is to provide the students with solid foundations in the basic
concepts of programming: data structures and algorithms. The main objective of the
course is to teach the students how to select and design data structures and algorithms
that are appropriate for problems that they might encounter. This course is also about
comparing algorithms and studying their correctness and computational complexity.
This course offers the students a mixture of theoretical knowledge and practical
experience using JAVA.
Course Objectives:
• Learn basic techniques of algorithm analysis (Big Oh analysis)
• Learn to write recursive and iterative methods.
• Learn the implementation of classic data structures such as linked list, Array List,
trees, and etc.
• Learn the advanced data structures such as balanced search trees, hash tables,
priority queues etc.
• Learn various kind of sorting algorithms including comparison sorts, divide and
conquer sorts etc.
• Learn some graph data structures and their algorithms
• Learn to become a master in utilizing the standard data structure library of a
major programming language (e.g. java.util in Java 5)
• Learn to become a master in analyzing problems and writing program solutions
to problems using appropriate data structures and algorithms.
Course Outcome:
After the completion of this course students have:
Reference Books:
• Data Structures and Algorithms in Java (4th edition) by Michael T. Goodrich and
Roberto Tamassia
• Data Structures & problem solving using JAVA by Mark Allen Weiss
• Data Structures with Java by William H. Ford
• Java: How to program, Deiteland Deitel
Tools/Languages:
Data structure animation
(**http://www.csse.monash.edu.au/~dwa/Animations/index.html**)
Eclipse editor for Java programming
Netbeans Editor (optional)
JAVA programming language
Grading Policy:
Midterm Exams: 20%
Final Exam: 30%
Quiz : 10%
Home Assignments: 10%
Lab work: 20%
Project: 10%