Riverside Community College District
Integrated Course Outline of Record
Computer Information Systems 17A
|
COURSE DESCRIPTION
|
|
17A C++ Programming: Objects
|
Units: 3.00
|
|
|
Prerequisite(s): None.
Advisory: Previous programming experience writing functions and using arrays on PC platforms as well as , CIS 5 or CSC 5
|
|
A comprehensive study of the syntax and semantics of the C++ language and the methodology of Object-Oriented program development. 54 hours lecture and 18 hours laboratory
|
|
|
SHORT DESCRIPTION FOR CLASS SCHEDULE
|
|
Object-Oriented program development using C++.
|
|
|
ADVISORY ENTRY SKILLS
Before entering the course, students will be able to:
|
-
Write C++ functions
-
Use C++ array structures
-
Create structured computer programs in C++
-
Develop specific solutions for gaming, business, scientific and mathematics problems.
-
Transform data input into the required output
-
Demonstrate the use of the C++ IDE and libraries.
-
CIS-96/97 and CAT-96/97 are self-paced, competency-based, skill development computer labs. They provide the computer practice times to master the skills taught in the lecture classes. There is one-on-one instructor assistance available with additional help provided by student aides. Basically, the skills that are presented in the lecture classes have to be practiced to be mastered and that is the purpose of CIS-96/97 and CAT-96/97.
|
STUDENT LEARNING OUTCOMES
Upon successful completion of the course, students should be able to:
|
|
1. Analyze and understand the Object-Oriented C++ environment.
2. Demonstrate the use of specialized terminology, directives, and features of the C++ language.
3. Apply theoretical gaming, business, scientific, and mathematical concepts in writing and executing programs in the C++ language using Object-Oriented programming methodology.
4. Demonstrate specified problem-solving and software design skills using the C++ language.
|
|
|
COURSE CONTENT
|
|
|
TOPICS
|
|
|
1. Casses and members a. Creating classes with Declaration and Implementation Sections 1. Encapsulating Class Components 2. Designing Classes 3. Implementing Class Functions b. Data Hiding and Encapsulations 1. Using Public Functions to Alter Private Data c. Using Private functions d. Considering Scope When Defining Member Functions e. Using Static Class Members 1. Defining Static Data Members 2. Using Static Functions f. Understanding the this Pointer 1. Using the this Pointer Explicitly 2. Using the Pointer-to Member Operator G. Understanding Polymorphism 2. Class Features and Design Issues a. Using member functions b. Understanding Constructors 1. Writing Constructors 2. Overriding the constructor’s default Arguments 3. Overloading Constructors c. Using Destructors d. Using Classes Within Classes 1. Considering Reusability and Maintenance Issues e. Using #ifndef, #define, and #endif f. Improving Functions 1. Selecting Member Data and Function Names 2. Reducing Coupling Between Functions 3. Increasing Cohesion Within a Function 3. Friends a. How to Declare a Function as a friend b. Using a friend Function to Access Data from Two Classes c. Using a Forward Reference d. Making a friend of a Member of Another Class e. Making a friend of Another Class 4. Overloading Operators a. Using Operators Polymorphically b. Overloading Math Operators c. Overloading Operators to work with Class Objects d. Overloading Input e. Overloading Output 5. Inheritance a. Understanding the Advantages Provided by Inheritance b. Creating a Derived Class c. Inheritance Restrictions d. Choosing the Class Access Specifier e. Overriding and Overloading Parent Class Functions f. Using Constructor Initialization Lists g. Providing for Base Class Construction h. Overriding Inherited Access i. Using Multiple Inheritance j. Using Virtual Base Classes 6. Advanced Input and Output a. Using istream and ostream Member Functions b. Creating Manipulator Functions c. Using Built-in Manipulators d. Writing and Reading Objects 7. Templates a. Understanding the Usefulness of Function Templates b. Creating Function templates c. Using Multiple Arguments to Function Templates d. Overloading Function Templates e. Using More than one Parameterized Type in a Function Template f. Explicitly Specifying the Type in a Function Template g. Using Function Templates with Class Objects h. Using Template Classes i. Creating a Complete Class Template j. Using Container Classes 8. Handling Exceptions a. Throwing and Catching Exceptions b. Throwing Objects c. Using the Default Exception Handler d. Using Exception Specifications e. Handling Memory Allocation Exceptions
|
|
|
|
METHODS OF INSTRUCTION
Methods of instruction used to achieve student learning outcomes may include, but are not limited to:
|
- Presentation of class lectures/discussions/demonstrations in order to clarify object oriented programming, computer problem solving, and software design concepts
- Presentation of class lectures/discussions/demonstrations in order to clarify the principles of object oriented programming
- Web-based/web-enhanced/online/distance learning tasks/activities to reinforce understanding of concepts related to object oriented programming skills, computer problem solving, and software design
- Online and Laboratory activities and application assignments in order to address areas of improvement in object oriented programming, computer problem solving, and software design
- Projects in order to facilitate and demonstrate the acquisition of skills required to create object oriented programs
- Collaborative projects/cooperative learning tasks in order to encourage students to develop and apply object oriented programming, computer problem solving, software design, and team work skills
|
|
|
METHODS OF EVALUATION
Students will be evaluated for progress in and/or mastery of learning outcomes by methods of evaluation which may include, but are not limited to:
|
- Computer programs designed to demonstrate the acquisition of object oriented programming, computer problem solving, and software design concepts and skills
- Quizzes/examinations designed to measure students’ degree of mastery of fundamental object oriented programming and software design concepts and terminology
- Collaborative projects designed to demonstrate successful understanding and application of object oriented programming, computer problem solving, software design, and team work skills
- Computer Laboratory assignments/projects designed to clarify students’ individual object oriented programming, computer problem solving, software design strengths and areas of improvement related to these skills
- Final examination designed to evaluate students’ overall achievement of course objectives in object oriented programming, computer problem solving, and software design concepts
|
|
ASSIGNMENTS
|
Required Reading Assignments
Required Writing Assignments
Other Outside-of-Class Assignments
|
|
|
COURSE MATERIALS
All materials used in this course will be periodically reviewed to ensure that they are appropriate for college level instruction. Possible texts include:
|
-
Deitel, H. M. and P. J. Deitel. C++ How to Program . 5th ed.
Prentice Hall, 2005.
-
Farrell, Joyce. Object-Oriented Programming Using C++ . 3rd ed.
Cambridge, MA: Course Technology, 2004.
-
Gaddis, Tony. Staring Out With C++ . 5th ed.
Pearson Education, 2007.
|
| 08/07 |
| 515 |