You are on page 1of 6

Design and Analysis of Algorithms

CSC 6580 Winter, 2015

Instructor: Dr. Dongxiao Zhu


Office Number: Maccabee 14109.3
Office Hours: 2:00pm 3:00pm (TTH) or by appointment
Telephone Number: 313-577-3104
Email Address: dzhu@wayne.edu
GTA: Changxin Bai
Office Number: Maccabee 3211
Office Hours: 1:30pm 2:30pm (TTH) or by appointment
Telephone Number: 313-577-6711
Email Address: fc9908@wayne.edu
Time and Place of Class Meetings: Tuesday and Thursdays 11:45am 1:10 pm in 1151 Old Main.
Class Website: A schedule of topics and reading assignments may be
found on the Blackboard website. Please check this site often for any
changes to the schedule or announcements.
Description of Course Content: Best case, worst case, and expected case
complexity analysis; asymptotic approximations; solutions of recurrence
equations; probabilistic techniques; divide-and-conquer; the greedy
approach; dynamic programming; branch and bound; NP-completeness;
selected topics. Prerequisite: CSC 1500 and CSC 3110.
Required Textbook:
Introduction to Algorithms. T.H. Cormen, C.E. Leiserson, R.L. Rivest
and Stein, C. MIT Press, 3rd edition (2009). ISBN 9780262033848.
Course Objectives:
Upon completion of this course, students will be able to do the following:
Analyze the asymptotic performance of algorithms.
Write rigorous correctness proofs for algorithms.
Demonstrate a familiarity with major algorithms and data structures.
Apply important algorithmic design paradigms and methods of
analysis.
Synthesize efficient algorithms in common engineering design
situations.

Course Learning Outcomes:


Students who complete the course will have demonstrated the ability to do
the following:
Argue the correctness of algorithms using inductive proofs and
invariants
Analyze worst-case running times of algorithms using asymptotic
analysis
Describe the divide-and-conquer paradigm and explain when an
algorithmic design situation calls for it. Recite algorithms that employ
this paradigm. Synthesize divide-and-conquer algorithms. Derive and
solve recurrences describing the performance of divide-and-conquer
algorithms
Describe the dynamic-programming paradigm and explain when an
algorithmic design situation calls for it. Recite algorithms that employ
this paradigm. Synthesize dynamic-programming algorithms, and
analyze them
Describe the greedy paradigm and explain when an algorithmic design
situation calls for it. Recite algorithms that employ this paradigm
Synthesize greedy algorithms, and analyze them
Explain the major graph algorithms and their analyses. Employ graphs
to model engineering problems, when appropriate
Synthesize new graph algorithms and algorithms that employ graph
computations as key components, and analyze them
Explain the different ways to analyze randomized algorithms (expected
running time, probability of error). Recite algorithms that employ
randomization. Explain the difference between a randomized algorithm
and an algorithm with probabilistic inputs
Analyze randomized algorithms. Employ indicator random variables
and linearity of expectation to perform the analyses. Recite analyses of
algorithms that employ this method of analysis
Explain what amortized running time is and what it is good for
Describe the different methods of amortized analysis (aggregate
analysis, accounting, and potential method)
Perform amortized analysis
Explain what competitive analysis is and to which situations it applies.
Perform competitive analysis
Compare between different data structures. Pick an appropriate data
structure for a design situation
Explain what an approximation algorithm is, and the benefit of using
approximation algorithms. Be familiar with some approximation
algorithms, including algorithms that are PTAS or FPTAS. Analyze the
approximation factor of an algorithm

Student Outcomes:
a. An ability to apply knowledge of computing and mathematics appropriate
to the discipline
b. An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
c. An ability to design, implement and evaluate a realistic computer-based
system, process, component, or program to meet desired needs
d. An ability to function effectively on teams to accomplish a common goal.
e. An understanding of professional, ethical, legal, security, and social issues
and responsibilities
f. An ability to communicate effectively with a range of audiences
g. An ability to analyze the local and global impact of computing on
individuals, organizations and society
h. Recognition of the need for, and an ability to engage in, continuing
professional development
i. An ability to use current techniques, skills, and tools necessary for
computing practices
j. An ability to apply mathematical foundations, algorithmic principles, and
computer science theory in the modeling and design of computer-based
systems in a way that demonstrates comprehension of the tradeoffs involved
in design choices
k. An ability to apply design and development principles in the construction
of software systems of varying complexity
Assessment:
Assessment of how well outcomes are being achieved will be done by
applying a rubric to a random sample of at least 25% of the students who
have completed the work being used for assessment. Assessment tools are
quizzes, examinations/tests, lab assignments, and projects. For each
outcome being assessed, each student in the sample will be judged to (a)
Exemplary Competence, (b) Basic Competence (c) Approaching
Competence, or (d) Beginning Competence to meet an objective standard
designed to assess this outcome. The thresholds used are: Basic
Competence (70%), Exemplary Competence (80%). We will say that this
offering of the course achieved the particular outcome if and only if 70% or
more of the students sampled were assessed to be in categories (a) or (b).
Course Outlines (tentative):
Introduction/Mathematical Foundations (Chapters 1, 3, Appendix A)
Recurrences (Chapter 4)
Intro to sorting algorithms (Chapter 2)
Randomized algorithms and probabilistic analysis (Chapter 5)
More on sorting Algorithms (Chapters 6-9)
Searching algorithms (Chapters 11-14)

