3.00 Credits
Prerequisite(s): CS 2370, CS 2810, matriculation to computer science or software engineering, and University Advanced Standing. Teaches C++ programming in a production environment, emphasizing mastery of the standard C++ library. Covers the following topics in-depth: const correctness, operator overloading, exception handling, exception-safe design, programming with assertions, automated unit testing, advanced memory management, generic programming with templates, containers, iterators, algorithms, concurrency, and functional programming. Introduces library development, common idioms, and other advanced topics. Emphasizes accepted software engineering practices.. Lab access fee of $45 for computers applies.