CS465/665: Analysis of Algorithms

Fall 2003

General Information Course Description Syllabus Assignments/Grading Announcements



Instructor: Monica Nicolescu

E-mail:monica@cs.unr.edu
Office:SEM 239
Phone:(775) 784-1687
Office hours:Monday, Wednesday: 1:00pm-2:00pm

Teaching assistant: Ekkasit Tiamkaew

E-mail:ekkasit@cs.unr.edu
Office:SEM 211
Phone:TBA
Office hours:Tuesday, Thursday: 11:00am-12.30pm

Time and Place

Monday, Wednesday and Friday: 11:00am-11:50am, SEM 261

Required Textbook

Introduction to Algorithms, Second Edition, 2001.
Authors: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein



Course description

The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want to (a) find an algorithm to solve the problem, (b) prove that the algorithm solves the problem correctly, and (c) prove that we cannot solve the problem any faster. Designing an algorithm for a computational problem involves knowledge of the problem domain, a thorough knowledge of the data structures that are available and suitable and no small measure of creativity. This course concentrates on the above problems, studying useful algorithmic design techniques, and methods for analyzing algorithms.

Prerequisites

CS 308 (Data structures). Good knowledge of data structures (such as linked lists and trees) and a good mathematical background are required.



Syllabus

Following are the topics that will be discussed, listed in the approximate order in which they will be covered.
  • Introduction/Mathematical Foundations (Chapters 1, 3, Appendix A)
  • Recurrences (Chapter 4)
  • Sorting Algorithms (Chapters 2, 8)
  • Randomized Algorithms (Chapters 5, 7, 9)
  • Data Structures (Chapters 6, 11, 12, 13, 14)
  • Greedy Algorithms (Chapter 16)
  • Dynamic Programming (Chapter 15)
  • Graph Algorithms (Appendix B4, Chapters 22, 23, 24, 25)
  • Selected Topics (Chapters 28, 30, 31, 34, 35)

Class schedule

The topics presented and the lecture notes for each class will gradually be posted below as we cover them in the class. The assignments and their due dates will also be posted in this table. Please check this web page regularly for updates.

Date Topic Readings Assignments

Aug 25

Introduction, Asymptotic notations Chapters 1, 3 ---

Aug 27

Mathematical background, recurrences (substitution method) Chapter 3: section 3.2, Chapter 4: section 4.1, Appendix A ---

Aug 29

Recurrences(recursion-tree method) Chapter 4: section 4.2 HW1 out - due on Sep 8

Sep 1

Labor Day - no classes --- ---

Sep 3

Recurrences(recursion-tree, master method), Insertion sort Chapter 4: section 4.3; Chapter 2: sections 2.1, 2.2 ---

Sep 5

Divide-and-conquer (merge sort), Bubble sort Chapter 2: section 2.3 ---

Sep 8

Probabilistic analysis and randomized algorithms Chapter 5 HW2 out - due on Sep 15

Sep 10

Probabilistic analysis and randomized algorithms, Quicksort Chapter 5, 7 ---

Sep 12

Randomized Quicksort Chapter 7 ---

Sep 15

Randomized Quicksort (cont.) Chapter 7 HW3 out - due on Sep 22

Sep 17

Partition, Medians and order statistics Chapter 7, 9 ---

Sep 19

Selection, Lower bounds on searching Chapters 7, 8 ---

Sep 22

Searching in linear time Chapter 8 HW4 out - due on Sep 29

Sep 24

Radix sort, bucket sort, heaps (MAX-HEAPIFY, BUILD-MAX-HEAP) Chapter 8: sections 8.3, 8.4, Chapter 6: sections 6.1, 6.2, 6.3 ---

Sep 26

Heaps, priority queues, Data structures(binary search trees) Chapter 6: sections 6.4, 6.5, Chapter 12: section 12.1 ---

Sep 29

Data structures: binary search trees (traversing, searching, min, max, successor, predecessor) Chapter 12 HW5 out - due on Oct 6

Oct 1

Data structures: red-black trees Chapter 13 ---

Oct 3

Red-black trees (cont.), Augmenting data structures (dynamic order statistics) Chapters 13, 14 ---

Oct 6

Augmenting data structures (interval trees), Hash tables Chapters 14, 11 ---

Oct 8

Hash tables Chapter 11 ---

Oct 10

Mid-term review --- ---

Oct 13

MID-TERM --- ---

Oct 15

Mid-term discussion, Hash Tables, Dynamic Programming Chapter 15 ---

Oct 17

