CS 5050
Advanced Algorithms
Fall 2009
Professor: Dr. Nick Flann
Office: Old Main 402D
Office Hours: You are encouraged
to come to office hours whenever you have difficulties with the class.
Whatever
the problem, students should bring their class notes, program and
attempts at solving the problem with them.
Office Hour Times:
Tue, Thu: 10:30am - 11:30am, Main 402D
Other times by
appointment through email, see below.
Other help: If you cannot
come to office hours or want help outside office hours I recommend
emailing me a
clear and concise description of your problem or question. Often I will
be able
to get back to them immediately.
Email: nick.flann@usu.edu
Course website: Mostly blackboard (syllabus at http://www.cs.usu.edu/~flann/cs5050/)
Class Time:
Class Location: Eccles Business 214
Course Goal: Gain knowledge of a variety of computational problems and their algorithmic solutions
Learning Outcomes:
Prerequisites:
Advanced standing. This is an advanced algorithm course and as such,
you are expected to be an expert programmer. If you still struggle to
get a complex program working quickly, this class will probably to be
too hard for you.
Last day to add/drop: see www.usu.edu/registrar/dates
Assignments: There will be assignments and projects given throughout the class. Completed assignments need to be submitted before the due date and time. All assignments will be posted on the class web page and through blackboard. All completed work is to be submitted through blackboard. The deadline for assignments will be 11:59 pm on the due date. Late work will lose points.
Written assignments must be
submitted in pdf format. Code must be submitted as a .zip file that
contains all support files needed to run the code.
Programming: This class will include a mixture of assignments, many involving programming. While the book emphasizes the Java programming language, there is no specific programming language that must be used for assignments. You may use any language you wish. This is not a programming class. You are expected to be able to take an algorithm description and write your own program that implements the algorithm. Getting the algorithm to work will not be surficient to complete the assignment since most assignments will include an empirical component where the algorithm is run repeatedly on sets of problems and its performance evaluated. You must allow additional time to complete the assignment after the code is running. This additional time will be needed to perform multiple runs of the algorithm on randomly generated input and because we often need thousands of different runs on large input sizes, runs can take up to 24 hours. Then you need to allow more time to analyze the results and write up your report. In other words, start you assignments early!
Late Work: Will lose points. No work
can be submitted beyond 2 days late.
Quizzes: There will be
quizzes during the semester, given at the beginning of class. The
lowest
scoring quiz will be dropped from your final score.
Exams: There will be a total of 3 exams. Two midterm exams of duration 50 minutes and a final of duration 1:50 minutes.
The first exam will be given within
approximately
4 weeks, the second given within approximately 8 weeks. The final will
be
comprehensive and given at 7:30am Wednesday, Dec 9th in Business 214
Approximate Grading:
Assignments
55%
Quizzes
5%
Mid term Exams
20%
Final Exam
20%
Following each graded
assignment, quiz or
exam, a report detailing your scores, standing in the class and
percentage
available through blackboard. Please read this report
carefully. Errors in recording scores must be corrected as soon as
possible.
Re-grading: Occasionally, a
mistake may be made in grading. If you think you have found an error,
please
email nick.flann@usu.edu
as soon as
possible explaining the error, then come and see me during office hours.
Email: All students in
the class will need an email account in order to receive grade
information.
Your account on the usu system will be used unless you email a
different
address.
Learning
Style
I think learning is a lot more than
remembering the contents of power point slides! I will mostly teach
using the board, where we will dynamically develop problems and
solutions. I welcome your
participation! When I ask questions during class time, these are not
intended
to be rhetorical questions (i.e., I expect an answer). I will encourage
you to
develop problem-solving skills, which will be utilized during class,
test
taking and completing assignments. I will use power points when
appropriate and
will base the content of the lectures on the power points posted on the book website.
Rough Outline:
| Week | Topic |
| 1 | Chapter 1 Complexity, empirical analysis, math review, amortization |
| 2 | Chapter 4 Sorting |
| 3,4 | Chapter 5 Fundamental techniques of algorithm design |
| 5 | Chapter 6,7 Graphs and weighted graphs |
| 6 | Chapter 8 Network flow and matching graphs |
| 7,8 | Chapter 9 Text processing |
| 9,10,11 | Chapter 10 Number theory and FFT |
| 12,13 | Chapter 12 Computational geometry |
| 15,16 | Chapter 13 NP completeness and approximation algorithms |
Incomplete:
The University policy will be adhered to for incomplete. This means
that an
incomplete cannot be given to prevent receipt of a bad grade. Under no
circumstances can an incomplete be given for which a re-take of the
class is
required to make up the work. In such situations, a withdrawal or late
withdrawal is required. If a student feels that an incomplete is
appropriate,
it is their responsibility to immediately discuss the matter with their
instructor.
ADA Compliance:
If a student has a disability that will likely require some
accommodation by
the instructor, the student must contact the
instructor and
document the disability through the Disability Resource Center,
preferably
during the first week of the course. Any requests for special
considerations relating to attendance, pedagogy,
taking of
examinations, etc. must be discussed with and approved by the
instructor. In
cooperation with the Disability Resource Center,
course materials
can be provided in alternative formats, e.g. large
print, audio,
diskette, or Braille.
Fee:
Associated
with this class is a class fee of $25. Monies from this fee are used to
maintain lab facilities for the class, purchase software and licenses,
and
supervise the lab. In some cases, students may have their own computing
equipment, and thus feel that they do not need to use the lab. However,
the lab
must be maintained regardless of and individuals
use
of it, and thus the fee is charged to all registered for the class. If
you have
questions or concerns about the fee, please see the department head.