CSC611
Design and Analysis of Algorithms
Course Description
This course addresses both the fundamentals and the research boundaries of algorithm design and analysis. Covered topics include complexity of algorithms, divide and conquer techniques, greedy methods, dynamic programming, recursive backtracking, amortized analysis, graph algorithms, polynomial-time problem reduction, NP-completeness, approximation algorithms and a selected advanced topic.
Course Learning Outcomes
Students shall be able to demonstrate:
Instructor
Professor Haidar M. Harmanani
haidar@lau.edu.lb • http://vlsi.byblos.lau.edu.lb • http://harmanani.github.io
Office Hours:
Block A • Room 810
Tuesday, Thursday • 3:00pm – 4:30pm • 8:00pm – 9:30pm or by appointment
Announcements
August 28, 2016: Fall classes begin
October 4, 2016: Last day for early withdrawal (WI)
October 26, 2016: Deadline for Incomplete grades
November 3, 2016: Midterm Examination
November 9, 2016: Last day for withdrawal from courses (WP/WF)
December 8, 2016: Fall classes end
Lectures
Lecture 1: Introduction to Algorithms
Lecture 2: Mathematical Background and Order Complexity
Lecture 3: Recurrence Relations
Lecture 4: Recurrence Relations [Continued]
Lecture 5: Divide and Conquer
Lecture 6: Divide and Conquer: Quick Sort
Lecture 7: Medians and Order Statistics
Lecture 8: Heaps, Priority Queues, and HeapSort
Lecture 9: Red-Black Trees, OS Trees, and Interval Trees
Lecture 10: Dynamic Programming
Lecture 11: Greedy Algorithms
Lecture 12: Graph Algorithms
Lecture 13: Graph Algorithms and Minimum Spanning Trees
Lecture 14: Shortest Path and Graph Algorithms
Lecture 16: NP-Completeness and Approximation Algorithms
Assignments
Project
The objectives of the project are to initiate students into research by converting the theoretical description of one or more algorithms into a functioning implementation while making a minor contribution. The following should be handed over upon the termination of the project:
Please check CADathlon Contest for projects selection and references
Exams
All students are expected to take exams during the scheduled time slots. With the permission of the instructor, you may be allowed to take an exam at an alternate time. However, you must request this rescheduling at least 2 weeks prior to the exam date. Exceptions will naturally be made for sudden problems such as serious illnesses/injury. Since the exam schedule is being published at the beginning of the semester, scheduling conflicts (e.g., job interviews, GREs, etc.) are not legitimate reasons to miss an exam.
Midterm Exam
The midterm exam is scheduled for November 3, 2016: Midterm Examination. The midterm exam will be a closed book exam. In principle, all topics discussed in class (whether on the lecture notes or not) and in the assigned readings are a legitimate source for exam questions.
Final Exam
The final will be comprehensive, with roughly 1/3 of the material devoted to material covered prior to the midterm. The exam will be on May 15, 2015 from 8:00 am - 11:00 am.
Grades
Midterm Grades
Final Grades
Course Grades
Resources
Readings