— CS107: C++ Programming —
In the first
unit, we will learn the mechanics of editing and compiling a simple
program written in C++. We will begin with a discussion of the
essential elements of C++ programming: variables, loops, expressions,
functions, and string class. Next, we will cover the basics of
object-oriented programming: classes, inheritance, templates,
exceptions, and file manipulation. We will then review function and
class templates and the classes that perform output and input of
characters to/from files. This course will also cover the topics of
namespaces, exception handling, and preprocessor directives. In the
last part of the course, we will learn some slightly more sophisticated
programming techniques that deal with data structures such as linked
lists and binary trees.
This course contains a number of sample programs and review
exercises. Through these exercises, students should better learn how to
write functions, use the string class, and write elementary data
structures such as linked lists and binary trees.
This unit presents a brief history of C++ before addressing the mechanics of editing and compiling a simple program written in C++ using a Linux-flavored operating system and a NetBeans IDE (integrated development environment). We will focus on learning how to write a general format for a C++ program, the meaning of main() function, how to use the cout and cin objects, how to declare and use variables, and how to define simple functions.
In this unit, 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 unit also covers data structures, which are groups of data elements grouped together under one name. At the end of the unit, we will study the C++ string class, which is useful when handling and manipulating strings of characters.
In this unit, 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 unit covers a key feature of C++ classes: inheritance. Inheritance allows classes to inherit objects and functions from other classes. In this unit, we will learn how classes can inherit members from more than one class. We will end this unit 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.
This unit 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 unit will also cover namespaces, which group entities like classes, objects, and functions under a name. We will finish the unit 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 unit, we will discuss the preprocessor directives, lines included in the code of a program that are not program statements but directives for the preprocessor.
In this unit, we will work on memory management and debugging methods. The unit 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.
In this unit, 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.
Please take a few moments to provide some feedback about this course at the link below. Consider completing the survey whether you have completed the course, you are nearly at that point, or you have just come to study one unit or a few units of this course.
Link: Optional Course Evaluation Survey (HTML)
Your feedback will focus our efforts to continually improve our course design, content, technology, and general ease-of-use. Additionally, your input will be considered alongside our consulting professors' evaluation of the course during its next round of peer review. As always, please report urgent course experience concerns to firstname.lastname@example.org and/or our Discourse forums.