Course Syllabus

CS 6363.004 Design and analysis of computer algorithms; Spring 2019; TR 10:00-11:15 AM; ECSW 1.355

Class URL: https://www.utdallas.edu/~rbk/teach/2019/6363.html

Professor Contact Information

Balaji Raghavachari; (972) 883-2136; [email protected]; ECSS 4.225

Office hours: Tue/Thu 2:20-3:00 PM, Wed 12:00 noon-2:00 PM, and by appointment.

Course Prerequisites, Co-requisites, and/or Other Restrictions

CS 5343 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; Computational complexity, lower bounds, NP-Completeness. Proofs of correctness.

* Running time analysis of algorithms, order notation

* Mathematical background: sums of sequences, Logs and polynomials, recurrences

* Correctness of algorithms: loop invariants, proof by induction

* Divide and conquer: merge/quick sort, binary search, median, n-bit multiplication, FFT, closest pair, convex hull

* Lower bounds, sorting lower bound

* Dynamic programming: rod cutting, matrix-chain multiplication, activity selection, knapsack, LCS, LMIS

* Greedy algorithms: activity selection, Huffman coding

* Graphs, DFS and its applications

* Minimum spanning trees: generic algorithm, implementation of Prim/Kruskal, disjoint sets

* Shortest paths: BFS, Bellman-Ford, DAG-shortest path, Dijkstra, Floyd-Warshall

* Max-flow problem: Ford-Fulkerson, Edmonds-Karp, Push/relabel, min-cost flow

* NP-completeness: introduction, reductions.

Student Learning Objectives/Outcomes

Study efficient algorithms for a number of fundamental problems, learn techniques for designing algorithms, prove correctness and analyze running times.

- Ability to understand asymptotic notations, recurrences, algorithm analysis
- Ability to understand divide and conquer algorithms
- Ability to understand greedy algorithms
- Ability to understand dynamic programming algorithms
- Ability to understand graph algorithms, flow networks
- Ability to understand NP-Completeness

Required Textbooks and Materials

Introduction to Algorithms, 3rd ed., Cormen, Leiserson, Rivest, and Stein. MIT Press.

Assignments & Academic Calendar

Homework assignments will be assigned every other week.

Mid-term Exam: Mar 14 (Thu); Final exam: as announced by the Registrar: Thu, May 9: 11:00 AM-1:00 PM.

Grading Policy:

Cut-off score for grades based on weighted total: exams (80%), homework assignments (20%):

A: 87.5% | A-: 80% | B+: 75% | B: 70% | B-: 65% | C+: 60% | C: 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 on elearning, 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.
- Written assignments can be submitted in class, but graded assignments will not be returned.
- 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/video recordings, photos.
- Notes from class, that is not in the textbook, 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

[Version 1.2: Jan 8, 2019]