Apr 19, 2024  
2021-2022 College Catalog 
    
2021-2022 College Catalog [ARCHIVED CATALOG]

CIS 278 - C++ and Object-Oriented Programming

4 Credits, 4 Contact Hours
4 lecture periods 0 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.

  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. Use pointers to objects in programs.
  6. Demonstrate Class Libraries and Windows applications which are written in C++ to exploit software reuse and rapid prototyping.
  7. Use classes from the Standard Template Library in programs.
  8. Create C++ applications that write data to files and read it from them.
  9. Write C++ applications that execute SQL statements to select, insert, update and delete rows in database tables.

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++ as a better C (small enhancements)
      5. C++ structs as a step on the path towards classes
      6. 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
    3. Database operations                                                   
      1. Connecting to an external database                      
      2. Executing SQL statements from within a program 


Effective Term:
Full Academic Year 2019-2020