|
Instructor: |
Dr. Lijun Yin |
|
Time: |
T, R 10:05am-11:30AM |
|
Location: |
Science Building 2 (room 140) |
|
Office: |
T18 |
|
Office Hours: |
T, R (9:00am –
10:00am) |
|
Email: |
|
|
Web Page: |
http://www.cs.binghamton.edu/~lijun/CS333_Fall2009/2009Fall_CS333.html |
|
TA: |
Mr. Nitin
Deshmukh" nitin.deshmukh@gmail.com;
"Shawn Canavan"
<scanava1@binghamton.edu> |
|
Office
Hours: |
Nitin
Deshmukh: W: 2:00pm – 4:00pm Office: T5 ( Shaun
Canavan: M,
W: 1:00pm – 2:00pm at N1 ( |
|
Lab
Session (ACT 50) |
R:
11:40am – 1:05pm (Science Library 310) |
|
Email: |
|
|
Blackboard |
Analysis of common algorithms for processing strings, trees, graphs and networks. Comparison of sorting and searching algorithms. Algorithm design strategies: divide and conquer, dynamic, greedy, backtracking, branch and bound. Introduction to NP-completeness and parallel algorithms.
Prerequisites: CS240 and Math314.
We will be using the following major books as texts:
References:
Your grade will be based on the following criteria:
The assignments must be done on Bingsuns with C/C++.
Please note that this syllabus is approximate, and subject to change.
|
Date |
TopicS |
|
AssignmentS |
LABS |
||||
|
9/1 |
Introduction |
[1] Ch.1 and Class Notes(1) |
|
|
||||
|
9/3 |
Analysis and problem size |
[1] Ch.2 and Class-notes(2) |
|
|
||||
|
09/8 |
Cont’d and counts |
[2] Ch.1.1-1.3, class-notes (3) |
|
|
||||
|
09/10 |
Asymptotic growth functions |
[1] Ch. 3 and Class-notes(4-5) [2] Ch.1.4
|
|
Review of basic searching algorithms
(sequential, binary); sorting algorithms
(merge-sort, exchange sort, …) Review of mathematical induction, logarithms,
sums of series. [1] Chapter 3, 51-56, Math
review |
||||
|
09/15 |
Asymptotic growth functions and proving correctness |
[1] Ch.2 17-19 and Class notes (6) |
|
|
||||
|
09/17 |
Recurrence |
[1] Ch.2 17-19 and class notes (7-8) |
|
Review of growth
function and recurrence |
||||
|
09/22 |
Recurrence (cont’d) |
[1] |
|
|
||||
|
09/24 |
Divide and Conquer |
[1] Ch.7; [2] Ch.2 Class notes(9-10) |
Review of Assignment 1 |
|||||
|
9/29 |
Cont’d |
[1] 33.4 and supplemental material |
|
Quiz-1 |
||||
|
10/1 |
Cont’d and Heap sort |
[1] Ch.6; [2] |
|
Review of Quiz-I |
||||
|
10/6 |
Dynamic Programming and Optimality |
[1] Ch.15 [2] Ch.3 Class notes (13-14-15) |
|
|
||||
|
10/8 |
LCS |
|
|
|||||
|
10/13 |
Floyd Algorithm |
|
|
Review of Assignment 2 |
||||
|
10/15 |
Binary search trees and Memoization |
[2] Ch.3.1 [2] Ch.3.2, Ch.3.5 [1] Ch.15 |
|
Quiz-II |
||||
|
10/20 |
Cont’d and Graphs |
[1] Ch.22 |
|
|||||
|
10/22 |
Graphs traversals |
[1] Ch.22 |
|
Review of Quiz-II Review of Assignment 3 |
||||
|
10/27 |
Cont’d |
|
|
|
||||
|
10/29 |
Greedy |
[1] Ch.16; [2] Ch.4 |
Prepare for mid-term |
|||||
|
11/3 |
Cont’d |
|
|
Mid-term exam |
||||
|
11/5 |
Prim’s algorithm |
[2] Ch.4.1, Ch.4.2 [1] Ch.23.2 |
|
Review of mid-term exam |
||||
|
11/10 |
Disjoint union set and Kruskal's algorithm |
[1] Ch.21, Ch.23.2 [2] Ch.4.1, Appendix C |
|
|
||||
|
11/12 |
Cont’d and Amortized Analysis |
|
||||||
|
11/17 |
Dijkstra’s algorithm |
[1] Ch.24.3 [2] Ch.4.2 |
|
Review of Assignment 4 |
||||
|
11/19 |
Knapsack Problem |
[2] Ch.4.5; [1] Ch.16.2 |
|
|
||||
|
11/24 |
Backtracking Branch and bound |
[2] Ch.5 and Class notes (26) [2] Ch.6.1.2 |
|
|
||||
|
12/1 |
NP-Completeness |
[2] Ch.9 |
Assignment 6 |
Review of Assignment 5 Quiz-III |
||||
|
12/3 |
NP-Completeness |
[2] Ch.9 |
|
Quiz –III (review) |
||||
|
12/8 |
Traveling Salesman problem Approximation algorithm and Parallel algorithm (wrap-up) |
[2] Ch.3.6, Ch.9.5.1 [2] Ch.9.5.1, Ch.11 |
|
Review of Assignment 6 Review questions for final exam
|
||||
|
12/10 |
Cont’d |
|
|
|
||||
|
12/16 |
Final Exam |
|
|
Final Exam
|
· The standard rules on plagiarism apply. Late assignments will not be accepted (unless approved by the instructor).
· Students must take each quiz and exam on the scheduled date and time.
· It is important to attend all the classes and lab sessions. The purpose of lab sessions is to
· The criteria of grading theory assignments are based on (1) correctness; (2) clearly written and analysis, and (3) correct solutions which would result in efficient code.
· The criteria of grading programming assignments are based on (1) correctness of solution and the analysis (including a general explanation of the main algorithm, justification of the data structure used, computation time analysis), (2) efficiency in terms of time and space, and (3) readability of the code (including comments on functions, variables and major operations, etc.) TA will post grades in blackboard for CS333 (http://blackboard.binghamton.edu/)