|
Dec 26, 2024
|
|
|
|
CIS 164 - Advanced C++ Credits: 3 Lecture Hours: 2 Lab Hours: 2 Practicum Hours: 0 Work Experience: 0 Course Type: Voc/Tech This course is a continuation of C++. Additional concepts of object-oriented programming will be applied in a variety of programming exercises. Prerequisite: CIS 161 with a minimum grade of C- Competencies
- Evaluate the build process
- Describe the purpose of the preprocessor, compiler, assembler, linker and loader
- Interpret the use of macros in a program
- Demonstrate appropriate code organization in multi-class programs
- Examine file input and output (I/O)
- Use streams to read from/write to a file line-by-line
- Demonstrate the use of regular expressions in parsing/validating files
- Develop an application that uses text formatted files
- Illustrate the difference between sequential and random access
- Demonstrate serialization/deserialization to/from a binary file
- Investigate advanced topics in OOP
- Demonstrate the use of runtime polymorphism
- Illustrate why virtual functions and classes are required to support runtime polymorphism
- Write a class using the Rule of 5 by implementing a destructor and copy, move, copy assignment and move assignment constructors
- Discuss the concepts encapsulation, abstraction, inheritance, information hiding and run-time polymorphism
- Use operator overloading
- Show the advantages and disadvantages of multiple inheritance
- Implement function and class templateS
- Analyze memory management
- Illustrate memory layout and identify where different types of data are stored in memory
- Demonstrate appropriate and correct use of new, delete and delete[]
- Show the consequences of unsafe use of dynamic memory
- Utilize smart pointers to manage dynamic memory
- Discuss the concept of RAII and how it applies to safe memory management
- Identify where copy constructors and destructors are called
- Illustrate the difference between deep copies and shallow copies
- Discuss examples of memory leaks
- Evaluate the Standard Template Library (STL)
- Describe sequence and associative containers
- Design a program that uses an iterator to visit the elements of a list
- Demonstrate inserting and retrieving elements from a map
- Use smart pointers to provide polymorphism when using containers
- Apply STL algorithms to solve a problem
- Identify the appropriate STL container or algorithm to solve a problem
- Illustrate GUI development
- Develop an application using widgets
- Demonstrate event handling
- Incorporate database connectivity
- Describe basic relational database terminology
- Query a database
- Analyze network connectivity
- Describe basic networking terminology
- Illustrate client/server communication
- Incorporate multi-threaded processing
- Discuss the fundamentals of multi-threading
- Modify a single-threaded program to use multiple threads
- Incorporate good programming practices
- Implement exception handling to throw and catch exceptions
- Use a debugger to set breakpoints and step through program execution
- Develop unit tests
- Describe current topics in security and common vulnerabilities (e.g., bufferoverflow)
- Discuss the use of a profiler to optimize performance
- Utilize version control for development
- Discuss Agile and other development approaches
Competencies Revised Date: 2020
Add to Portfolio (opens a new window)
|
|