CMPS 221, Programming Fundamentals
Course Description

Computer Science Department
California State University
, Bakersfield
V.1,
5/9/2003

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:

  • To provide the student with a basic knowledge of computer programming fundamentals, including software design, algorithm development, and algorithm implementation methods.
  • To develop computer programming skills in a high-level programming language.
  • To provide the student with the opportunity to work in the UNIX environment.
  • To provide an overview of the many areas of computer science.

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.