CS 5050 Advanced Algorithms, Spring 2006
- Time and place: Mon Wed Fri 12:30pm - 1:20pm, Main 119
- Course website: http://www.cs.usu.edu/~mjiang/cs5050/spring2006/
- Professor: Dr. Minghui Jiang
- Contact: mjiang at cc.usu.edu, 435-797-0347
- Office hours: Mon Wed Fri 1:25pm - 2:25pm, Main 402G
- Grader: Zheng Lu
- Contact: zhenglu at cc.usu.edu
- Office hours: Tue 10:00am - 11:00am, Wed 4:00pm - 5:00pm, Main 425 (the tutoring room)
- Textbook: Michael T. Goodrich and Roberto Tamassia.
Algorithm Design: Foundations, Analysis, and Internet Examples.
John Wiley & Sons, Inc.
ISBN: 0-471-38365-1.
- Course goals: The student will
-
Gain knowledge on a variety of common computational problems and their algorithmic solutions.
-
Be able to analyze the time and space complexities of an algorithm.
-
Be able to choose appropriate data structures in the design of an algorithm based on their mathematical properties.
-
Be able to recognize the conceptual connection between different computational problems.
-
Be able to design algorithms for new problems using standard algorithmic techniques.
- Preparation:
This is an "advanced" course on algorithms.
Its emphasis is not on implementation issues or programming skills;
instead, it is mathematically rigorous and requires intensive abstract
thinking.
The students are expected to prepare for each lecture
by reading related sections of the textbook before the lecture,
and to reinforce the learning
by diligently doing algorithmic exercises beside the homework assignments.
- Grading
- Homework (40%):
- homework 1: C-2.20, C-2.23, C-3.1, C-4.14, C-4.22
Statistics: high 10 low 0 average 8.34 stdev 2.57.
- homework 2: C-5.2, C-5.10, C-6.12
Statistics: high 10 low 3 average 7.84 stdev 1.58.
- homework 3: C-7.4, C-7.7, C-9.5
Statistics: high 10 low 0 average 8.46 stdev 2.27.
- homework 4: C-13.5, C-13.7
Statistics: high 9 low 0 average 6.74 stdev 2.61.
- In-class tests (30%):
- test 1
Statistics: high 10 low 3 average 5.99 stdev 1.85.
- test 2
Statistics: high 10 low 3.5 average 8.36 stdev 1.43.
- test 3
Statistics: high 10 low 4 average 7.48 stdev 1.47.
- Final exam (30%):
Statistics: high 21 low 0 average 7.76 stdev 4.53.
- Accumulated score (100%):
Statistics: high 86.5 low 37.5 average 60.97 stdev 11.27.
Grades: A (72.24) B (49.70) C
- Lectures (schedule subject to change)
- Mon, Jan 9: Syllabus. 5050 is a special number. Evil king and his poisoned wine. (Chapter 1)
- Wed, Jan 11: Linear data structures: stacks, queues, vectors, lists, sequences. (Sections 1.5, 2.1, and 2.2)
[Java API]
[Notes]
- Fri, Jan 13: Unordered dictionaries and hash tables. (Section 2.5)
[Notes]
- Mon, Jan 16: No class. (Dr. Martin Luther King, Jr. Day)
- Wed, Jan 18: One hundred professors: honest or deceitful? (Read handout)
[Notes]
- Fri, Jan 20: Ordered dictionaries and skip lists. (Sections 2.3, 3.1 and 3.5)
[Slides]
[Slides]
- Mon, Jan 23: Balanced search trees (Sections 3.1, 3.2, 3.3, and 3.4).
[Slides]
- Wed, Jan 25: Priority queues and heaps. (Section 2.4)
[Slides]
- Fri, Jan 27: Heap-sort, bucket-sort, and comparison of sorting algorithms. (Sections 2.4, 4.5, 4.6)
[Slides]
- Mon, Jan 30: Merge-sort, quick-sort, and lower bound. (Sections 4.1, 4.3, and 4.4)
[Slides]
[Slides]
[Slides]
- Wed, Feb 1: Randomized quicksort and selection. (Sections 4.3 and 4.7)
[Slides]
- Fri, Feb 3: Sets and union-find. (Section 4.2)
[Slides]
[Notes]
- Mon, Feb 6: Homework 1 due before class. Review solutions for homework 1.
[Solutions]
- Wed, Feb 8: Divide-and-conquer: recurrence. (Section 5.2.1)
[Slides]
[Notes]
- Fri, Feb 10: Divide-and-conquer: integer multiplication. The greedy method. (Sections 5.1, 5.2.2, and 5.2.3)
[Slides]
- Mon, Feb 13: Dynamic programming: matrix chain-product. (Section 5.3.1)
[Slides]
- Wed, Feb 15: Dynamic programming: 0-1 knapsack problem. (Sections 5.3.2 and 5.3.3)
- Fri, Feb 17: In-class test 1.
[Notes]
- Mon, Feb 20: No class. (President's Day)
- Wed, Feb 22: Review solutions for in-class test 1. Graphs. (Sections 6.1 and 6.2)
[Slides]
- Fri, Feb 24: Graph traversal and bi-connected components. (Section 6.3)
[Slides]
[Slides]
[Slides]
- Mon, Feb 27: Directed graphs and strongly connected components. (Section 6.4.1)
[Slides]
- Wed, Mar 1: Topological ordering. (Section 6.4.4)
[Tech-tree]
- Fri, Mar 3: All-pairs shortest path and Floyd-Warshall algorithm. (Sections 6.4.2, 7.2.1, and 7.2.2)
[The Man]
- Mon, Mar 6: Homework 2 due before class. Review solutions for homework 2.
[Notes]
- Wed, Mar 8: Single-source shortest paths: Dijkstra's algorithm. (Section 7.1.1)
[Slides]
- Fri, Mar 10: Single-source shortest paths: Bellman-Ford algorithm. (Section 7.1.2)
[X-Rates]
- Mon, Mar 13/15/17: No classes. (Spring break)
- Mon, Mar 20: Minimum spanning trees: Kruskal's algorithm. (Section 7.3.1)
[Slides]
- Wed, Mar 22: Minimum spanning trees: Prim-Jarnik algorithm and Baruvka's algorithm. (Sections 7.3.2 and 7.3.3)
- Fri, Mar 24: In-class test 2.
[Notes]
- Mon, Mar 27: Review solutions for in-class test 2. String matching. (Sections 9.1.1 and 9.1.2)
[Slides]
- Wed, Mar 29: Boyer-Moore algorithm. (Section 9.1.3)
- Fri, Mar 31: Knuth-Morris-Pratt algorithm. (Section 9.1.4)
- Mon, Apr 3: Homework 3 due before class. Review solutions for homework 3.
[Notes]
- Wed, Apr 5: Tries. (Section 9.2)
[Slides]
- Fri, Apr 7: Huffman coding. (Section 9.3)
- Mon, Apr 10: NP-completeness. (Sections 13.1 and 13.2)
[Slides]
- Wed, Apr 12: Reductions. (Section 13.3)
[Slides]
- Fri, Apr 14: Approximation algorithms. (Section 13.4)
[Slides]
- Mon, Apr 17: In-class test 3.
[Notes]
- Wed, Apr 19: Convex hull: Graham scan. (Section 12.5)
[Slides]
- Fri, Apr 21: Convex hull: Incremental. (Section 12.5)
[Slides]
- Mon, Apr 24: Homework 4 due before class. Review solutions for homework 4 and test 3.
[Notes]
- Wed, Apr 26: Computational geometry: map labeling with circles and circle pairs. (Read handouts)
[Slides]
- Fri, Apr 28: Review for final exam.
- Wed, May 3: Final exam.
[Solutions]
- Registration policy
-
The last day to add this class is January 30.
-
The last day to drop this class without notation on your transcript is
January 30.
-
Attending this class beyond January 30 without being officially registered
will not be approved by the Dean's Office. Students must be officially
registered for this course. No assignments or tests of any kind will be
graded for students whose names do not appear on the class list.
- Cheating policy:
-
Students are encouraged to discuss and exchange ideas on homework assignments,
but must write up the solutions independently;
neither discussion nor cheat sheets are allowed in tests and exams.
-
Students who are caught cheating immediately receive "Fail" grades.
- ADA compliance:
If a student has any disability that will likely require some accommodation by
the instructor, the student must contact the instructor and document the
disability through the Disability Resource Center, preferably during the first
week of the course. Any requests for special considerations relating to
attendance, method of instruction, taking of examinations, etc., must be
discussed with and approved by the Disability Resource Center and the
instructor. In cooperation with the Disability Resource Center, course
materials can be provided in alternative formats such as large print, audio,
diskette, or Braille.