CS 483 Fall 2007
Data Structure and Analysis of Algorithms


Lecture Time: Tuesday and Thursday 3:00-4:15pm
Location: Robinson Hall B102
Course webpage:http://www.cs.gmu.edu/~lifei/teaching/cs483_fall07/
Credit:3

Instructor: Fei Li, Office 443 ST II, email: lifei@cs.gmu.edu
Office hours: Tuesday and Thursday 1:30-2:30pm

Teaching Assistant: Yanyan Lu, Room 365 ST II, email: ylu4@gmu.edu
Office hours: Wednesday and Friday 4:00-5:00pm


NEW:
11/01: Assignment 5 is posted. Due in class on Nov. 15.
10/23: Assignment 4 is posted. Due in class on Nov. 1.
10/18: Lecture note 15 is posted.
10/04: Lecture note 12 and assignment 3 are posted.
10/02: Lecture note 11 is posted.
09/27: Lecture note 10 is posted.
09/25: Correction: Assignment 2 is due in class on Oct. 4, Thursday.
09/25: Lecture note 09 is posted.
09/20: Assignment 2 is posted.
09/18: Suggested readings on "recurrences" and "divide and conquer" are added.
09/18: Fei's office hour is changed to Tuesday and Thursday 1:30pm - 2:3pm for the convenience of students.
09/13: Lecture note 06 is posted.
09/11: Lecture note 05 is posted.
09/06: Assignment 1 is available. Problem #5 is related to the next lecture but you can work on the others first.
09/06: Lecture note 04 is posted.
09/04: Lecture note 03 is posted.
08/30: Lecture note 02 is posted.
08/30: I will post the slides around noon on the days of classes.
08/29: Yanyan Lu's office is changed to Room 365.
08/28: Lecture note 01 is posted.

Course overview:
In this course, we will analyze computational resources for important problem types by alternative algorithms and their associated data structure; using mathematically rigorious techniques. We will analyze specific algorithms and their improvements. The course present the fundamentals about basic and useful algorithms. We will discuss how to design algorithms, how to prove their correctness, how to measure their performance (in terms of time and space), and how to improve their performance if possible.
Prerequisites:
CS 310 and CS 330 Calculus (MATH 113, 114, 213) and MATH 125. Please contact with the instructor if you are not sure.
Required Textbook:
Introduction to the Design and Analysis of Algorithms by Anany Levitin , Addison Wesley; 2nd edition (2007)
Course Materials:
Lecture Date Topic Lecture Notes Scope Others Assignments
01 Aug. 28 Introduction PDF, PDF2, PDF4 Chap. 1.1, 1.2, 1.4 Read Chap. 1 and Appendix A  
02 Aug. 30 Asymptotic notations PDF, PDF2, PDF4 Chap. 2.1 Read Chap. 2.1  
03 Sep. 4 Asymptotic notations PDF, PDF2, PDF4 Chap. 2.2 Read Chap. 2.2  
04 Sep. 6 Non-recursive and recursive algorithm analysis PDF, PDF2, PDF4 Chap. 2.3, 2.4, 2.5 Read Chap. 2.3 - 2.5 Assignment1
05 Sep. 11 Analysis of recursive algorithms; brute force PDF, PDF2, PDF4 Chap. 2.4, 2.5, 3.1, 3.2 Read Chap. 2.4, 2.5, 3.1, 3.2 MIT 6.042 notes [1] [2]
06 Sep. 13 Divide and conquer PDF, PDF2, PDF4 Chap. 3.4, 4.1 Read Chap. 3.4, 4.1 Prof. Jordan's notes [PDF]
07 Sep. 18 Divide and conquer PDF, PDF2, PDF4 Chap. 4.2 - 4.5 Read Chap. 4.2 - 4.5  
08 Sep. 20 Review       Assignment 2
09 Sep. 25 Elementary graph algorithms PDF, PDF2, PDF4 Chap. 5.2 Read Chap. 5.2  
10 Sep. 27 Transform and conquer PDF, PDF2, PDF4 Chap. 5.3 and 6.2    
11 Oct. 2 Transform and conquer PDF, PDF2, PDF4 Chap. 6.3    
12 Oct. 4 Heap sorting PDF, PDF2, PDF4 Chap. 6.4   Assignment 2 due. Assignment 3
  Oct. 9 Class canceled due to Columbus Day recess        
