San José State University
Computer Science 255
Design and Analysis of Algorithms
Spring 2012
Tuesdays and Thursdays 10:30-11:45 in MH 422
Course Code: 20325
Information about the Instructor
Name: Sami Khuri
Office: 418 MacQuarrie Hall
Phone: 924-5081
Office Hours: Tuesdays and Thursdays: 11:45 - 13:50.
Catalog Description
Randomized algorithms. Parallel algorithms.
Distributed algorithms.
NP-completeness of particular problems. Approximation algorithms.
Prerequisite: CS155 or instructor consent.
Textbook: Required
Introduction to Algorithms
by T. Cormen, C. Leiserson, R. Rivest and C. Stein. The MIT Press;
Mc-Graw Hill, New York, Third Edition, 2010.
- We shall cover topics from chapters 1, 2, 3, 4, 7, 15, 16, 30, 34,
and 35 from the textbook.
- We shall also cover some topics that are not in the textbook.
- Before reaching the end of a chapter, I shall announce which topics
from the following chapter we shall cover.
- A copy of my notes will be sold at the begining of the semester.
The first part of the lecture notes will cost around $15.
Please have the correct change. Additional lecture notes will be
distributed during the semester (free of charge).
Learning Outcomes
On successful completion of CS 255, the student will:
- know how to analyze algorithms using mathematical tools, such as
asymptotic analysis, induction, recurrence relations, etc.
- have a full understanding of the four algorithmic techniques: greedy,
divide-and-conquer, dynamic programming, and branch-and-bound
- have studied a range of probabilistic algorithms, such as genetic
algorithms,
and seen how they can be used to solve optimization problems
- understand the general notion of complexity classes, P and NP,
completeness and hardness, and the relationships between classes by
reduction
- know how to prove that certain problems are NP-complete
- know when to use and also how to analyze approximation algorithms
- understand the importance of randomized, parallel and distributed
algorithms
- appreciate the beauty of algorithms
Course Requirements
Problem Sets:
Five homework assignments.
Only a subset of the assigned problems
will be graded (per homework), and you will get back
the homework a week after
submitting it. No late homework will be accepted.
Assignments are due in the beginning
of the lecture on the following dates:
- Homework One
due Thursday, February 9, 2012.
- Homework Two
due Thursday, February 23, 2012.
- Homework Three
due Thursday, March 15, 2012.
- Homework Four
due Thursday, April 5, 2012.
- Homework Five
due Thursday, April 26, 2012.
- Cover sheet for all assignments
There will be a group project. Information on the project, including
topics and deadlines, can be found
here.
Each group
consists of two
or three students.
The group chooses a topic, writes a term-project,
and gives an in-class, 20 or 30 minute presentation
(10 minutes per student) at the end of the semester during
class time (dates to be announced later in the semester).
A typical term-paper will involve a literature search on
the proposed problem and the comparison of several
algorithms to solve the chosen combinatorial optimization problem.
It will definitely include the implementation and the testing
of the different heuristics on a large number of problem instances
of the chosen optimization problem.
A two-page proposal of the student's chosen topic is due
by Tuesday, March 6, 2012.
The term-paper is due on Tuesday, May 1, 2012.
Exams:
Midterm Exam: Tuesday, March 13, 2012.
Final Exam: Monday, May 21, 2012, from 9:45 to 12:00.
The Midterm is one hour and 15 minutes long, and all exams are
in-class, closed-book and comprehensive. You will get back your
exam one week later. We will go over it in class and then I will collect
it again and it will stay with me.
Class Attendance
- Class attendance is strongly encouraged.
In class, we shall cover many
topics and examples that are neither in the class notes
nor in the textbook. If you miss a lecture,
it is your responsibility to find out what was covered in
class (this includes: handouts given
out during your absence, corrected typos and errors,
examples discussed in class - that
are neither in the book nor in the notes - clarifications
and changes made to assignments or the project, etc...).
- You are required to turn off and not use your cell phone in class.
You are also required to turn off your computer and put it away since you
will not need it during class.
Grading Policy
The final grade will be computed as shown below:
Assignments 15%
Term-project 25%
In-class Presentation 5%
Midterm Exam 25%
Final Exam 30%
[97, 100] A+
[90, 97) A
[87, 90) A-
[85, 87) B+
[80, 85) B
[77, 80) B-
[75, 77) C+
[70, 75) C
[65, 70) C-
[56, 65) D+
[53, 56) D
[50, 53) D-
[0, 50) F
Add/Drop Policy
For those wishing to add this course, the deadline is February 13, 2012.
The last day to drop with a full refund is February 6, 2012.
According to University and Department guidelines, dropping after
February 6, 2012, requires a serious and compelling reason to drop a
course.
Grades alone do not constitute reason to drop a course.
Students who stop attending without officially dropping will
be issued a U at the end of the semester which is counted as
an F in calculations of GPA. See University Catalog.
Academic Integrity
Your own commitment to learning, as evidenced by
your enrollment at San José State University, and the University's
Academic Integrity Policy requires you to be honest in all your
academic course work. Faculty members are required to report all
infractions to the Office of Student Conduct and Ethical Development.
The "Policy on Academic Integrity"
can be found
here.
Disability Resource Center
If you need course adaptations or accommodations because of a
disability,
or if you need special arrangements in case the building must be
evacuated, please make an appointment with us as soon as possible, or
see
us during office hours. Presidential Directive 97-03 requires that
students with disabilities requesting accommodations must register with
DRC to establish a record of their disability. (Please let us know as
soon as possible in order to more effectively accommodate your needs.)