Course Syllabus
CS 4349.003 Advanced algorithm design and analysis; Spring 2018; Tue/Thu 1:00-2:15 PM; ECSS 2.412
Class URL: https://www.utdallas.edu/~rbk/teach/2018/4349.html
Professor Contact Information
Balaji Raghavachari; (972) 883-2136; rbk@utdallas.edu; ECSS 4.225
Office hours: Tue/Thu 11:20-11:55 AM, 2:20-3:00 PM. Wed 9:00 AM - 1:00 PM, or by appointment.
Course Pre-requisites, Co-requisites, and/or Other Restrictions
CS 3345 or equivalent (Data structures and algorithms): Analysis of algorithms. Stacks, queues, and trees, including B-trees. Heaps, hashing, and advanced sorting techniques. Disjoint sets and graphs.
Course Description
Topics: Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms; Sorting and searching; Graph algorithms; Running time analysis; Proofs of correctness.
* Running time analysis of algorithms, order notation
* Mathematical background: sums of sequences, Logs and polynomials, recurrences, amortized cost
* Correctness of algorithms: loop invariants, proof by induction
* Divide and conquer: merge/quick sort, binary search, kth smallest and median, convex hull, n-bit multiplication
* Counting, radix, bucket sorts, sorting lower bound
* Dynamic programming: rod cutting, matrix-chain multiplication, activity selection, LCS, optimal binary search tree
* Greedy algorithms: activity selection, Huffman coding
* Graphs, encoding of graphs, DFS and its applications
* Minimum spanning trees: implementation and correctness of Prim/Kruskal
* Shortest paths: BFS, Bellman-Ford, DAG-shortest path, Dijkstra, Floyd-Warshall
* Max-flow problem: Ford-Fulkerson, Edmonds-Karp, max-flow min-cut theorem
* NP-completeness.
Student Learning Objectives/Outcomes
Study efficient algorithms for a number of fundamental problems, learn techniques for designing algorithms, prove correctness and analyze running times.
1.Ability to understand asymptotic notations, recurrences, algorithm analysis
2.Ability to understand divide and conquer algorithms
3.Ability to understand greedy algorithms
4.Ability to understand dynamic programming algorithms
5.Ability to understand graph algorithms
Required Textbooks and Materials
Introduction to Algorithms, 3rd ed., Cormen, Leiserson, Rivest, and Stein. MIT Press.
Assignments & Academic Calendar
Homework assignments and programming projects will be assigned almost every week.
Quiz 1: Feb 6 (Tue); Mid-term Exam: Feb 22 (Thu); Quiz 2: Mar 22 (Thu); Final exam: May 3 (Thu), 2:00-4:00 PM.
Grading Policy:
Score minimum requirement in each category to earn a grade: (1) weighted average of exams/quizzes, (2) homework assignments, (3) programming projects. Cut off scores:
A+: | 90% | A: | 87.5% | A-: | 82.5% | ||
B+: | 77.5% | B: | 70% | B-: | 65% | ||
C+: | 62.5% | C: | 60% | C-: | 57.5% | ||
D+: | 55% | D: | 52.5% | D-: | 50% |
Course & Instructor Policies
* Attendance policy: one grade reduction for missing 3 classes (without valid excuse and prior permission from instructor), and a grade of F for missing 5 classes without proper excuse. Send email to instructor prior to class, with proper excuse, to avoid being marked absent.
*Assignments are due in class on the specified date. Turn in what is completed by the deadline for partial credit. No late submissions will be accepted. All submissions must be your own work. Solutions copied from the internet, instructor's manual, etc. will be given zero credit.
*No browsing/email/gaming/social networking is allowed during the lectures. Students may not use phones during class. You must get instructor's approval to use computers in class.
*The following are not allowed in class: audio or video recordings, photos.
*Notes written by instructor on white paper will be scanned and posted on elearning.
*Regular class attendance and participation is expected and is the responsibility of each individual. There is a strong correlation between regular class attendance and good performance. You are responsible for any handouts, announcements, reading material and contents of lectures that you missed.
See also UTD's policies at https://go.utdallas.edu/syllabus-policies