|   | 
		
			 
				Nov 04, 2025			
		 | 
		  | 
		
	
 | 
		
	     
			
		  	| 
  
		 | 
          
            
              
                
                  
                  ITCS 2550 - C++ Programming 2 Credit Hours: 3.00  Prerequisites: ITCS 2530
  ITCS 2550 provides students with a continuing study of C++ object-orientated programming language. Students learn additional concepts of operator overloading, multiple public and private inheritance, C++ pointers, files and streams, virtual functions, linked lists, and basic C++ CLASS libraries. Additional CLASS libraries will be used as required. Primarily, the course emphasizes object-orientated concepts and design. Students code programs involving objects, classes, multiple inheritance, new data types, C++ pointers, and file I/O. Students implement all programs and/or examples on microcomputers.
  Contact Hours: 3 Billable Contact Hours: 3 OUTCOMES AND OBJECTIVES  Outcome 1: Upon completion of this course, students will create program(s) using IFSTREAM, OFSTREAM, and FSTREAM classes which utilize file processing and error checking.
Objectives: 
	- Review
	
		- Explain the basic structure of C++ programs.
 
		- Use decisions and loops in programs.
 
		- Use structures, classes and arrays in programs.
 
	 
	 
	- File I/O
	
		- Identify members of the IOS and FSTREAM classes.
 
		- Develop program(s) that utilize stream class member functions to perform error checking.
 
		- Develop programs using char, string, and object I/O.
 
		- Explain the difference between Binary and Character files.
 
	 
	 
 
Outcome 2: Upon completion of this course, students will develop program(s) using intuitive class objects with overloaded operator member functions. 
Objectives: 
	- Multiple file program
	
		- Organize C++ program using multiple source files and header files.
 
		- Explain variable scope as it applies to multiple files program.
 
	 
	 
	- Operator overloading
	
		- Create program(s) that use overloading of Unary and Binary operators.
 
		- Overload >> and < operators with the use of FRIEND functions.
 
		- Explain the purpose of NAMELESS TEMPORARY objects.
 
	 
	 
 
Outcome 3: Upon completion of this course, students will create program(s) using inheritance, polymorphism, dynamic memory allocation and template classes. 
Objectives: 
	- Inheritance
	
		- Explain the reason for inheritance and multiple inheritances.
 
		- Create base and derived classes.
 
		- Utilize PRIVATE, PUBLIC, and PROTECTED keywords to achieve proper member access control.
 
	 
	 
	- Pointer and dynamic memory allocation
	
		- Demonstrate the use of pointers as compared to address of operator &.
 
		- Create program(s) that dynamically allocate memory space using NEW and manipulate the data through pointers.
 
		- Create program(s) that clean up itself using DELETE operator in destructor.
 
		- Explain data conversion between basic data types and objects.
 
	 
	 
	- Polymorphism and template classes
	
		- Explain polymorphism and its significance in O.O. programming.
 
		- Explain the purpose of virtual function and abstract class.
 
		- Develop program(s) using array of inhomogeneous objects and manipulate the objects using pointers.
 
		- Understand C++ Template classes.
 
		- Create program(s) that utilize template class Vector or List.
 
	 
	 
  COMMON DEGREE OUTCOMES  (Bulleted outcomes apply to the course)
	
		
			
			
				- 1. The graduate can integrate the knowledge and technological skills necessary to be a successful learner.
 
			 
			 | 
		 
		
			
			
				- 2. The graduate can demonstrate how to think competently.
 
			 
			 | 
		 
		
			
			
				- 3. The graduate can demonstrate how to employ mathematical knowledge.
 
			 
			 | 
		 
		
			
			
				- 4. The graduate can demonstrate how to communicate competently.
 
			 
			 | 
		 
		
			
			
				- The graduate is sensitive to issues relating to a diverse, global society.
 
			 
			 | 
		 
	
  COURSE CONTENT OUTLINE  
	- Review - Programming Basics/Loops and Decisions
	
		- Review - Structures and Functions
 
	 
	 
	- Review - Classes and Arrays
 
	- Review - Streams
 
	- Operator Overloading
 
	- Inheritance
 
	- Pointers and Dynamic Data Allocation
 
	- Virtual Functions, Abstract Classes, and Polymorphism
 
	- Templates and Exceptions
 
	- Object-Oriented Design
 
  Primary Faculty  Zhuang, Yi-Li Secondary Faculty  Schleis, George Associate Dean  Johnson, Elise Dean  Balsamo, Michael
 
 
  Official Course Syllabus - Macomb Community College, 14500 E 12 Mile Road, Warren, MI 48088  
				  
 
   
			
				Add to Favorites (opens a new window)
			                   | 
               
             
             |