\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 155--Introduction to Computer Science I \\
Fall Semester 1995
\end{center}

1995--96 Catalog Data: CSCE 155: Introduction to Computer Science I.
Credit 3. Introduction to computers; algorithms and algorithm
development; programming in a high-level programming language (C++)
with emphasis on good program structure and style.  Laboratory
assignments develop familiarity with both the numeric and
non-numeric aspects of computer science.

\begin{tabular}{lp{0.1in}p{5in}}
Textbook:  &  &
 Rick Decker and Stuart Hirshfield, {\em The Object Concept:
An Introduction to Computer Programming Using C++}, PWS Publishing,
1995. \\[0.4em]

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

Goals: &  &
 The primary goal is to prepare the student 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.
\end{tabular}

Prerequisites by topic:

1. A logical, problem solving rigor as provided by mathematics up to
calculus. \\
2. At least minimal typing/keyboarding skills.

Topics:

1. Designing with classes: Introduction; Thinking and programming
 in terms of classes is natural and effective. (4 classes)\\
2. The ingredients of classes: C++ atomic data types, simple
 operators, expressions, statements.  Then compound statements,
 function declarations and definitions.  Finally a complete program.
 (6 classes)\\
3. Class actions I: Selection statements:  Algorithm development
 in the context of classes. (6 classes)\\
4. Class actions II: Repetition statements:  Continued algorithm
 development in the context of classes. (5 classes)\\
5. Compound data: Extending declaration and use of objects to
 compound data types, i.e. classes, including arrays.  (6 classes)\\ 
6. Pointers and references:  Implementing dynamic arrays
 and modifiable function arguments. (6 classes)\\
7. Process I: Organizing and controlling classes: Basic software
 engineering skills in program specification, analysis, and design.
 (2 classes)\\
8. Inheritance: Hierarchy, inheritance, polymorphism, and virtual
 functions.  Its descriptive value and as motivation, heterogeneous
 lists. (6 classes)\\
9. Process II: Working with classes: Programming --
 coding, revising, testing, and debugging. (2 classes)\\
10. Algorithms: Brief introduction to searching, sorting, and
 recursion in context of member functions of a class. (2 classes)

Computer Usage:

1. Two assignments introducing an integrated development
 environment and fundamental computer skills. \\
2. Eight programming assignments involving program and class analysis,
 maintenance, debugging, design, and coding.

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{3.2in}  Date: June 25, 1996
\end{document}

