[ Announcements | Homeworks | Distributions ]



CSc 445 Introduction to Algorithms

Time and place Spring 2009
Tuesday and Thursday, 12:30-1:45pm
Family and Consumer Sciences 101
Optional discussion section Wednesday, 7:00-8:00pm
Family and Consumer Sciences 101
Dates
January 15
March 9
March 16-20
May 5
  First class
  Last day to drop with W
  Spring break
  Last class
Instructor John Kececioglu
kece@cs.arizona.edu
Gould-Simpson 720
(520) 621-4526
Assistants Amit Wadhwa
amitw@email.arizona.edu
Gould-Simpson 710F
(520) 621-4089

Tapasya Patki
tpatki@email.arizona.edu
Gould-Simpson 710C
(520) 621-4089

Office hours
Monday: 
Tuesday: 
Wednesday: 
Wednesday: 
Thursday: 
Friday: 
3:00-4:15pm  
2:00-3:15pm  
11:00-12:15pm  
12:15-1:30pm  
10:30-11:45am  
1:45-3:00pm  
Gould-Simpson 710F
Gould-Simpson 720
Gould-Simpson 720
Gould-Simpson 710C
Gould-Simpson 710C
Gould-Simpson 710F
  Amit
  John
  John
  Tapasya
  Tapasya
  Amit
Description After a short illustration of algorithm design and analysis, the course begins by reviewing basic analysis techniques (approximating functions asymptotically, bounding sums, and solving recurrences). We then study problems that are efficiently solvable, focusing on basic design techniques (divide-and-conquer, dynamic programming, greed, and amortization), graph algorithms (strongly-connected components, minimum spanning trees, shortest paths, and maximum flow), string algorithms (on- and off-line string matching), and geometric algorithms (convex hull and closest point-pair). We conclude with techniques for dealing with intractability (approximation algorithms and branch-and-bound).

The emphasis is on learning algorithm design (the ability to synthesize correct and efficient procedures for new combinatorial problems), acquiring an algorithm repertoire (a toolbox of classic algorithms for well-solved problems), and applying algorithm reduction (the ability to reduce new problems to known problems from your repertoire). These skills are developed through written assignments containing challenging exercises.

Prerequisites CSc 345, Analysis of Discrete Structures
Required text Thomas H. Cormen, Charles E. Leiserson, Ron L. Rivest, and Clifford Stein,
Introduction to Algorithms, second edition,
McGraw-Hill, Boston, 2001.
Optional text John Kleinberg and Eva Tardos,
Algorithm Design,
Addison-Wesley, Boston, 2006.
Syllabus The course is organized into six parts. After each topic below is the approximate number of lectures followed by chapter numbers from the text.

I   Background

  • Introduction (3; 1, 2): illustration of algorithm design and analysis with the maximum-sum subarray problem.
  • Analysis techniques (4; 3, 4, Appendix A): approximating functions asymptotically, bounding sums, solving recurrences.

II   Design techniques

  • Divide and conquer (1; 9): finding the kth smallest.
  • Dynamic programming (2; 15): longest common subsequence, matrix-chain multiplication.
  • Greed (2; 16): activity scheduling, Huffman coding.
  • Amortization (2; 17): potential functions, splay trees.

III   Graph algorithms

  • Fundamental algorithms (2; 22): depth- and breadth-first search, topological sorting, strongly-connected components.
  • Minimum spanning trees (2; 23): Prim's and Kruskal's algorithms.
  • Single-source shortest paths (2; 24): Dijkstra's and Bellman-Ford's algorithms.
  • All-pairs shortest paths (1; 25): Johnson's algorithm.
  • Maximum flow (3; 26): Goldberg and Tarjan's algorithm.

IV   String algorithms

  • On-line string matching (2; 32): Knuth-Morris-Pratt's algorithm.
  • Off-line string matching (2; outside material): suffix trees.

V   Geometric algorithms

  • Fundamental algorithms (4; 33): Line-segment intersection, convex hull, closest point-pair.

VI   Intractability

  • Approximation algorithms (4; 37): vertex cover, traveling salesman, set cover.
  • Branch and bound (3; outside material): traveling salesman, maximum cut.

VII   Linear programming (optional)

  • Modeling and solution (4; 29): applications, duality, simplex algorithm.
Exams There are two in-class exams and an optional final. The final is comprehensive and optional. Students attending the final must take it.
Homeworks There are seven homeworks, the last of which is optional, which occur roughly every two weeks.
Grading

Grades are determined from a weighted average of the percentage of points earned on homeworks and exams. The weights depend on whether the final is taken.

Without the final          
25%   Homeworks
37%   Exam 1
38%   Exam 2
With the final
25%   Homeworks
20%   Exam 1
20%   Exam 2
35%   Final
Attaining a weighted score of at least 90% guarantees an A in the course, at least 80% guarantees a B, at least 70% guarantees a C, and at least 60% guarantees a D. These thresholds may be lowered, but will not be raised.

The awarding of points on homework and exam questions is roughly according to the following scheme. Having the right solution idea and the right technical execution of this idea earns at least 90%. (Only a perfect write-up that cannot be improved earns 100%.) Having the right idea but with errors in its execution is at least 80%. Having the wrong idea and errors in its execution, but demonstrating comprehension of the material, is at least 70%. Having the wrong idea, errors in execution, and deficiencies in comprehension, is roughly 60%. Work that shows no understanding is roughly 50%.

On homework and exam questions, writing an answer that relates to the question guarantees at least 50% of the points for the question (which is a failing percentage). No points are awarded for writing nothing.

Homeworks may contain bonus problems. Points earned on bonus questions are not added to points for required questions. Bonus points are tallied separately at the end of the semester, and considered subjectively as a measure of effort when deciding whether to move up a student who is near a letter-grade boundary.

Policies

For the overall course grade, the instructor reserves the right to give a grade of D or E to a student whose weighted average on the exams is a D or an E.

On homework, very-high-level ideas can be discussed with friends, but solutions must represent individual work and must be written up separately. Use of solutions from previous offerings of the course is not permitted. Any material from the Internet that is used in a solution must be cited by its URL; to not cite it is plagiarism, which is considered cheating. (For more information, see the Department of Computer Science Course Policy on Collaboration and the University Code of Academic Integrity.)

When turning in solutions to homeworks, write only on one side of the paper, start each problem on a separate page, put the problems in the correct order, and staple the pages together. Neatness, and especially conciseness, is required to earn the highest marks. If a problem eludes solution, state this up front and write down only what you know to be correct. Rambling at length about attempts that didn't succeed may result in more points being deducted.

Homework that is late (submitted after the due date and time) is not accepted.

The grade on the last optional homework may be used to replace the lowest prior homework grade.

Requests for regrading homeworks or exams must be submitted within one week of receiving the graded homework or exam.

The exams during the semester are in-class. The final at the end of the semester is in-class, comprehensive, and optional.

There are no makeup exams. On missing an exam, the final may be used to replace one missed exam; grades will then be computed as if taking two exams and no final.

The attendance policy is that you are allowed one unexcused absence in the first week, two unexcused absences in the first four weeks, and four unexcused absences in the first eight weeks. On exceeding these limits, you may be dropped from class. Roll is taken at the start of class with a sign-in sheet; if your signature is not on the roll sheet, it counts as an absence.

Distributions

Grade distributions are available here.

Scores

Student scores, listed by CS ID number, are available here.

Announcements

The scores for students in the course are now available above.



[ Top | Department ]

http://www.cs.arizona.edu/classes/cs445/spring09/
John Kececioglu (kece@cs.arizona.edu)
6 May 2009