Course Goals
By the end of the course, you will have developed the
following knowledge and skills:
- Understand the basic principles of object-oriented programming (OOP)
- Learn how to implement OOP programs in C++
- Develop the skills to analyze the performance of algorithms in
terms of big-O notation as well as prove an algorithm's
correctness
- Understand the difference between an abstract interface and the
implementation of that interface
- Describe a data structure as an abstract data type (ADT) and
provide various implementations of that ADT in C++
- Develop the ability to compare and contrast
the performance of data structures and algorithms
- Learn how to apply data structures and algorithms to solve
problems of moderate complexity
- Develop scientific communication skills