 |
Course Description
Advanced programming concepts. Adaptation and use of standard class libraries and
generic algorithms. Prerequisite: CS 2020.
Course Syllabus
- Review (1 week)
- Recursive functions * (2)
-
Advanced C++ * (3)
- Pointers versus references
- Copy and conversion constructors
- Public, private and protected
- Overloading functions, cin and cout
- Abstract classes, base classes, derived classes and friends
- Exception handling with throw and catch * (1)
-
Templates * (2)
- Function templates
- Class templates
-
Adaptation and use of STL data structures (4)
- Iterators
- Vectors
- Strings
- Deques
- Heap Trees (AKA priority queue in the STL)
- Hash Tables (AKA hash_map in the STL)
-
Use of STL Generic Algorithms (2)
- Sorting, shuffling, permuting on strings and vectors
- Big-O
- Exams (1)
* Intent is to cover the parts of C++ not covered in CS 2010 and CS 2020, but necessary for the
understanding, adaptation and use of STL data structures and generic algorithms
Learning Outcomes
Students who complete CS 3350 should be able to ...
- use software components wisely as tools to solve specific programming problems
- visualize (animate) the behavior of common algorithms that operate on common software
components
- develop an exact engineering specification for a new software component
- test the interface and implementation of software components
- estimate the theoretical efficiency and measure the actual efficiency of software components
- construct and compare alternative implementations of a given component specification
- adapt software components for new uses by direct modification or indirectly, by subclassing
- combine simpler software components to produce more complex components by composition or by
inheritance
- determine whether a given software component is suitable for reuse in large-scale software
development projects
- create software component hierarchies that permit polymorphic programming
- evaluate the general design of software component libraries
|