CS 200 - Concepts/Prog Algorithms C++

JOHNSON COUNTY COMMUNITY COLLEGE
TECHNOLOGY DIVISION
COMPUTER SCIENCE
COURSE OUTLINE

 

Title: Concepts of Programming Algorithms Using C++ Effective Term: Spring 2009
Number: CS 200 Credit Hours: 4 Contact Hours: 5
Course Type: Transfer Lecture Hours: 3 Lab Hours: 2

Description:

This course emphasizes programming methodology and problem solving. Algorithm design and development, data abstraction, good programming style, testing and debugging will be presented. An appropriate block-structured high-level programming language will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk. Four-credit-hour CS courses have two hours of open lab per week.

Associated Costs: These are additional (out-of-pocket) expense considerations that students should expect in addition to the course tuition, fees, and textbooks. $20 to $50.

Supplies: Refer to the instructor's course syllabus for details about any supplies that may be required.

Prerequisite: CIS 134 Programming Fundamentals
or
ENGR 171 Programming for Engineering and Science
or equivalent experience

Textbook(s): For information see - http://bookstore.jccc.net

Course Fees: NONE

Course Objectives:

Upon successful completion of this course the student should be able to:

  1. Solve problems using a disciplined approach to algorithm development.
  2. Use a block-structured high-level programming language.
  3. Create, test and debug programs using an integrated programming language development system.
  4. Describe and use well-known algorithms and data structures.
  5. Code and document using commonly accepted programming standards.
  6. Identify the major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system.
  7. Demonstrate an understanding of procedural and data abstraction.

Content Outline & Competencies:

I. Create Programs Using the Following Program Structures
   A. Input
   B. Output
   C. Assignment
   D. Conditional
   E. Looping
   F. Subalgorithm Call

II. Solve Problems and Develop Algorithms 
   A. Incorporate strategies for Problem Solving
      1. Step-wise Refinement
      2. Solution by Analogy
      3. Use of Previously Developed Subalgorithms
   B. Practice Problem Analysis
      1. Understand the Problem
      2. Identify the Input
      3. Describe the Output
   C. Represent Algorithms Using Pseudocode
   D. Verify Algorithms
      1. Disk Checking
      2. Selecting Test Data

III. Describe and Use Features of a Block Structured High-level
Programming Language 
   A. Data
      1. Types and Declarations
      2. Scalar Types
      3. Structured Types
   B. Block Structure and Scope of Identifiers
   C. Expressions
      1. Operators
      2. Relations
      3. Functions
      4. Rules of Precedence
   D. Assignment Statements
   E. Input and Output
      1. Format
      2. Terminal
      3. Printer
      4. Disk Files
   F. Control Structures
      1. Sequential
      2. Conditional
      3. Loops
   G. Subprograms
      1. Procedures and Functions
      2. Parameters
         a. Actual and Formal
         b. Value and Reference
      3. Recursion
   H. Coding Standards and Documentation
   I. Integrated Environment
      1. Editing
      2. Testing
      3. Debugging

IV. Utilize Data Structures
   A. One and Two-dimensional Arrays
   B. Strings
   C. Records
   D. Sets
   E. Combinations of Structures

V. Describe and Practice Program Development Methods and Style
   A. Design
      1. Procedural Abstraction
      2. Data Abstraction
      3. Top-down Design and Step-wise Refinement
   B. Program Correctness
   C. Development of Reusable Modules
   D. Analysis of Program Size and Execution Time

VI. Program Well-known Algorithms
   A. Searches 
      1. Sequential
      2. Binary
   B. Sorts
      1. Insertion
      2. Selection
      3. Bubble

VII. Define Computer Systems
   A. List and Describe Hardware Components
      1. Primary Memory
      2. Central Processing Unit
      3. Secondary Memory
      4. Peripherals
   B. List and Define System Software
      1. Operating Systems
      2. Language Translators
      3. File Systems

Methods of Evaluation of Competencies:

Evaluation of student mastery of course competencies will be accomplished using the following methods:

   A minimum of three Examinations         70% of grade
   A minimum of seven Programming projects 30% of grade
                                          100%
Grade Criteria:

A = 90%
B = 80%     
C = 70%     
D = 60%     
F = less than 60%

Caveats: NONE

Disabilities:

If you are a student with a disability, and if you will be requesting accommodations, it is your responsibility to contact Access Services. Access Services will recommend any appropriate accommodations to your professor and his/her director. The professor and director will identify for you which accommodations will be arranged.

JCCC provides a range of services to allow persons with disabilities to participate in educational programs and activities. If you desire support services, contact the office of Access Services for Students With Disabilities (913) 469-8500, ext. 3521 or TDD (913) 469-3885. The Access Services office is located in the Success Center on the second floor of the Student Center.