Lecture, seminar, demonstration, and hands-on exercises in the lab
1) Algorithm Analysis
2) Lists, Stacks, and Queues
3) Trees
4) Hashing
5) Priority Queues
6) Sorting
7) Recursion
8) Graph Algorithms
9) Algorithm Design Techniques
10) Advanced Data Structures and Implementation
The student will be able to:
1) discuss the fundamentals of algorithmic complexities;
2) carry out elementary analysis of algorithm;
3) determine the space and time complexity of an algorithm;
4) select the appropriate abstract data types such as queues, stacks for a small but realistic problem;
5) demonstrate more in-depth applications of other data types such as trees and graphs;
6) design and implement different programs using appropriate data structures through the use of programming languages (such as C++ or C# or Java) at the discretion of the instructor;
7) apply problem solving approaches such as “divide and conquer” in designing algorithms;
8) be familiar with some of the fundamental sorting techniques.
Assignments (3-5) 25-40%
Tests/MidTerm 30-45%
Final Examination 20-30%
Total 100%
Data Structures and Algorithm Analysis in C++, Mark Allen Weiss (Addison Wesley) Latest Edition or at the discretion of the instructor.
None
None
None