Course Content and Outcome Guide for CS 162 Effective Winter 2016

Course Number:
CS 162
Course Title:
Computer Science II
Credit Hours:
Lecture Hours:
Lecture/Lab Hours:
Lab Hours:
Special Fee:

Course Description

Explores classes, pointers, dynamic memory, linear linked lists, multi-dimensional arrays, program correctness, verification, and testing. Prerequisites: CS 161. Recommended: CS 140U, MTH 112 and WR 121. Audit available.

Addendum to Course Description

Students will complete several lab/programming exercises using object oriented programming techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.

Intended Outcomes for the course

On completion of this course students should be able to:

  1. Use an understanding of cultural differences in user populations and global software design requirements in order to design effective software.
  2. Employ good software engineering practices and good software design, always applying Software Engineering Code of Ethics as determined by the Association for Computing Machinery (ACM).
  3. Employ a deep knowledge of the procedural paradigm and a recognized software development methodology to develop computer programs that emphasizes usability and end-user compatibility.
  4. Design and construct simple object-oriented software with an appreciation for data abstraction and information hiding.
  5. Effectively use software development tools including libraries, compilers, editors, linkers and debuggers to write and troubleshoot programs.
  6. Construct appropriate user interfaces for simple programs, and design systems with minimal complexity and maximal functionality.

Outcome Assessment Strategies

Students will complete software project(s) comprised of object-oriented designs, implementations, and test plans.

  • Designs will demonstrate the use of good object-oriented design principles.
  • Implementations will include C++ stream input/output and file processing.
  • Test plans will include test cases demonstrating both black and glass box testing strategies.

Students will demonstrate competency on exam(s) which are constructed to demonstrate:

  • Written technical communication and effective use of terminology
  • Facility with programming language syntax and semantics
  • Ability to read and understand specifications, designs and programs
  • Application of concepts
  • Individual capability in design, implementation and testing of program components

Course Content (Themes, Concepts, Issues and Skills)

  • C++ Language Topics
    •    structure of C++ programs, C++ statements, data types, operators
    • conditional, repetitions
    • arrays
    • c-strings
    • functions
    • recursion
    • recursion vs iteration
    • classes
    • separate interface/implementation
    • private/protected/public
    • constructors/destructors
    • accessor functions
    • const member functions
    • composition
    • "this" pointer
    • new/delete operators
    • copy constructor, deep copy
    • overloading assignment operator
    • input/output
    • stream I/O
    • stream states
    • manipulators
    • random access file processing
    • string class
    • string streams
    • bitwise operators
  • data structures
    • singly linked lists
    • stack
    • queue
  • Additional Topics
    • information hiding
    • encapsulation
    • abstract data types