Engineering Algorithms & Data Structures (COE 428) deals with the fundamental means to approach the design and analysis of algorithms in an effective and methodologically correct manner. The student will acquire knowledge about general techniques for the design and analysis of algorithms as well as a collection of significant examples of solutions to representative problems. Furthermore, the student will have the opportunity to supplement the theory by writing actual programs in the C language during laboratory sessions.
8.
Introduction to
designing algorithms, dynamic programming, local search algorithms, and
various
forms of tree searching.
9.
Analysis of algorithm complexity.
The
following table gives a brief overview of the course topics and
assignments.
Week |
Topic |
Lab |
1 (Jan 9) |
Introduction. Course overview. Introduction
to
algorithms |
|
2 (Jan 16) |
Recursion |
|
3 (Jan 23) |
Complexity analysis |
|
4 (Jan 30) |
Data Structure |
|
5 (Feb 6) |
Stacks and queues |
|
6 (Feb 13) |
Hashing |
|
|
Study week | |
7 (Feb 27) |
Trees and Priority
Queues |
|
8 Mar 6) |
Binary Search Trees |
|
9 (Mar 13) |
Balanced BSTs (including Red-Black Trees) |
|
10 (Mar 20) |
Graphs |
|
11 (Mar 27) |
Elementary Graph Algorithm |
|
12 (April 3) | Elementary Graph Algorithm | |
13 (April 10) |
Review |
The
following table summarizes the marking scheme for the course.
Projects: |
30% |
Midterm: |
25% |
Final exam: |
45% |
You must
pass both the lab and theoretical portions of the course to get credit
for the
whole course. Late projects will not be accepted and will receive a
mark of 0