CS575-01 Design and Analysis of Computer Algorithms (Fall 2018)

Department of Computer Science

SUNY at Binghamton

Instructor:

Dr. Lijun Yin

Time:

M, W, 10:50am – 12:15pm

Location:

EB-J23

Office:

Q18

Office Hours:

M, W (2pm- 3pm)

Email:

lijun@cs.binghamton.edu

Web Page:

http://www.cs.binghamton.edu/~lijun/CS575_Fall2018/2018Fall_CS575.html

TA:

Mr. Huiyuan Yang

Office Hours:

Tuesday, Friday: 10am – 11am  at G-25 (Engineering Building)

Email:

hyang51@binghamton.edu

Blackboard

http://blackboard.binghamton.edu

Course Description

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 NP-completeness and parallel algorithms.

 

Prerequisites: CS240 and Math314.

 

Textbooks Recommended

We will be using the following major books as texts: 

 

Requirements

Grading criteria are approximate, and subject to minor change)

Computer Facilities

The assignments must be done with C/C++.

Syllabus

Please note that this syllabus is approximate, and subject to change.

Date

TopicS

READINGs

AssignmentS

suPPLEMENTAL MATERIALS

8/22

Introduction

[1] Ch.1 and Class Notes(1)  

 

 

Complexity Analysis

[1] Ch.2; [2] Ch. 1.1-1.3 and Class-notes(2) 

 

 

 

Asymptotic growth functions

[1] Ch. 3 and Class-notes(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, 51-56,  Basic Math Review
and slides (examples.ppt)

[1] Appendix A           Induction

Review of basic searching algorithms (sequential, binary); sorting algorithms (merge-sort, exchange sort, …)

Sample exercise

 

Proving correctness

 

[1] Ch.2 17-19 and Class notes (4)

 

 

 

Recurrence

[1] Ch.2 17-19 and class notes (5)

 

Review of growth function and recurrence

 

Recurrence (cont’d)

[1] Ch. 4

 Assignment 2

 

File Format of Input Data (sample)

Output format

 

 

 

Quiz-1

 

 

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

Class notes(7)

 

 

 

Dynamic Programming and Optimality

[1] Ch.15

[2] Ch.3  Class notes (8-9)

 Assignment 3

 

LCS

 

 

Quiz-II

 

 

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

Class-notes (10-11)

 Assignment 4

 

Prepare for mid-term

 

 

Graphs traversals

[1] Ch.22

 

 

Linear Programming

Class-notes (12-13)

 Term Project (Proposal)

Mid-term exam 

 

 

Greedy

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

Class-notes (14)

 

 

 

 

Cont’d

 

  

 

 

Prim’s algorithm

 

[2] Ch.4.1, Ch.4.2

[1] Ch.23.2

Class-notes (15)

 

 

 

 

Disjoint union set and Kruskal's algorithm

[1] Ch.21, Ch.23.2

[2] Ch.4.1, Appendix C

Class notes (16)  

 

 

Cont’d

 Assignment 5  

 

 

Dijkstra’s algorithm

 

[1] Ch.24.3

[2] Ch.4.2 

Class note (17)

 

 

 

 

Knapsack Problem

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

Class note (18)

 

 

 

Backtracking

Branch and bound

[2] Ch.5 and Class notes (19)   

 

[2] Ch.6.1.2

 Assignment 6

 

 

 NP-Completeness

[2] Ch.9

Class notes (20-21)

 

 

Quiz-III

 

NP-Completeness

[2] Ch.9

 

 

 

 

Traveling Salesman problem

 

 

Approximation algorithm and Parallel algorithm

[2] Ch.3.6, Ch.9.5.1

Class notes (22-23)

 

 

[2] Ch.9.5.1, Ch.11

Term Project Presentation

 

 

 

Review questions for final exam

 

 

 

Cont’d and Amortized Analysis

and Advanced topics

Class notes (24)

 

 

Term Project Presentation

 

Final Exam

 

Term Project Report

Final Exam

 

Monday (December 10, 2018)

8am-10am

at LH-009

 

Advice

·         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/honesty-policy.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 CS575-01 (http://blackboard.binghamton.edu/)