This course expands on the fundamentals covered in CS& 131. Students will develop intermediate C++ programs for both traditional data processing and object-oriented applications. Through the experience of creating these programs and methods the student will learn advanced features of C++ object-oriented programming to solve problems in various domains.
Prerequisites
Quarters Offered
Fall,
Winter,
Spring
Course Outcomes
Upon successful completion of the course, students should be able to demonstrate the following knowledge or skills:
- Create C++ programs of intermediate to advanced complexity using procedural and object-oriented design techniques, structured problem solving and data abstraction.
- Utilize recursion as a problem solving technique and define simple recursive functions.
- Use pointers and indirection to dynamically allocate memory, arrays and objects.
- Solve problems involving 2 dimensional arrays or vectors.
- Sort an array by implementing the Bubble Sort and Insertion Sort algorithms.
- Implement the binary search algorithm to efficiently search a sorted array.
- Compose object-oriented programs using concepts such as classes, objects, composition, inheritance, and polymorphism.
- Explore advanced techniques such as operator overloading and templates.
- Create custom exception classes and use exception handling to throw and catch common errors.
- Use pointers to explore and implement the linked list data structure
Institutional Outcomes
IO1 Communication: Students will be able to communicate clearly and effectively within a workplace context
IO2 Quantitative Reasoning: Analyze and solve computational problems using a modern program language
IO2 Quantitative Reasoning: Analyze and solve computational problems using a modern program language
Course Content Outline
- 2D Arrays / 2D Vectors
- Recursion
- Pointers & Dynamic Memory Allocation
- Classes & Objects
- Inheritance & Polymorphism
- Operator Overloading & Templates
- Exception Handling
- Linked Lists