\documentstyle [12pt]{article}
\setlength{\oddsidemargin}{-.4cm}
\setlength{\topmargin}{-2cm}
\setlength{\headheight}{0cm}
\setlength{\textheight}{24.5cm}
\setlength{\textwidth}{17.3cm}
\setlength{\topskip}{0cm}
\setlength{\parindent}{0cm}
\setlength{\parskip}{.05in}
%
\pagestyle{plain}
\begin{document}
\vspace*{-.5cm}

\begin{minipage}[b]{19mm}
\setlength{\unitlength}{.4mm}
\begin{picture}(45,30)(-22.5,-15)
\thicklines
%
\put(0,0){\circle{15}}
%
\thinlines
\put( 7.5,  0){\oval(30,30)[t]}
\put( 7.5,-15){\line(1,0){15}}
\put( 7.5,-15){\line(0,1){15}}
\put(22.5,-15){\line(0,1){15}}
%
\put( -7.5, 0){\oval(30,30)[b]}
\put( -7.5,15){\line(-1,0){15}}
\put( -7.5,15){\line(0,-1){15}}
\put(-22.5,15){\line(0,-1){15}}
%
\end{picture}
\end{minipage}
\begin{minipage}[b]{6cm}
\footnotesize \sf
Computer Science and Engineering
\\
Ferguson Hall -- 0115
\\
472-2402
\end{minipage}
\hfill
\begin{minipage}[b]{8cm}
\begin{flushright}
\LARGE \bf
Course Specification\vspace*{3mm}
\end{flushright}
\end {minipage}
\vspace{.2cm}
{\bf \hrule}
\vspace{.5cm}

%------------------------------------------------------------------------
% NOTES TO USERS: 
%
% 1. Underlined text in this form is notes to you; please delete them.
%
% 2. DO NOT UNDERLINE your replacement text.
%
% 3. Try to observe the prescribed page-break, if at all possible.
%
%------------------------------------------------------------------------

{\Large \bf \begin{center} CSCE-156 \\
Computer Science II \\
\end{center} }

\paragraph{Catalogue Description:}~ \newline
156. Computer Science II (3 cr) Lect 3.  Prereq:
Math 106 and CSCE 155 (or appropriate scores in placement exams).
Parallel: CSCE 235, 156L. 
Continued development of computer science and problem-solving with
emphasis on abstraction and object-oriented programming.  Additional
coverage of problem analysis, specification, top-down design, and 
modularization.  Strings, lists, stacks, queues, trees, heaps, graphs,
and sets as abstract data types.  Linear and linked data structures,
recursion, searching, and sorting.  Exposure to performance analysis,
correctness, application programmer interfaces, and software reuse.

\paragraph{Textbook(s) and/or Other Required Materials:}~ \newline
Nell Dale, {\em C++ Plus Data Structures}, or \\
Main and Savitch, {\em Data Structures and Algorithms Using C++}

\paragraph{Prerequisites by Topic:}~ 
\begin{enumerate}
\item {\bf Mastery} of a high-level language: control structures, functions
   and parameter passing, input and output, data types and rudimentary
   data structures.
\item {\bf Familiarity} with elementary computer science approaches for
   problem-solving including problem analysis and specification,
   top-down design, algorithm development, step-wise refinement,
   modularization, data and operation abstraction, and documentation.
\item {\bf Exposure} to creating usable interfaces including graphical
   user interface builders and event-based programming.
\end{enumerate}

\paragraph{Course Objectives:}~ 
\begin{enumerate}
\item {\bf Mastery} of elementary computer science approaches for
   problem-solving including problem analysis and specification,
   top-down design, algorithm development, step-wise refinement,
   modularization, data and operation abstraction, and documentation.
   Design and implementation of abstract data types; linear and linked
   data structures; data structures and operations for strings, lists,
   stacks, queues, trees - particularly binary trees, heaps, graphs, and sets.
\item {\bf Familiarity} with algorithms for searching and sorting;
   creating usable interfaces including graphical user interface
   builders and event-based programming, recursion, recurrence relations.
\item {\bf Exposure} to program analysis and correctness; software reuse
   and application programming interfaces such as for access to a
   relational database.
\end{enumerate}

\vfill
{\small ~ \hfill  \today}
\newpage
\paragraph{Topics Covered:}~ 
\begin{enumerate}
\item Software Engineering Principles: abstraction, functional decomposition,
  object-oriented design, correctness, life-cycle considerations. 
   (primarily review and consolidation)
\item Data Design and Implementation: data abstraction and encapsulation;
   inheritance and polymorphism, generic classes. 
\item ADTs: Unsorted and Sorted Lists - operations, specifications, array
  base implementation, binary search, 
  introduction to big-O; stacks and queues. 
\item Linked Structures as alternative implementations of stack and queue
  ADTs, complexity comparisons;  Circular and Doubly Linked Lists.
\item Programming with Recursion: examples, correctness, power.
\item Trees - traversals, searching; graphs.
\item Sets - implementation and operations.
\item Development of software with graphical user interface using an
  application programmer interface for accessing external data such as
  from a relational database.
\item Sorting and Searching Algorithms:  eg.~selection, bubble;
  implementation and complexity considerations.
\end{enumerate}


%\paragraph{Relationship of Course to Program Objectives:}~ \newline


%\paragraph{Contribution of Course to Meeting the Professional Component:}~ \newline


\paragraph{Class/Laboratory Schedule:}~ \newline
Lecture: 45 hours 
Laboratory: (See CSCE 156L Description.)

\paragraph{Prepared by:}~ \newline
Charles P. Riedesel, Senior Lecturer

\end{document}