13 Oct. 11 Review        
14 Oct. 16 Midterm Chap. 1 - 6     Mid-term in class
15 Oct. 18 Hashing PDF Chap. 7.3 Read slides Assignment 3 due. A useful reading [PDF]
16 Oct. 23 Greedy Algorithms Distributed in class Chap. 9.1, 9.2 slides, Chap. 9.1, 9.2 Assignment 4
17 Oct. 25 Greedy Algorithms   Chap. 9.3    
18 Oct. 30 Dynamic Programming Distributed in class Chap. 8.2 slides, Chap. 8.2  
19 Nov. 1 Dynamic Programming   Chap. 8.4   Assignment 4 due. Assignment 5.
20 Nov. 6 Maximum-flow Distributed in class Chap. 10.2 slides, Chap. 10.2  
21 Nov. 8 Maximum-flow   Chap. 10.2    
22 Nov. 13 Maximum-matching and Stable Marriage Distributed in class Chap. 10.3, 10.4 slides, Chap. 10.3, 10.4  
23 Nov. 15 Problem reduction Distributed in class Chap. 11.1 slides, Chap, 11.1 Assignment 5 is due. Assignment 6.
24 Nov. 20 P vs. NP Distributed in class Chap. 11.3    
  Nov. 22 Thanksgiving. Class canceled.        
25 Nov. 27 P vs. NP   Chap. 12.3    
  Nov. 29 Class canceled.        
26 Dec. 4 Review (content + samples)   Chap. 12.3, Chap. 2 - Chap. 7   Assignment 6 is due.
27 Dec. 6 Review (homework solutions)   Chap. 8 - Chap. 12    
28 Dec. 11 Final exam       Tuesday, 1:30 - 4:15pm
Topics:
In this course, we will consider the algorithm design and alaysis techniques of various problems coming from the following areas:

  • Introduction fundamentals, problem types
  • Analysis of Algorithm Efficiency asymptotic notation, recursive and non-recursive algorithms
  • Brute Force sorting, searching, convex hull
  • Divide (decrease) and Conquer merge sort, quicksort, binary search, convex hull, insertion sort, BFS and DFS, topological sorting
  • Transform and Conquer balanced search trees, heapsort, problem reduction
  • Greedy Techniques minimum spanning tree, shortest path, Huffman tree
  • Dynamic Programming All-pairs shortest path, knapsack problem
  • Iterative Improvement simplex method, matching
  • Limitations of Algorithm Power and Coping with Limitations decision trees, P, NP, backtracking, branch-and-bound, approximation
Tentative Grading:
    • Biweekly assignments (40%)
    • Midterm Exam (25%)
    • Final Exam (35%)

Policies:
Assignments will normally be given out on Thursdays every two weeks. You are given two weeks to finish them unless for special notice. Hand in hard copies in class.
One late submission (up to one week past the due date) per person per semester is permitted. Send an email to the TA when you plan to use it.
Please note that all coursework is to be done independently. Plagiarizing the homework will be penalized by maximum negative credit and cheating on the exam will earn you an F in the course. See the GMU Honor Code System and Policies at http://www.gmu.edu/catalog/acadpol.html and http://www.cs.gmu.edu/honor-code.html. You are encouraged to discuss the material BEFORE you do the assignment. As a part of the interaction you can discuss a meaning of the question or possible ways of approaching the solution. The homework should be written strictly by yourself. In case your solution is based on the important idea of someone else please acknowledge that in your solution, to avoid any accusations.
You are allowed to take two pages of notes to the midterm and final exams, which will be handed in with the exam.
>