Review
Review
loading, printing, searching, deleting, inserting, sorting o Some application level problem: transcript, contact management, payroll, car dispatching system Developing, Executing, Testing and Debugging o Separate Compilation implementation and interface (header) files; libraries o The Language Translation Process compilation vs linking binding: compilation, link, execution what has to be known when o The Software Development Environment software development under Unix basic shell skills program development utilities: vi, g++, make, ar o Data Representation signed/unsigned bases other than decimal ASCII/Unicode o The Runtime Model scope, lifetime, linkage external, stack, and heap based storage activation records static o Testing and Debugging unit and integration testing automatic testing <cassert> diagnostic-based debugging symbolic debuggers Intermediate and Advanced Programming Techniques o Pointers and Heap-based Programming new/delete operators pointer-based access o Recursion defining recursive functions compared to iteration o Operator Overloading o File I/O sequential access random access o Exception Handling throwing and catching exceptions
exception classes o Miscellanaeous Programming Techniques command line argument processing dynamically resized arrays data conversions: integer-to-string, string-to-integer binary search working with null-terminated (C-style) strings two-dimensional arrays Basic Class Design, Implementation, and Usage o constructors, default and copy constructors o member initialization o data members o access control o friend classes and functions o member functions; inline o static members o destructors o assignment operators o insertion operators o the canonical class form Object-Oriented Programming Techniques o inheritance vs composition o overriding, virtual functions o abstract classes Generic Programming Techniques o Function and Class Templates defining and instantiating separate compilation in the presence of templates Abstract Data Types and Collection Frameworks o Introduction to Abstract Data Types 'big' integers a better array approximating the C++ string class o Introduction to STL vectors and sets iterators maps the algorithms