New Course Proposal s1
Total Page:16
File Type:pdf, Size:1020Kb
NEW COURSE PROPOSAL
GRADUATE Level I Level II UNDERGRADUATE X
SCHOOL, DEPARTMENT, COLLEGE: College of Computing DATE: 11/9/07
1. Proposed Course Number:3511 2. Hours: LECTURE 3 LAB/RECITATION SEMESTER CREDIT 3 (Verify with Registrar's Office) 3. Descriptive Title: Design and Analysis of Algorithms, Honors
4. Recommended Abbreviation for Transcript – (24 characters including spaces): A L G O R I T H M S H O N O R S 5. Catalog Description – (25 words or less) Techniques of design and analysis of efficient algorithms for standard computational problems. NP-Completeness.Project.
6. Basis: L/G X P/F X Audit X 7. Prerequisites: CS1050,CS1331,Math3012
Prerequisites with concurrency:
Corequisites: 8. Has the course been taught as a special topic? No. If YES, When Enrollment
9. Is this course equivalent to another course (graduate or undergraduate) taught at Ga. Tech? If yes, list course number(s): CS3510 10. Are you requesting that this course satisfy: Humanities Social Science 11. Expected Mode of Presentation: MODE % of COURSE Lecture 90% Laboratory Supervised ______Unsupervised Discussion Seminar Independent Study 10% Library Work Demonstration Other (Specify) 12. Planned Frequency of Offering: TERM TO BE OFFERED EXPECTED ENROLLMENT Fall X 20+ Spring X 20+ Summer 13. Probable Instructor(s) – Please mark with an asterisk any non-tenure track individuals .A. Kalai, M.Mihail, D.Randall, V.Vazirani, S. Vempala, V. Venkateswaran, E.Vigoda
14. Purpose of Course: Relation to other courses, programs and curricula: This is the honors version of the fundamental Design and Analysis of Algorithms CS3510. CS3510 is a requirement in most of the threads of the College of Computing. In CS3511 we wish to offer more challenging problems and a reading project to ambitious students (there is always large variance in the students taking Design and Analysis of Algorithms, and ambitious, talented students don’t get challenged enough).
15. Required Elective X 16. Please attach a topical outline of the course Registrar 10/00 COURSE OUTLINE AND SYLLABUS
INTRODUCTORY CONCEPTS: computational problems, models of computation, order notation, recurrences.
DIVIDE AND CONQUER: Divide and conquer recurrences, merge-sort, Strassen’s multiplication.
SORTING: Heapsort, quicksort, lower bounds for comparison sorting, counting sort.
MEDIANS AND ORDERED STATISTICS: Linear time selection algorithms.
SEARCHING: Balanced binary trees.
DYNAMIC PROGRAMMING: Matrix-chain multiplication, optimal binary-search trees, longest common subsequence.
GREEDY ALGORITHMS: Huffman codes.
ALGORITHMS FOR FUNDAMENTAL GRAPH PROBLEMS: Dreadth first search, depth first search and their applications, connectivity, biconnectivity and strong connectivity, minimum spanning tree (Kruskal’s and prim’s algorithms) shortest paths (Dijkstra’s and Bellman-Ford algorithms), Warshall’s algorithm for transitive closure, algorithms for maximum flow and bipartite matching.
STRING MATCHING: Knuth-Morris-Pratt algorithm.
ALGEBRAIC ALGORITHMS: Fast Fourier Transform.
NUMBER THEORETIC ALGORITHMS: Euclid’s greatest common divisor algorithm, modular arithmetic and Chinese remainder Theorem, primality testing, basic cryptographic algorithms, including the RSA public key cryptosystem.
BASIC RANDOMIZED AND APPROXIMATION ALGORITHMS.
NP-COMPLETENESS: Basic notions such as reducibility and completeness. Examples of NP-complete problems.
READING/RESEARCH PROJECT: Read and report on 3-4 selected papers in a theory topic selected together with the instructor. The topic should exemplify either a specific algorithmic technique in depth, or the application of a specific algorithmic technique in a computer science application, or in another science on an issue directly related to computation.
TEXTBOOKS: Kormen, Leiserson, Rivest, “Introduction to Algorithms”, McGraw-Hill 1990, and/or DasGupta, Papadimitriou, Vazirani, “Algorithms”, McGraw-Hill 2006.