
\documentclass[12pt]{article}

\setlength{\parindent}{0em}
\setlength{\parskip}{0ex}
\usepackage[letterpaper,hmargin=1in,vmargin=1in]{geometry}

\newcommand{\comment}[1]{}
\renewcommand{\thepage}{}

\begin{document}

\setcounter{page}{1}

\renewcommand{\baselinestretch}{0.99}

\begin{center}
\LARGE CS 5633 Syllabus -- Spring 2007 \\
Analysis of Algorithms
\end{center}
\normalsize

Models of computation, design techniques such as divide-and-conquer
and dynamic programming, graph algorithms, and sets and union-find.
Additional topics chosen from pattern matching, integer and polynomial
arithmetic, and the fast Fourier transform.  Prerequisites: CS 3343 or
equivalent.  The objectives of this course are to give you an
understanding of the basic techniques for analyzing computer
algorithms and data structures and to give you practice applying these
techniques.

\subsection*{Instructor}

\begin{flushleft}
\begin{tabular}{@{}ll}
Name: & Tom Bylander \\
Office: & SB 4.01.38 \\
Phone: & 458-5693 \\
Email: & bylander@cs.utsa.edu \\
URL: & http://www.cs.utsa.edu/\verb|~|bylander/cs5633 \\
Office Hours: & Monday 10-11am, Wednesday 9am-10am, Friday 11am-12, or
by appointment
\end{tabular}
\end{flushleft}

\subsection*{Books}

\begin{flushleft}
\begin{tabular}{@{}lp{5.56in}}
Required: & T. Cormen, C. Leiserson, R. Rivest, and C. Stein, {\em
Introduction to Algorithms}, MIT Press, Second Edition, 2001.
\end{tabular}
\end{flushleft}

\subsection*{Grading}

\begin{flushleft}
\begin{tabular}{@{}ll}
Homework & 30\% \\
Midterm & 20\% \\
Final Exam & 30\% \\
Project & 20\%
\end{tabular}
\end{flushleft}
Homeworks (except for PS 3 and PS 6) can be submitted one lecture
late with a 10\% penalty.

\subsection*{Assignments}

6 problem sets will be assigned over the semester.  You will have
about 2 weeks for each problem set.  You will given credit for those
problems solved correctly.  There will be no partial credit for
incorrect solutions; however, you will be given an opportunity to fix
your mistakes, and you will get full credit for a problem if your new
solution is correct.

\vspace{.1in}

In an experiment this semester, the amount of credit you receive for a
given homework problem will be based on a system of ``inverse
proportion grading.''  The idea is that you get more credit for
solving harder problems.  Suppose that $m$ of $n$ students solve
problem $i$.  Then each student with the correct answer receives $n/m$
points for that problem.  One property of this system is the
following.  If a homework has 10 problems, each of which is solved by
at least one student, then the class average will be 10.

\vspace{.1in}

There will be one project in this course.  Tentatively, the project
will be on balanced binary tree algorithms.  Details will be provided
during the semester.

\vspace{.1in}

All homeworks and projects will be submitted and graded using WebCT.


\subsection*{Attendance and Participation}

Regular class attendance per se is not required, but note that the
homeworks, labs, and exams will be partly based on the lectures.
Make-up exams are permitted as long as it's a reasonable excuse, you
inform me in a timely fashion, and you document the excuse.
\comment{For example, you live several miles away from UTSA, your car
breaks down on the way to the midterm, you call me (or my answering
machine) that day to say that you are unable to make it, and you later
show me a repair bill.}

\subsection*{Tentative Schedule}

\begin{center}
\begin{tabular}{@{}rll@{}}

\underline{Day} & \underline{Topic} & \underline{Readings and Assignments} \\
\ \\

Jan. 22 & Introduction & {\S}1,{\S}2,{\S}28.2, Problem Set 1 Assigned \\
    24 & Order Notation & {\S}3 \\
    29 & Recurrences & {\S}4 \\
    31 & Probabilistic Analysis & {\S}5, PS 1 Due, PS 2 Assigned \\
Feb. 5 & Heapsort & {\S}6 \\
     7 & Quicksort & {\S}7, PS 1 Second Chance \\
    12 & Sorting Bounds and Linear Time Sorting & {\S}8 \\
    14 & Median Algorithms & {\S}9, PS 2 Due, PS 3 Assigned \\
    19 & Basic Data Structures & {\S}10 \\
    21 & Hash Tables & {\S}11, PS 2 Second Chance \\
    26 & Binary Search Trees & {\S}12 \\
    28 & Balanced Search Trees & {\S}13, PS 3 Due \\
Mar. 5 & Review for Midterm & PS 3 Second Chance \\
     7 & {\bf Midterm} \\
    19 & Midterm Results & PS 4 Assigned \\
    21 & B-Trees & {\S}18 \\
    26 & Dynamic Programming & {\S}15 \\
    28 & Greedy Algorithms & {\S}16 \\
Apr. 2 & Amortized Analysis & {\S}17, PS 4 Due, PS 5 Assigned \\
     4 & Union-Find Problem & {\S}21 \\
     9 & Basic Graph Algorithms & {\S}22, PS 4 Second Chance \\
    11 & Minimum Spanning Trees & {\S}23 \\
    16 & Single-Source Shortest Path & {\S}24, PS 5 Due, PS 6 Assigned \\
    18 & All-Pairs Shortest Path & {\S}25 \\
    23 & Flow Networks & {\S}26, PS 5 Second Chance \\
    25 & NP-Completeness & {\S}34 \\
    30 & NP-Completeness & {\S}34, PS 6 Due \\
May  2 & Review & PS 6 Second Chance \\
May  8 & \multicolumn{2}{l}{\bf Final Exam: 8pm to 10:45pm} 
\end{tabular}
\end{center}


\end{document}
