Instructor: 
Dr. Lijun Yin 
Time: 
M, W, 10:50am –
12:15pm 
Location: 
SL206 
Office: 
Q18 
Office Hours: 
M, W (2pm 3pm)

Email: 

Web Page: 
http://www.cs.binghamton.edu/~lijun/CS575_Fall2019/2019Fall_CS575.html 
TA: 
Mr. Xiaotian Li 
Office
Hours: 
Wednesday
(12:30pm2:00pm), Friday (11am – 12:30pm) at P17 (Engineering Building) 
Email: 
xli210@binghamton.edu 
Blackboard 
Analysis of common algorithms for processing strings, trees, graphs and networks. Complexity analysis and comparison of various algorithms; Algorithm design strategies: divide and conquer, dynamic, greedy, backtracking, branch and bound, linear programming; Introduction to NPcompleteness and parallel algorithms.
Prerequisites: CS240 and Math314.
We will be using the following major books as texts:
Grading criteria are approximate, and subject to minor change)
The assignments must be done with C/C++.
Please note that this syllabus is approximate, and subject to change.
Date 
TopicS 
READINGs 
AssignmentS 
suPPLEMENTAL MATERIALS 
8/21 
Introduction 
[1] Ch.1 and Class Notes(1) 


Complexity Analysis 
[1] Ch.2; [2] Ch. 1.11.3 and Classnotes(2) 




Asymptotic growth functions 
[1] Ch. 3 and Classnotes(3) [2] Ch.1.4

Assignment 1 Sample of data I/O (input and output) 
Review of mathematical induction, logarithms,
sums of series. [1] Chapter 3, 5156, Basic
Math Review [1] Appendix A Induction Review of basic searching algorithms
(sequential, binary); sorting
algorithms (mergesort, exchange sort, …) 

Proving correctness 
[1] Ch.2 1719 and Class notes (4) 



Recurrence 
[1] Ch.2 1719 and class notes (5) 

Review
of growth function and recurrence 

Recurrence (cont’d) 
[1] Ch. 4 
Assignment 2 File Format of Input Data (sample) 
Quiz1 

Divide and Conquer 
[1] Ch.7; [2] Ch.2 Class notes (6) 



Cont’d 
[1] 33.4 and supplemental material 



Cont’d and Heap sort 
[1] Ch.6; [2] Ch. 7.6 



Dynamic Programming and Optimality 
[1] Ch.15 [2] Ch.3 Class notes (89) 
Assignment 3 


LCS 


QuizII 

Floyd Algorithm 




Binary search trees and Memoization 
[2] Ch.3.1 [2] Ch.3.2, Ch.3.5 [1] Ch.15 



Cont’d and Graphs 
[1] Ch.22 
Assignment 4 
Prepare for midterm 

Graphs traversals 
[1] Ch.22 



Linear Programming 
Midterm exam 


Greedy 
[1] Ch.16; [2] Ch.4 



Cont’d 




Prim’s algorithm 
[2] Ch.4.1, Ch.4.2 [1] Ch.23.2 



Disjoint union set and Kruskal's algorithm 
[1] Ch.21, Ch.23.2 [2] Ch.4.1, Appendix C 



Cont’d 
Assignment 5 



Dijkstra’s algorithm 
[1] Ch.24.3 [2] Ch.4.2 



Knapsack Problem 
[2] Ch.4.5; [1] Ch.16.2 



Backtracking Branch and bound 
[2] Ch.5 and Class notes (19) [2] Ch.6.1.2 
Assignment 6 


NPCompleteness 
[2] Ch.9 

QuizIII 

NPCompleteness 
[2] Ch.9 



Traveling Salesman problem Approximation algorithm and Parallel algorithm 
[2] Ch.3.6, Ch.9.5.1 [2] Ch.9.5.1, Ch.11 
Term Project Presentation 
Review questions for final exam 

Cont’d and Amortized Analysis and Advanced topics 

Term Project Presentation 


Final Exam 

Term Project Report 
Final Exam 
· The standard rules on plagiarism apply (Academic Honesty – Letter to CS students)
·
The Watson School
Student Academic Honesty Code (https://www.binghamton.edu/watson/about/honestypolicy.pdf)
· Late assignments and term papers will not be accepted (unless approved by the instructor).
· Students must take each quiz and exam on the scheduled date and time.
· 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 CS57501 (http://blackboard.binghamton.edu/)