Theory of Algorithms

CSCI 400, Fall semester, 2016

 

To the Bottom of the Page

 

 

Instructor:  Dr. Shieu-Hong Lin                 Email:   Description: Description: Description: Description: Description: Description: Description: LinEmail

Class:  T Th: 10:30-11:45                  Location: LIB 141

 

Office Hours:

M~Th 8:30am~10:30am, MW 11:30~1:00pm Math & CS department at Grove 8

Contact Dr. Lin to set up an appointment in advance

 

TAs: Alvin Suh, William Tan                        TA hours: TBA

 

Textbook:

 

Course Syllabus

 

 

*************************************************************************************************

Late policy:

 

·       The submission link remains open for 2 more days after the due date as a grace period, but 1 point will be deducted for late submission after the due date while the submission link is still open.

·       You will receive no points after the submission link on canvas is closed unless it is something like a serious health issue with statements from the doctor as proof.

 

*************************************************************************************************

 

Week 1: Time Complexity of Algorithms

Reading #1 due: Thursday, Sept. 1: (i) Sections 2.1~2.2, and 2.4 of Algorithms Design. (ii) Read and think about this similarity-search problem.

 

Homework #1A due: Thursday, Sept. 1: Counting 2n numbers using a binary counter of n bits.

 

 

*************************************************************************************************

 

Week 2: Introduction to Greedy Algorithms

 

 

Homework #1B: due Thursday, Sept. 8.

 

*************************************************************************************************

 

Week 3: Classical Problems Solved by Greedy Algorithms

1.     Carefully review Sections 4.1, 4.2 and 4.4 of Algorithms Design.

2.     Read Section 4.5 of Algorithms Design.

3.     Continue to think about this truck refueling problem.

 

Homework #1C (Branch and bound): Due Thursday, Sept. 15.

 

*************************************************************************************************

 

Week 4: Greedy Algorithms and Proofs of Correctness

1.     Carefully review the proofs of correctness for the algorithms by exchange arguments in Sections 4.2~4.3, especially the one in Section 4.2.

2.     Read Sections 4.5 ~4.6 of Algorithms Design.

 

Homework #2A: Due Thursday, Sept. 22.

 

*************************************************************************************************

Week 5: Greedy Algorithms and Proofs of Correctness

1.     Read Sections 4.7~4.8

2.     Carefully review the algorithms and problems in Sections 4.1~ 4.6 of Algorithms Design and especially the proofs of correctness in Sections 4.1~4.3.

 

Homework #2B: due: Thursday, Sept. 29

 

*************************************************************************************************

Week 6: Introduction to Divide and Conquer.

 

*************************************************************************************************

Week 7: More on Divide and Conquer I.

 

 

 

*************************************************************************************************

Week 8: Test #1 | Torrey Conference

 

Test #1: Preparation for the test

 

Test #1 (open-book test):  Tuesday Oct. 18.

 

 

 

*************************************************************************************************

Week 9: More on Divide and Conquer II. Progress report

 

 

Homework #3A (Implementing integer operations with unlimited precision, Part A): due: Thursday, Oct. 27

 

*************************************************************************************************

 

Week 10: Dynamic Programming (I).

 

 

Homework #3B (Implementing integer operations with unlimited precision, Part B): due: Thursday, Nov. 3  (Submission link open till Nov. 10)

 

Homework 4:  Divide and conquer: the good vs the bad (i.e. How you divide and conquer does matter). Thursday, Nov. 3  (Submission link open till Nov. 10)

 

 

*************************************************************************************************

 

Week 11: Dynamic Programming (II).

 

*************************************************************************************************

 

Week 12: Dynamic Programming (III).

 

 

Homework #3C (Implementing integer operations with unlimited precision, Part C): due: Thursday, Nov. 17

 

 

*************************************************************************************************

Week 13: Computational Complexity: P, NP, and NP-Complete.

Reading #13:  Sections 8.1~8.4 on P, NP, and NP-Complete due: Thursday Dec. 1.

 

 

Homework #5. Due date: Thursday, Dec. 1.

 

 

*************************************************************************************************

 

Test #2 (in-class open-book test):  Tuesday Dec. 6.

 

 

Practice Problems in preparation for the final exam:

 

 

Final Exam (Test #3): Take-home open-book test):  Monday Dec. 19.

a)     Problem #1 20 points: 10 points for the polynomial-time reduction in 1.(ii); 5 points each for 1.(i) and 1.(iii).

b)    Problem #2 20 points: 5 points each for 2.(i) and 2.(ii) . 10 points for the implementation for 2.(iii).

c)     Problem #3 20 points: 5 points each for 3.(i) and 3.(ii) . 10 points for the implementation for 3.(iii).

d)    Problem #4 30 points: 5 points each for 4.(i) and 4.(ii) . 10 points for the proof in 2.(iii). 10 points for the implementation for 2.(iiv).

 

 

*************************************************************************************************

TA  hours:  T  Th 1:00~4:00pm (Alvin Suh, William Tan)

 

*************************************************************************************************

References for C++ STL algorithms and more: (i) the STL documentation  by SGI, (ii) the summary table of generic algorithms and examine example programs in the section of function objects from the book website of The C++ Standard Library - A Tutorial and Reference by Josuttis, and (iii) Appendix A.2 in C++ Primer for an overview of the generic algorithms.

 

*************************************************************************************************

 

To the Top of the Page