- MODULE 1: Dealing with Data and Compound Types
In this MODULE, we will begin to use variables and constants. We will practice with an array, which is a series of elements of the same type placed in contiguous memory locations. Next, we will learn how to use sequences of characters, which can form strings. We will also discuss how the memory of a computer can be understood as a succession of memory cells that can be accessed through the pointer in order to better control program instructions. This MODULE also covers data structures, which are groups of data elements grouped together under one name. At the end of the MODULE, we will study the C++ string class, which is useful when handling and manipulating strings of characters.
- MODULE 2: Object-Oriented Programming
In this MODULE, you will learn how to design a class, which is an expanded concept of a data structure that can hold both data and functions. An object is an instantiation of a class, so a class would be the type, and an object would be the variable. Next, we will learn how to handle private and protected members of a class, which is important for sound class design.
Note that this MODULE covers a key feature of C++ classes: inheritance. Inheritance allows classes to inherit objects and functions from other classes. In this MODULE, we will learn how classes can inherit members from more than one class. We will end this MODULE with the study of polymorphism or the ability to create a variable, a function, or an object that has more than one form. This brings object-oriented methodologies to their full potential.
- MODULE 3: Advanced Concepts
This MODULE begins with a review of function and class templates, which make programs adaptable. We will then learn how to manipulate files. C++ provides the classes that can perform output and input of characters to/from files.
This MODULE will also cover namespaces, which group entities like classes, objects, and functions under a name. We will finish the MODULE with exception handling and preprocessor directives. Exceptions handle exceptional circumstances in our programs by transferring control to special functions called handlers. At the end of the MODULE, we will discuss the preprocessor directives, lines included in the code of a program that are not program statements but directives for the preprocessor.
- MODULE 4: Memory Management and Testing
In this MODULE, we will work on memory management and debugging methods. The MODULE begins with an introduction on general techniques in C++ program memory management. We will then learn how to design testing cases to cover the program under testing and learn commonly used techniques for debugging C++ programs.
- MODULE 5: Useful Examples and C++ Glossary
In this MODULE, we will work on coding skills using two useful data structures: linked list and binary tree. The first assessment you will encounter below will teach you to program the binary tree. The second assessment will ask you to be creative with coding linked lists and binary trees.
- Study Guides and Review Exercises
These study guides are intended to help reinforce key concepts in each MODULE in preparation for the final exam. Each MODULE study guide aligns with course outcomes and provides a summary of the core competencies and a list of vocabulary terms. The study guides are not meant to replace the readings and videos that make up the course.
The vocabulary lists include some terms that might help you answer some of the review items, and some terms you should be familiar with to be successful in completing the final exam for the course.