\documentstyle[10pt]{article}
\thispagestyle{empty}
\setlength{\topmargin}{-0.2 cm}
\setlength{\oddsidemargin}{-0.3in}
\setlength{\evensidemargin}{-0.3in}
\setlength{\textwidth}{6.8 in}
\setlength{\textheight}{9 in}
\input epsf
\parindent 0em
\parskip 1 em
\newlength{\s}\setlength{\s}{1in}
\newlength{\m}\setlength{\m}{2in}
\newlength{\B}\setlength{\B}{4in}
\newcommand{\pg}{\pagebreak}
\newcommand{\vs}{\vspace}
% \newlength{\piname}\settowidth{\piname}{Stephen E. Reichenbach}
\begin{document}
\begin{center}

CSCE 156H--Introduction to Computer Science II \\
Fall Semester 1995
\end{center}

1995--96 Catalog Data: CSCE 156H: Introduction to Computer Science II.
Credit 3. Open to students in the Honor's program and to others by
permission of the instructor.  An honors course covering the same
topics as CSCE 156 but in greater depth.

\begin{tabular}{lp{0.1in}p{5in}}
Textbook:  &  &
 Rick Decker and Stuart Hirshfield, {\em Working Classes:
Data Structures and Algorithms Using C++}, PWS Publishing,
1995. \\[0.4em]

Coordinator: &  &
Susan Wiedenbeck, Associate Professor, CS\&E \\[0.4em]

Goals: &  &
 The primary goal is to give Honors students in depth preparation for further studies
in computer science.  This course is designed to provide freshmen the
concepts of object oriented programming along with the skills associated
with program analysis, design, and maintenance using the language C++,
which is popular in the workplace as well as academic environment.
Students gain experience with more substantial programming projects
and complete their knowledge of C++ syntax.
\end{tabular}

Prerequisites by topic:

1. A logical, problem solving rigor as provided by mathematics
 through at least some calculus. \\
2. Familiarity with C++ syntax. \\
3. Programming structures including functions, selection and
 repetition statements, multiple file compilation units. \\
4. Data structures including atomic data types, compound data
 types (implemented in classes), basic use of pointers (for lists)
 and references. \\
5. Basic software engineering skills. \\
6. Introductory knowledge of inheritance and polymorphism.

Topics:

1. Preliminaries: Concept of abstract data type. Review of arrays,
 pointers, classes.
 (6 classes) \\
2. Lists: Linked list implementation.  Introduction to big O notation.
 (6 classes) \\
3. Strings: Inheritance.
 (8 classes) \\
4. Other linear structures: Stacks and queues, postfix arithmetic.
 (6 classes) \\
5. Recursion.  Sorting and searching algorithms.
 (8 classes) \\
6. Trees.
 (6 classes) \\
7. Specialized trees: AVL trees and B-trees.
 (5 classes) \\

Computer Usage:

1. Four or five substantial programming projects involving program
 and class analysis,
 maintenance, debugging, design, and coding.  Programming projects
are larger and more complex than those given in CSCE 156.

Laboratory projects:
%% (including major items of equipment and instrumentation used)
None.

ABET category content as estimated by faculty member who prepared this
course description: \\
\mbox{} \hspace{1in}
        Engineering topics: 3 credit or 100\% \\

Prepared by: Charles Riedesel   \hspace{3in}    Date: June 25, 1996
\end{document}

