CMSY 281 Advanced C++ Programming
	 This course covers advance topics in the C++ programming language - from advance OOP concepts to data structure implementation. Upon successful completion, students will be able to write C++ programs which include sorting and searching algorithms, STL containers, advance file I/O with both text and binary files, advanced object-oriented programming concepts such as operator overloading, inheritance, and polymorphism, and advance data structures such as linked lists, stacks, queues, and binary trees.
 
	
		Hours Weekly
	
3 hours lecture, 2 hours lab weekly
	
		Course Objectives
	
		- Demonstrate an understanding of various searching algorithms.
 
- Demonstrate an understanding of various sorting algorithms.
- Demonstrate the use of sequential access and random access with both text and binary files.
- Demonstrate an understanding of advance OO- design concepts such as operator overloading, class
 aggregation, inheritance, and polymorphism.
- Demonstrate an understanding of exception handling.
- Demonstrate an understanding of function and class templates.
 
- Use the Standard Template Library (STL).
 
- Implement and manipulate linked lists.
 
- Implement and manipulate stacks.
- Implement and manipulate queues.
- Implement and manipulate binary trees.
- Use recursion to process advance data structures.
 
 
                                    
                                        
	
		Course Objectives
	
		- Demonstrate an understanding of various searching algorithms.
 
- Demonstrate an understanding of various sorting algorithms.
- Demonstrate the use of sequential access and random access with both text and binary files.
- Demonstrate an understanding of advance OO- design concepts such as operator overloading, class
 aggregation, inheritance, and polymorphism.
- Demonstrate an understanding of exception handling.
- Demonstrate an understanding of function and class templates.
 
- Use the Standard Template Library (STL).
 
- Implement and manipulate linked lists.
 
- Implement and manipulate stacks.
- Implement and manipulate queues.
- Implement and manipulate binary trees.
- Use recursion to process advance data structures.