CS 3330: Algorithms

Semester: Summer 2018

Instructor: Sikder Huq, 101A MLH, sikderrezwanul-huq AT uiowa.edu

Class meeting time: MTWTh 9:30-10:45 AM in 205 MLH

Office Hours: MT 11AM - 12:30PM in 101A MLH and by appointment.

Teaching Assistant: David McDermott, david-mcdermott-1 AT uiowa.edu

TA Office Hours: TW 12:30-1:30PM in 301 MLH

Textbook

Algorithm Design

Klienberg and Tardos

As a reference, we may also use lecture notes from Jeff Erickson.

Course objectives

Upon successful completion of this course, students are expected to:   

The course is expected to cover the following topics:    

Grading

Final grade will be determined by the following components:

Homework assignments (30%): There will be approximately six homework assignments during the course. Some of the homework problems will be based on programming.

Exams (65%): There will be one mid-term and one final exam. The mid-term exam will cover 30% and final exam will cover 35% of the total grade.

Participation (5%): You are expected to actively participate in the class discussions. There might be be in-class exercises and short quizzes, and some of them will be graded.

Grades will be curved. CLAS expects senior level undergraduate classes to have the following approximate distribution: 22% A, 38% B, 36% C, 3% D and 1% F.

Late policy

You may use a quota of three days for the entire semester for late submissions. When you submit an assignment X days late, your quota gets decreased by X irrevocably. You can only be late by an integer number of days. For example, if you submit 5 hours after the deadline, your quota is depleted by one day. Once you use up your quota of three days, any assignment submitted late will not be accepted and you will get 0 points for that assignment.

Exams

Announcements and homeworks

Lecture summaries

Week 1 (6/11 - 6/14): 

Topics:

Links: (taken from Prof. Pemmaraju's algorithms course page)

Lecture slides: Introduction   GS-Algorithm-Demo    Asympotic_Analysis

Week 2 (6/18 - 6/21): 

Topics:

Lecture slides:   Graph_Algorithms  Topological_ordering_demo

Week 3 (6/25 - 6/28): 

Topics:

Lecture slides:   Greedy_algorithms   Interval_Scheduling_Demo    Dijkstra_Demo

Week 4 (7/2 - 7/5): 

Topics:

Lecture slides: Greedy_algorithms   MST_Demo 

Week 5 (7/9 - 7/12): 

Topics:

Lecture slides: Divide_and_Conquer     Mergesort_Demo    Counting_Inversions_Demo

Week 6 (7/16 - 7/19): 

Topics:

Lecture slides: Divide_and_Conquer    Dynamic_Programming   

Week 7 (7/23 - 7/26): 

Topics:

Lecture slides:  Dynamic_Programming   Network_Flow  FordFulkerson_Demo

Week 8 (7/30 - 8/1): 

Topics:

Lecture slides:  Network_Flow    NP-Completeness