﻿ CS 608 - Algorithms and Computing Theory

### CS 608 - Algorithms and Computing Theory

• Instructor: Prof. Sung-Hyuk Cha
• Email: scha@pace.edu
• Tel: (212) 346-1253
• Office: 163 William St. 2nd floor rm 228
• Office Hours: Monday 12:20pm~1:20pm, Tuesday 4:00pm~5:30pm, and Wednesday 12:20pm~1:20pm & 4:00pm~5:30pm

• CRN: 21934

• Meeting:

• Textbook: 7 Design Paradigms of Algorithm, by Sung-Hyuk Cha
(An online textbook in preparation to be distributed on blackboard. It shall be published in 2019.)
Suggested book: Introduction to Algorithms, Cormen, Leiserson, Rivest, and Stein, Third Edition, MIT Press.

• Resource: Dictionary of Algorithms and Data Structures

• Course Description:
The purpose of this course is to acquire a thorough grounding in the core principles and foundations of computer science. Students will learn methods for expressing and comparing algorithm complexity (worst- and average-case upper bounds, lower bounds) as well as to verify correctness. Algorithm-design techniques (divide-and-conquer, dynamic programming) as well as data structures (trees, heaps, hash tables) widely used in modern software development will be studied. The knowledge gained will be applied to a variety of practical problems, such as searching, sorting, and graph problems (shortest paths, minimum spanning trees). The question of what problems are hard to compute will be addressed with an introduction to NP-completeness theory, including the development of the NP-complete classification and the identification of NP-hard problems by reductions.

• Learning Outcomes
1. ability to analyze efficiency of algorithms and data structures [a];
2. ability to utilize and/or design data structures in problem solving [b];
3. ability to devise correct algorithms using various algorithm design techniques [b,c];
4. understand the difference between inefficient algorithms and “hard” problems [a].

• Prerequisites: CS 502 Minimum Grade of C

• Lecture Notes: can be accessed using the http://blackboard.pace.edu.

• Tentative Schedule:

WeekTopic Chapters
1 (1/30) Ch 1 Introduction, Summations, and Asymptotic notations
2 (2/6) Ch 2 Inductive Programming
3 (2/13) Ch 3 Divide & Conquer (Master theorem)
4 (2/20) Ch 4 Greedy algorithms
5 (2/27) Ch 5 Tabulation method
6 (3/6) Ch 6 Two dimensional tabulation
7 (3/13) Midterm
8 (3/20) Spring Break
9 (3/27) Ch 7 Stack and Queue
10 (4/3) Ch 9 Priority queue
11 (4/10) Ch 10 Reduction
12 (4/17) Ch 11 NP completeness
13 (4/24) Ch 12 Randomized and approximate algorithms
14 (5/1) Ch 8 Dictionary problem
15 (5/7) Final Exam

• Evaluation:
• Participation (10%): Attendance and class participation
• Homeworks (30%): There will be weekly homework assignments.
• Midterm (30%):
• Final Exam (30%):

• Accommodations for Students with Disabilities The University's commitment to equal educational opportunities for students with disabilities includes providing reasonable accommodations for the needs of students with disabilities. To request a reasonable accommodation for a qualified disability a student with a disability must self-identify and register with the Office of Disability Services for his or her campus. No one, including faculty, is authorized to evaluate the need for or grant a request for an accommodation except the Office of Disability Services. Moreover, no one, including faculty, is authorized to contact the Office of Disability Services on behalf of a student. For further information, please see Resources for Students with Disabilities at www.pace.edu/counseling/resources-and-support-services-for-students-with-disabilities.