|
Mar 28, 2024
|
|
|
|
CIS 164 - Advanced C++ Credits: 3 Lecture Hours: 3 Lab Hours: 0 Practicum Hours: 0 Work Experience: 0 Course Type: Voc/Tech Review and extend the concepts of class hierarchies, encapsulation, inheritance and polymorphism. Explore class libraries, templates, streamable classes and exception handling. Develop a code for both DOS and Windows applications. Prerequisite: CIS 161 Competencies
- Demonstrate how to manage multi-file projects
- Discuss project organization to organize disk directories
- Introduce concepts of source controls
- Illustrate the use of source controls
- Examine the accessibility of members of classes
- Distinguish between private, public and protected members
- Examine the role of constructor, destructor, accessor and implementor functions
- Discuss copy constructors and the assignment operator
- Discuss pitfalls of generated default constructors
- Design a program that illustrates the use of protected members
- Design a program that passes arguments by reference while using the const modifier to protect the referenced variable
- Investigate function and operator overloading
- Create a program that uses the new and delete operators to allocate memory and free it up
- Show how new returns an address of dynamically allocated memory
- Use the pointer access operator (arrow operator) to exercise member functions indirectly
- Overload the new and delete operators to trap “out of memory errors.”
- Illustrate the difference between deep copies and shallow copies
- Discuss memory leaks: autopointer and a reference counter pointer class
- Review the concepts of inheritance to derive classes from one or more base classes.
- Examine the derivation of the stream classes
- Write a program that contains one or more user defined manipulators
- Illustrate the use of the fstream class for file input and output
- Review the advantages and pitfalls of multiple inheritance
- Demonstrate the use of polymorphism
- Write a program to illustrate polymorphism and the use of virtual functions
- State the purpose of pure virtual functions
- Discuss the differences between pure virtual inheritance and ?override? inheritance
- Design an “interface” class using pure virtual functions
- Investigate several examples of template classes
- Review basic template concepts
- Examine the standard container classes
- Examine the algorithm portion of the Standard Template Library (STL).
- Write a program using an algorithm to process a template container
- Understand the fundamental principles of performance enhancement
- Discuss the use of profilers to optimize performance
- Discuss when it is best to keep data in internal memory versus keeping it in external storage
- Demonstrate making a temporary copy of data or subset of the data to increase access speed
- Discuss advantages and disadvantages of using data compression when sending information over a network connection
- Discuss how system resources, such as RAM, ROM and CPU clock cycles, can affect performance
- Understand Unit Test Frameworks and how they are used
- Discuss how Unit test frameworks can contribute to almost every stage of software development, including software architecture and design, code implementation and debugging, performance optimization, and quality assurance
- Discuss common patterns used when writing unit tests
- Examine a simple unit test framework and discuss its components
- Examine database connectivity issues
- Demonstrate the use of SQL to select and update data
- Write an application that connects to a database to read and write data
- Understand the complexity of using multiple threads in a C++ application
- Discuss the fundamentals of threads, used to write more efficient and capable programs
- Modify a single-threaded program to use multiple threads
Add to Portfolio (opens a new window)
|
|