Dec 03, 2024  
2024-2025 College Catalog 
    
2024-2025 College Catalog

CIS 278 - C++ and Object-Oriented Programming

3 Credits, 4 Contact Hours
2 lecture periods 2 lab periods
Concepts and implementation of object-oriented programming and design using C++ Includes the language syntax of C++ applications using C++ objects to solve information systems problems, and class libraries created for reuse and inheritance.

Prerequisite(s): CIS 131  
Gen-Ed: Meets AGEC Options requirement; Meets CTE - Options requirement



Button linking to AZ Transfer course equivalency guide    button image Prior Learning and link to PLA webpage

Course Learning Outcomes
  1. Develop programs using both C++ built-in classes and user-defined classes.
  2. Integrate the concepts of abstraction, inheritance, composition and polymorphism into C++ programs.
  3. Write programs in C++ which solve information systems problems and which show increased productivity by taking an object-oriented approach.
  4. Create and use collections (arrays and vectors) of user-defined objects.
  5. Demonstrate Class Libraries 
  6. Write data to and from files.

Outline:
  1. Introduction and Overview
    1. Benefits of object-oriented (O-O) methods
      1. Structured vs. O-O approaches
      2. O-O design improvements
        1. Reusability
        2. Reliability
        3. Maintainability
        4. Encapsulation: integrating object state data, as represented by instance variables, with the code that operates upon it
    2. Features of object-oriented programs
      1. Strong typing and type hierarchies
      2. Classes for encapsulation and information hiding
  2. Using C++
    1. Introduction to C++
      1. Design goals of C++
      2. C++ = C + strong typing + classes
      3. C++ syntax
      4. C++ structs as a step on the path towards classes
      5. Classes as user-defined types in C++
    2. O-O programming in C++
      1. Using C++ built-in classes such as strings
      2. C++ types, references, and friends
      3. Object creation (constructors, copy constructors, destructors)
      4. Inheritance and derived classes
      5. Composition: using objects of other classes as instance variables within a class
      6. Dynamic storage allocation of objects
      7. Polymorphism
      8. Collections of objects
      9. Dynamic function binding using virtual and pure virtual functions
  3. Advanced C++ Features and the Future of O-O
    1. Reusable libraries
      1. Files, stream, and I/O libraries
      2. Designing a library
      3. The Standard Template Library 
        1.     Container classes            
        2.     Iterators
        3.     Algorithms                          
    2. Generic Libraries
      1. Using a container class
      2. Class categories as mechanisms


Effective Term:
Fall 2023