Apr 24, 2024  
2022-2023 College Catalog 
    
2022-2023 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.

Gen-Ed: Meets AGEC-S Options requirement


  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