CMP741 ADVANCED ALGORITHMS ANALYSIS I

SPRING 2019

INSTRUCTOR: Engin Demir

LECTURES: Monday 14:00-16:45 @ D5

COURSE DESCRIPTION: The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want to (a) find an algorithm to solve the problem, (b) prove that the algorithm solves the problem correctly, (c) prove that we cannot solve the problem any faster, and (d) implement the algorithm. Designing an algorithm for a computational problem involves knowledge of the problem domain, a thorough knowledge of the data structures that are available and suitable and no small measure of creativity. This course concentrates on the above problems, studying useful algorithmic design techniques, and methods for analyzing algorithms.

You are expected to have mastered the material presented in BBM201, BBM202, and BBM205.

TEXTBOOKS:

Recommended Readings

Supplementary Course Videos:

GRADING POLICY:

Project & Paper

30

Midterm Exam

30

Final Exam

40

COMMUNICATION:

The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other communications will be carried out through Piazza. Please enroll it by following the links http://www.piazza.com/hacettepe.edu.tr/spring2019/cmp741

POLICIES:

All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated. In short, turning in someone else's work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else.

CLASS SCHEDULE

WEEK

DATE

BBM471 TOPIC

1

2/25/2019

Introduction to Algorithms

2

3/4/2019

Fundamentals of Algorithm Analysis

3

3/11/2019

Asymptotic Complexity

4

3/18/2019

Resolving Recursion

5

3/25/2019

Dive and Conquer

6

4/1/2019

Sorting Algorithms

7

4/8/2019

Medians and Order Statistics

8

4/15/2019

Midterm Exam

9

4/22/2019

Dynamic Programming

10

4/29/2019

Greedy Algorithms

11

5/6/2019

Amortized Analysis

12

5/13/2019

Graph Algorithms: BFS, DFS, MST

13

5/20/2019

Graph Algorithms: Shortest Path

14

5/27/2019

NP-Completeness