Includes language syntax, problem solving techniques, top-down refinement, procedure
definition, loop invariance, theory of numerical errors and debugging. Covers the syntax of the
C++ language
Course Learning Outcomes
- Explain best practices for developing a major software project
- Build a simple class using default constructors
- Create classes with user defined data types as members
- Design and code classes using composition and inheritance
- Implement a class with dynamic variables as private members
- Create and manage a linked list as an abstract data type
- Create template classes and functions
- Demonstrate the use of C++ exception handlers, including throw and catch
- Create programs using container classes from the C++ Standard Template Library (STL)
- Implement iterators with user defined and STL classes
- Demonstrate the use of Big O notation to measure the complexity of a search and/or sort
algorithm - Design and implement a program to efficiently solve computer-related problems of
substantial complexity (defined here to mean requiring a program of between 500 and
2000 lines of working code), using Object Oriented Design methodologies including
Abstraction, Encapsulation, Inheritance, and Polymorphism
Topics Covered in this Course
- Topics Covered in this Course
- Phases of software development
- Object Oriented vs. Procedural program design
- Object Oriented Design and Classes
- Abstract data types
- Pointers and dynamic memory as class members
- Dynamic linked lists as ADTs
- Class constructors
- Composition and Inheritance
- Inheritance and virtual functions
- Exception handling
- Big O notation and algorithm complexity
- C++ Standard Template Library (STL), including vectors, lists, arrays, queues, a