CS465/665: Analysis of Algorithms

Spring 2004

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:Tuesday, Thursday 10:30am-12:00pm

Teaching assistant: Ekkasit Tiamkaew

E-mail:ekkasit@cs.unr.edu
Office:SEM 211
Phone:TBA
Office hours:Wednesday: 1:30-4:30pm

Time and Place

Tuesday, Thursday: 4:00pm-5:15pm, 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

Jan 20

Introduction, Asymptotic notations Chapters 1, 3 ---

Jan 22

Recurrences: Iteration method, substitution method Chapter 4: Sections 4.1, 4.2 ---

Jan 27

Recurrences: Recursion trees, Master Theorem; Sorting: Insertion sort Chapter 4: Sections 4.2, 4.3, Chapter 2: Section 2.1 ---

Jan 29

Sorting: Bubble sort, selection sort, Merge sort Chapter 4: Section 2.3 Homework 1 out
Due on Feb 5

Feb 3

Sorting: Quicksort Chapter 7 ---

Feb 5

Sorting: Quicksort, Order Statistics Chapters 7, 9 Homework 2 out
Due on Feb 12

Feb 10

Sorting in linear time Chapter 8 ---

Feb 12

Heaps, Heapsort Chapter 6 Homework 3 out
Due on Feb 19

Feb 17

Binary Search Trees Chapter 12 ---

Feb 19

Red-Black Trees Chapter 13 Homework 4 out
Due on Feb 26

Feb 24

Augmenting Data Structures Chapter 14 ---

Feb 26

Hashing Chapter 11 Homework 5 out
Due on March 4

March 2

Hashing Chapter 11 ---

March 4

Mit-term review --- ---

March 9

MID-TERM --- ---

March 12

Dynamic Programming Chapter 15 ---

March 23

Dynamic Programming Chapter 15 Homework 6 out
Due on March 30

March 25

Dynamic Programming Chapter 15 ---

April 1

Dynamic Programming Chapter 15 ---

April 6

Dynamic Programming, Graph Algorithms: BFS Chapters 15, 22 Homework 7 out
Due on April 13

April 8

Graph Algorithms: DFS, Topological Sort, Strongly Connected Components Chapter 22 ---

April 13

Graph Algorithms: Minimum Spanning Trees Chapter 23 Homework 8 out
Due on April 20

April 15

Minimum Spanning Trees: Prim's Algorithm, Shortest Path Algorithms: Bellman-Ford Algorithm Chapters 23, 24 ---

April 20

Shortest Path Algorithms: DAG Shortest Paths, Dijkstra, All Pairs Shortest Paths Chapters 24, 25 Homework 9 out
Due on April 29

April 22

All Pairs Shortest Paths: Floyd-Warshall Algorithm, Number Theoretic Algorithms Chapters 25, 31 ---

April 27

RSA Public Cryptosystem, NP-Completeness Chapters 31, 34 ---

April 29

Final review --- ---

May 4

NP-Completeness Chapter 34 ---

May 6

FINAL EXAM: 4:30pm-6:30pm --- ---



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 and one final exam. 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 (tentative, subject to change):
Homework:40%
Mid-term:25%
Final exam:30%
Attendance and class participation:5%

Grading scheme (tentative, subject to change):
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.
  • March 3 - For Problem 2 on Homework 5, it is sufficient to show the results of your algorithm by counting only the number of nodes equal to "B" (the root).
  • March 25 - Next Tuesday (March 30) I will be out of town and Ekkasit will come to the class in my place.
    You will discuss solutions for Homework 6 and some of the most difficult problems in previous assignments. There will be no late HW 6 solutions accepted, since Ekkasit will discuss the solutions in class. Please submit your homework on Tuesday (March 30) at the beginning of the class.



Created by: Monica NICOLESCU (e-mail:monica@cs.unr.edu)
Last update: 04/12/2004