Dynamic programming (Chapter 15)


Greedy algorithms (Chapters 16)
Advanced data structures (e.g., Fibonacci heaps, Chapter 19)
Graph algorithms (Appendix B4, Chapters 22-25)
Selected topic: matrix operations (Chapter 28)
Polynomials and the FFT (Chapter 30)
Selected topic: NP-Complete problems (Chapter 34)
Approximation algorithms (Chapter 35)

Grading: The tentative grading breakdown follows:


Homeworks (approximately six) 15%
Two Midterm Exams 50%
Final Exam 35%
The grading scale will be:
90 - 100% A
85 - 89% A80 - 84% B+
75 - 79% B
70 - 75% B65 - 69% C+
60 - 64% C
55 - 59% C54 or below F
Note: You will receive the grade that you earn through your performance on
the homeworks and exams. I reserve the rights to give bonus points to who
actively participate in the class discussion. There will be no individual
exceptions to the grading policy, and, therefore grades of a C or F are
possible (even for graduate students). Please be sure that you have the
appropriate background (i.e., you did sufficiently well in your undergraduate
algorithms course) for the course. In addition, the course material,
homeworks,
and exams are expected to be quite challenging and time-consuming; you
should ensure that you fully devote the proper amount of time to
understanding the topics from lectures and homeworks.
Exams: There is a required (will be graded as a regular homework), initial
take-home exam/survey. All other exams are in-class, and closed-book and
closed-notes. We will have two (non-cumulative) midterm exams; the dates
of these exams will be announced early in the semester. We will have a
cumulative final exam. According to the final exam schedule on the
Registrars website, the location and time of the final exam for this course is
tentatively set for 10:40am 12:00pm, Friday, May 1, 2015 in Old

Main 1151. It is your responsibility to let me know immediately if you have


another exam that conflicts with this date and time.
Course Withdrawal Policy: Effective Fall 2011, the withdrawal deadline
from this semester forward will change from the WSU designated Study
Day at the end of the 14th week of classes to the end of the 10th week of
classes. Students who wish to withdraw must initiate the request in Pipeline
no later than Saturday, March 21, 2015. After the deadline, the Withdraw
option will not be available in Pipeline. The Registrars Office does not grant
exceptions to this deadline; so, please plan ahead and mark your calendar.
In the first two weeks of the (full) term, students can drop this class and
receive 100% tuition and course fee cancelation. After the end of the second
week there is no tuition or fee cancelation. Students who wish to withdraw
from the class can initiate a withdrawal request on Pipeline. You will receive
a transcript notation of WP (passing), WF (failing), or WN (no graded work)
at the time of withdrawal. No withdrawals can be initiated after the end of
the tenth week. Students enrolled in the 10th week and beyond will receive
a grade. Because withdrawing from courses may have negative academic
and financial consequences, students considering course withdrawal should
make sure they fully understand all the consequences before taking this
step. More information on this can be found at: http://reg.wayne.edu/pdfpolicies/students.pdf.
Special Needs: If you have a documented disability that requires
accommodations, you will need to register with Student Disability Services
for coordination of your academic accommodations. The Student Disability
Services (SDS) office is located in the Adamany Undergraduate Library.
The SDS telephone number is 313-577-1851 or 313-202-4216 (Videophone
use only). Once your accommodation is in place, someone can meet with
you privately to discuss your special needs. Student Disability Services
mission is to assist the university in creating an accessible community where
students with disabilities have an equal opportunity to fully participate in
their educational experience at Wayne State University.
Students who are registered with Student Disability Services and who are
eligible for alternate testing accommodations such as extended test time
and/or a distraction-reduced environment should present the required test
permit to the professor at least one week in advance of the exam. Federal
law requires that a student registered with SDS is entitled to the reasonable
accommodations specified in the students accommodation letter, which
might include allowing the student to take the final exam on a day different
than the rest of the class.

Please be aware that a delay in getting SDS accommodation letters for the
current semester may hinder the availability or facilitation of those
accommodations in a timely manner. Therefore, it is in your best interest to
get your accommodation letters as early in the semester as possible.
Collaboration Policy: You are encouraged to discuss and exchange ideas
with other students; however, you must complete your work on your own.
Academic Dishonesty: This course will honor the Universitys policy of
academic honesty. This policy follows. Wayne State University recognizes
the principles of honesty and truth as fundamental to ethical business
dealings and to a community of instructors and students. The University
expects students to respect these principles. As a point of academic
integrity, students are required to submit original material of their own
creation. Plagiarism of any material and cheating are serious offenses and, if
established with sufficient evidence, can result in failure of the course or
dismissal from the University.
Homework Policy: Homework assignments are due in class at the
beginning of lecture on the due date given. No late homeworks will be
accepted without prior approval.

You might also like