\documentstyle[12pt]{report}

\pagestyle{myheadings}
\def\headlineaux{\sc Math 220/317: Programming II/Data Structures 
\hrulefill
}
\markboth{\headlineaux}{\headlineaux}

\setlength{\textwidth}{6.25in}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}

\begin{document}

\begin{titlepage}
Blank Page
\end{titlepage}

\begin{minipage}{2in}
Prof. Rosenberg \\
Ungar 523, x--2575 \\
Office hours: TBA.
\end{minipage}
\hfill
\begin{minipage}{3in}
\begin{flushright}
MTH 220--T/MTH 317--T (Fall 93/4)\\
Time: Tu., Th. 5:00--6:15 P.M.\\
Room: MM 302
\end{flushright}
\end{minipage}


\begin{itemize}

\item {\bf Goals:}\\
The three goals of this course are,
\begin{enumerate}
\item Programming Practice:
   data structures, ADT, pointers, modules, objects
   and debugging.
\item Program Correctness:
   loop invariants, assertions, formal logic,
   and test strategies.
\item Algorithm Design and Analysis:
   classic algorithms for sorting and searching, recursion and the dogma
   of the ``Big Oh''. 
\end{enumerate}

\item {\bf Prerequisites:}\\
Students who have completed Math~110 and have taken Calculus~I
are prepared to take this course. We shall review the necessary
elementary knowledge of Pascal, algebra, set theory and formal logic.

\item {\bf Text:}\\
The first third of the course will make use of
{\em Oh! Pascal!: Turbo Pascal 6.0} by Doug Cooper.
This book is an excellent introduction to the art and science
of computer programming.
The remainder of the course shall follow Robert Sedgewick's
book {\em Algorithms}.

\item {\bf Computer Facilities:}\\
The programming work in this course will be done in Turbo
Pascal 6.0 or the new 7.0 running on an IBM PC compatible.
The laboratory CC~301 will be open for your use and you also have
access to PC's in your Residence Hall Colleges.
Students can buy Pascal 7.0 at a special price using
``Scholar Coupons'' and are encouraged to do so if they have
access to their own computer.

\item {\bf Homework:}\\
Homework will generally be programming assignments, given
on Thursdays and due the Friday of the next week.
Deposit a $3.5$ inch diskette containing the completed
assignment before 4:30 P.M. Friday at the Math Office, Ungar
515, or afterwards in a folder near my office. 
Homeworks will count for 60 \% of your grade.

\item {\bf Grading Programs:}\\
Programs are difficult to grade. Your documentation will aid the
grader in assigning points, especially when the program is not
completely working. Programs which do not compile are treated
harshly. Many students are under the delusion that only the compiler
stands in the way of successful completion of their programming
assignments. In fact, semantic correctness is miles down
the road from syntactic correctness, hence a non-compiling
program is certainly non-functional as well.

Programs will be graded as follows,
\begin{itemize}
\item[$\star$] 5 --- Program is excellent.
\item[$\star$] 4 --- Program is satisfactory.
\item[$\circ$] 3 --- Program runs but is not satisfactory. 
It may be that it breaks too easily, be incomplete or be badly written.
\item[$\circ$] 2 --- Program compiles but does not work.
\item[$\diamond$] 1 --- Program does not compile.
\item[$\diamond$] 0 --- No credible effort.
\end{itemize}

\item {\bf Lateness Forgiveness:}\\
Programs are due on the day specified, exceptions are made for up
to one week provided the reasons are valid.
There will be a one week period at the end of the term where up to
two programs can be resubmitted for an improved grade. 
This includes programs which were never submitted, which were more
than one week late, or which were rewritten for an improved grade.

\item {\bf Tests:}\\
There will be a midterm and a final to test the material on programming
correctness and algorithm analysis. They will each count for 20 \%
of your grade.

\end{itemize}

\end{document}
