\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-155\\
Computer Science I\\
\end{center} }

\paragraph{Catalogue Description:}~ \newline
155. Computer Science I (3 cr) Lect 3. Prereq:
CSCE 101/101L and MATH 103 (or appropriate scores on placement tests).
Parallel: 155L.
Introduction to problem-solving with computers including problem
analysis and specification, algorithm development, program design,
and implementation in a high-level object-oriented programming language.
Laboratory assignments with both numeric and non-numeric applications
develop mastery of a high-level programming language and good programming
practices.

\paragraph{Textbook(s) and/or Other Required Materials:}~ 
\begin{enumerate}
\item Cohoon, Davidson, {\em C++ Program Design: An Introduction to Programming
and Object-Oriented Design}, 2nd edition, or
\item Walter Savitch, {\em Problem Solving with C++: The Object of
Programming} 2nd edition.
\end{enumerate}

\paragraph{Prerequisites by Topic:}~ 
\begin{enumerate}
\item {\bf Mastery} of mathematical problem solving skills as demonstrated
  by satisfactory completion of mathematics through college algebra,
  trigonometry, and pre-calculus.
\item {\bf Familiarity} with the rudiments of programming in 
  a high level language including simple data types and control structures.
\item {\bf Exposure} to use of system software for editing, compiling,
  executing, and debugging programs in a high-level language.
\end{enumerate}

\paragraph{Course Objectives:}~ 
\begin{enumerate}
\item {\bf Mastery} of a high-level programming language including
  data types and rudimentary data structures (eg.~arrays and
  strings), control flow, input and output, and procedures and functions.
\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,
  and data and operation abstraction, and documentation.
\item {\bf Exposure} to creating usable interfaces including graphical
  user interface builders and event-based programming.  Advanced
  computer science problem-solving topics such as layering, prototyping,
  and testing.  Programming techniques including recursion, elementary
  searching and sorting.
\end{enumerate}

\vfill
{\small ~ \hfill  \today}
\newpage
\paragraph{Topics Covered:}~ 
\begin{enumerate}
\item Problem solving overview including problem analysis and specification,
    algorithm development, step-wise refinement, and testing; [1 week]
\item Language fundamentals, program organization: basic data types, variables,
   constants, expressions, assignment.  [2 week]
\item  Input and output including interactive
   and file I/O, streams, and formatting.  [1 week]
\item Control flow including conditional execution and loops; boolean
   algebra review. [2 weeks]
\item Abstractions for problem-solving including top-down design,
   modularization, and operation and data abstraction. [1 week]
\item Concept of reuseable components; predefined functions - prototypes and
   interfaces, side effects; use of software libraries including
   those for math, standard input and output, files, and formatting.  
   [2 weeks]
\item Programmer-defined functions and procedures, parameters: pass by value
   and reference; scope rules; function overloading;
   recursive example. [2 week]
\item Data constructs including arrays, structures and classes;
   implementing and maintaining abstract data types. [2 weeks] 
\item Event-based programming using a graphical user interface builder
   and illustrating prototyping and layering.  [2 weeks]
\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 155L Description.)

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

\end{document}


