EPOKA UNIVERSITY
FACULTY OF ARCHITECTURE AND ENGINEERING
DEPARTMENT OF COMPUTER ENGINEERING
COURSE SYLLABUS
COURSE INFORMATIONCourse Title: ADVANCED ALGORITHMS & DATASTRUCTURES |
| Code | Course Type | Regular Semester | Theory | Practice | Lab | Credits | ECTS |
|---|---|---|---|---|---|---|---|
| CEN 567 | B | 99 | 3 | 2 | 0 | 4 | 7.5 |
| Language: | English |
| Compulsory/Elective: | Elective |
| Classroom and Meeting Time: | E-012 |
| Course Description: | An exploration of advanced algorithms in data structures using object-oriented design. An introduction to databases using Java. Course reviews main-memory data structures such as hash tables and trees. Disk-based structures such as persistent hash tables and indexed files. Architectural foundations for files, large scale sorting and serialization. |
| Course Objectives: | This course builds on the first-year Design and Analysis of Algorithms course. It introduces students to a number of highly efficient algorithms and data structures for fundamental computational problems across a variety of areas. Students are also introduced to techniques such as amortised complexity analysis. As in the first-year course, the style of the presentation is rigorous but not formal. |
|
COURSE OUTLINE
|
| Week | Topics |
| 1 | Intro. to Course and Review |
| 2 | Amortised analysis |
| 3 | Disjoint sets / union-find |
| 4 | Binary search trees |
| 5 | Mergeable heaps |
| 6 | Number theoretic algorithms + RSA |
| 7 | Fast Fourier transform |
| 8 | MIDTERM EXAM |
| 9 | Linear programming |
| 10 | Max flow in networks |
| 11 | String matching |
| 12 | Approximation algorithms |
| 13 | Stable matching |
| 14 | Stable matching cont |
| Prerequisite(s): | Analysis of Algorithms Data Structures |
| Textbook: | Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein, Introduction to Algorithms, MIT Press, 2009 (third edition). |
| Other References: | S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani, Algorithms, Mcgraw-Hill, 2006. J. Kleinberg and E. Tardos, Algorithm Design, Addison-Wesley, 2006. |
| Laboratory Work: | Yes |
| Computer Usage: | YES |
| Others: | No |
|
COURSE LEARNING OUTCOMES
|
| 1 | Be able to understand and apply amortised analysis on data structures, including binary search trees, mergable heaps, and disjoint sets. |
| 2 | Understand the implementation and complexity analysis of fundamental algorithms such as RSA, primality testing, max flow, discrete Fourier transform. |
| 3 | Have an idea of applications of algorithms in a variety of areas, including linear programming and duality, string matching, game-theory |
|
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution) |
| No | Program Competencies | Cont. |
| Professional Master in Computer Engineering Program | ||
|
COURSE EVALUATION METHOD
|
| Method | Quantity | Percentage |
| Homework |
5
|
5
|
| Midterm Exam(s) |
1
|
20
|
| Project |
1
|
20
|
| Final Exam |
1
|
35
|
| Total Percent: | 100% |
|
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
|
| Activities | Quantity | Duration(Hours) | Total Workload(Hours) |
| Course Duration (Including the exam week: 16x Total course hours) | 16 | 6 | 96 |
| Hours for off-the-classroom study (Pre-study, practice) | 4 | 7 | 28 |
| Mid-terms | 1 | 6.5 | 6.5 |
| Assignments | 5 | 7 | 35 |
| Final examination | 1 | 7 | 7 |
| Other | 3 | 5 | 15 |
|
Total Work Load:
|
187.5 | ||
|
Total Work Load/25(h):
|
7.5 | ||
|
ECTS Credit of the Course:
|
7.5 | ||