CMPS 221, 
 
 
 
 
V.1, 
| 
   Catalog Description:  | 
  
   Introduces the fundamentals of procedural
  programming. Topics include 
  data types, control structures, functions, arrays, and standard
  and file I/O. The mechanics of compiling, linking, running, debugging and
  testing within  a
  particular programming environment are covered. Ethical issues and an
  historical perspective of programming within the context of computer science
  as a discipline are given.  | 
 
| 
   Prerequisite:  | 
  
   Math
  101 or above, or approval of the instructor.  | 
 
| 
   Units:  | 
  
   5  | 
 
| 
   Coordinator:  | 
  
   | 
 
| 
   Goals:  | 
  
  | 
 
| 
   Current Text:  | 
  
   Problem Solving with C++, 6th edition. Walter Savitch. Publisher: Addison Wesley, 2007. ISBN 0-321-41269-9  | 
 
| 
   Topics:  | 
  
   ·       
  History of Computers and
  Programming ·       
  Machine level representation of
  data and instructions ·       
  Fundamental Programming
  Constructs ·       
  Simple Data Types ·       
  Input/Output ·       
  Sequential algorithms ·       
  Conditional and Iterative
  Control Structures             Problem Solving             Algorithm Development ·       
  Functions and Parameter Passing             Recursion ·       
  Fundamental Data Structures              Array, String ·       
  Object-Oriented Programming              Encapsulation              Member Functions ·       
  Software Development              Top-Down Algorithms              Program Testing             
  Debugging  | 
 
| 
   Laboratory:  | 
  
   · The laboratory exercises will give students the opportunity to work on the following in a structured environment with faculty guidance: ·       
  The mechanics of programming ·       
  Problem analysis ·       
  Algorithm development ·       
  Program design  | 
 
| 
   ACM/CSAB Category Content:  | 
  
   · Algorithms 1.5 ·       
  Data Structures                                                      1.0 ·       
  Software Design                                                    1.0 ·       
  Concepts of Computing
  Languages                        1.5  | 
 
| 
   Oral and Written Communication:  | 
  
   Written
  answers to conceptual questions are required on homework and exams.  | 
 
| 
   Social and Ethical Issues:  | 
  
   Students
  are introduced to the ACM/IEEE-CS Software Engineering Code of Ethics and
  Professional Practice.        | 
 
| 
   Problem Analysis:  | 
  
   Lab
  time (2.5 hours per week) and many homework assignments are devoted to
  developing algorithms to solve abstract problems.  | 
 
| 
   Solution Design:  | 
  
   Students
  are introduced to top-down program design and modularization.  | 
 
| 
   Version & Date  | 
  
   Version 1     May
  9, 2003  | 
 
| 
   Comments  | 
  
   The first draft based on ACM curricula 2001 in the
  format of ABET sample course description.  |