Dynamic Programming: assembly line scheduling Chapter 15 ---

Oct 20

Dynamic Programming: matrix-chain multiplication Chapter 15 HW6 out - due on Oct 27

Oct 22

Dynamic Programming: matrix-chain multiplication, longest common subsequence Chapter 15 ---

Oct 24

Dynamic Programming: longest common subsequence, Greedy Algorithms Chapters 15, 16 ---

Oct 27

Greedy Algorithms Chapter 16 HW7 out - due on Nov 10

Oct 29

Homework problems - review ---

Oct 31

Nevada Day - no classes --- ---

Nov 3

Greedy Algorithms: the knapsack problem Chapter 16 ---

Nov 5

Greedy Algorithms: the knapsack problem (cont.), Huffman codes Chapter 16 ---

Nov 7

Huffman codes, Graph Algorithms Chapters 16, 22 ---

Nov 10

Graph Algorithms Chapter 22 HW8 out - due on Nov 17

Nov 12

Graph Algorithms: topological sort, strongly connected components Chapter 22 ---

Nov 14

Graph Algorithms, Minimum spanning trees Chapters 22, 23 ---

Nov 17

Minimum spanning trees, shortest paths Chapters 23, 24 HW9 out - due on Nov 24

Nov 19

Graph algorithms: Shortest paths Chapter 24 ---

Nov 21

Graph algorithms: Single source shortest paths Chapters 24, 25 ---

Nov 24

All-pairs shortest paths Chapter 25 HW10 out - due on Dec 3

Nov 26

All-pairs shortest paths, Strassen's matrix multiplication, Number theoretic algorithms Chapters 25, 28, 31 ---

Nov 28

Family Day - no classes --- ---

Dec 1

Number theoretic algorithms Chapters 25, 28, 31 ---

Dec 3

NP-Completeness Chapter 34 ---

Dec 5

NP-Completeness Chapter 34 ---

Dec 8

Final review --- ---

Dec 15

FINAL EXAMINATION --- ---



Assignments and grading

Homework assignments: There will be 10 homework assignments. The homeworks and their due dates will be posted on the course web page. Homeworks are due on their specified date at the beginning of the class. Some assignments will contain extra-credit problems and some may have a programming component. For each assignment the undergraduate students are required to solve the problems labeled U-required, while graduate students are required to solve all the problems. For the assignments that include extra-credit problems, the undergraduate students can earn extra-credit by solving either the extra-credit or the graduate level problems. Solutions to all the problems assigned will be provided.

Please make sure that you have a CS department computer account - you will need it for the programming assignments. You can obtain a CS department account by filling out the account registration form at the CS department.

Late policy: each late homework will incur a 10% penalty for each day of delay, but no homeworks may be submitted later than 3 days after the deadline.

Academic integrity: Students are encouraged to study together, however each student must individually prepare his/her solutions. Cheating or plagiarism are not permitted and will be sanctioned according with the UNR policy on Academic Standards. You should carefully read the section on Academic Dishonesty found in the UNR Student Handbook (copies of this section are on-line). Your continued enrollment in this course implies that you have read it, and that you subscribe to the principles stated therein.

Exams: there will be one mid-term (on October 13 - note the new date!) and one final exam (on December 15, between 9:45am and 11:45am). Both exams will be closed books, closed notes. Permission to take exams on other dates than scheduled will not be given, except for extreme medical emergencies.

Grading policy:
Homework:40%
Mid-term:30%
Final exam:30%

Grading scheme:
A:90 and above
B:80-89
C:65-79
D:55-64
F:<55




Announcements

Announcements regarding the assignments or other updates will be posted on the class web page and also sent by e-mail. Please check your UNR e-mail account, as this is the address I will use to contact you. If needed, implement e-mail forwarding.
  • [Wed, Sep 3] Homework 1 corrections:
    • problem 1 (a) should read "5 times n squared equals to OMEGA of n" and not "5 times n squared equals to 'O' of n".
    • problem 1 (e) should read "square root of 2 to the power lgn equals to Theta of square root of n" and not "square root of n to the power lgn equals to Theta of square root of n."
    Please download the updated version of the homework.
  • [Mon, Sep 15]: Mid-term date changed from October 27 to October 13.
  • [Mon, Oct 27]: All late submissions of Homework #6 should be turned in (to Ekkasit) before class on Wednesday, October 29, since the solutions to the problems from this assignment will be discussed during Wednesday's lecture.



Created by: Monica NICOLESCU (e-mail:monica@cs.unr.edu)
Last update: 10/08/2003