Introduction to C++: Programming Concepts and Applications

Course No. 2074
Professor John Keyser, Ph.D.
Texas A&M University
Share This Course
4.4 out of 5
39 Reviews
87% of reviewers would recommend this product
Course No. 2074
Streaming Included Free

What Will You Learn?

  • numbers Learn why C++ has been a standard for all kinds of programming tasks since the 1990s.
  • numbers Discover how the complex syntax of a computer language such as C++ is translated into 0's and 1's that computers understand.
  • numbers Learn three major programming styles available in C++: procedural, object-oriented, and generic.
  • numbers Draw on the lessons from the course to design an AI game-playing program.

Course Overview

Considering how many hours we spend with computers—phones, laptops, even “smart” screens on our home appliances—it’s easy to feel like they control us. But, in fact, we control them. Or, we do if we know how to use them.That’s what computer programming gets to the heart of: taking command of the most powerful, versatile, and productive machines ever invented. And among the array of programming languages designed to get computers doing exactly what we want, C++ ranks as one of the most efficient, powerful, and popular.

Introduction to C++: Programming Concepts and Applications is a 24-lecture, step-by-step guide to this celebrated computer language, which is well suited to a multitude of coding projects. Taught by award-winning Professor John Keyser of Texas A&M University, the course quickly moves from basic principles to more advanced concepts in coding. Anyone curious about how software works will find it an accessible path to computer literacy and to understanding how programmers think across a range of programming styles.

In widespread use since the 1990s, C++ has become ubiquitous in business, science, education, and entertainment. The program’s countless applications include:

  • Personal computing and web browsing: C++ underlies key sections of major operating systems, such as Microsoft Windows, Mac OS, and Linux. Plus, many popular websites are written at least partly in C++, including YouTube, Facebook, Amazon, PayPal, and Google’s search engine.
  • Embedded control systems: Computer control through C++ is at the heart of a multitude of complex systems—from CT scanners and automobiles to wind turbines, ships, airplanes, and rockets. Even on faraway Mars, NASA rovers guide themselves across the planet with the aid of C++.
  • Games, business transactions, and more: The efficiency of C++ makes it ideal for video games, which require flexible programming and lightning speed. The same qualities apply to any performance-critical code, such as stock trading, telecommunications, and computer-aided design.

Learn to Code

For all of its sophistication, C++ was designed to be straightforward, logical, and adaptable to any programming style. It succeeded beyond its developer’s most optimistic projections, paving the way for coders to work at every level—from manipulating individual computer bits to tackling the heights of abstract programming, where a single concept can apply across a wide range of applications.

Along with Professor Keyser’s detailed, informative instruction, this course also gives you helpful tools like a 20-minute “quick-start” guide, which can help you log on to a web-based programming editor with your computer, or other device. Heavily illustrated, the course features onscreen code that follows Professor Keyser’s many examples, reproducing what you’ll see as you program along with him.

Introduction to C++ also includes an extensive guidebook that features dozens of coding problems, a syntax guide, a glossary, and direct links to code files used in the course.

From Loops to Artificial Intelligence

C++ was created to incorporate all of the more "machine level" features of the language C, while also adding more higher-level abilities in all the major programming styles. The name "C++" alludes, playfully, to an incrementing operator “++,” whose effect is to increase a variable by one unit. “C++” therefore signals a program that goes one better than C. Indeed, it goes considerably beyond that. Here are the major programming styles available in C++:

  • Procedural programming: Reflecting one of the earliest styles of programming, this approach gives the computer step-by-step instructions, organized into separate functions. With patience, procedural programming is as easy to grasp as a set of directions to reach a destination—which can be simple or complex, depending on where you are going.
  • Object-oriented programming: This is where C++ makes a giant leap beyond C. Object-oriented programming mirrors the nature of many real problems. For example, if you are designing code for a series of games, it can be very helpful to design the features that all the games have in common (having a board, taking turns, and so on) separately from the rules and other features specific to each game. This is where concepts such as classes, encapsulation, inheritance, and polymorphism all come to life.
  • Generic programming: Also improving on C is the ability to handle ideas that are so general that they are not confined to a specific type of data. By creating templates that specify different ways of handling information, regardless of what it is, a level of automation is achieved that saves substantial time in coding.

Focusing on these three broad approaches, you cover the full range of techniques in the C++ toolkit, from the basics of sequential programming with loops and conditionals, through procedural programming with functions, through object-oriented programming with classes, and through generic programming and the use of the Standard Template Library (STL). And in the last lecture, you draw on your accumulated knowledge from object-oriented programming and generic algorithms to design a program that can play a game with human-like intelligence—a hallmark of the exciting field of artificial intelligence.

Coding Strategies to the Rescue

In several lectures spread across the course, Professor Keyser also introduces you to strategies that will come to your rescue when the inevitable coding problems arise. A good example is debugging—a crucial step for any program and one avoided, or approached poorly, by many novice programmers. Professor Keyser demonstrates following six steps when you get a dreaded error message: isolate the error, narrow in on the failure point, identify the problem, fix the problem, test the code, and finally consider similar cases where the error you’ve fixed might reappear elsewhere in your program. “There is no shortcut,” he advises. “You’ve got to use your brain”—which is exactly what he teaches you to do throughout this stimulating course.

By the end of Introduction to C++, you will be primed to take your programming skills to the next level in three areas:

  • Master greater programming complexity: Students in university computer science programs usually go here next, learning new approaches to writing algorithms and structuring data—goals that C++ can meet with flexibility to spare.
  • Focus on specific applications: After learning the impressive capabilities of C++, you may want to focus on applications that hold special interest for you, whether it’s computer graphics, games, data analytics, or some other programming field.
  • Branch out to new computer languages: C++ is an ideal foundation for learning almost any other computer language, such as C#, Java, or Javascript. Regardless of what language you turn to next, you will find that knowing C++ gives you a huge head start.

It’s little wonder that C++ is one of the most in-demand programming languages ever developed. And in this superbly taught course, you will find that learning C++ is also an eminently enjoyable adventure.

What’s New about the C++ Guidebook?

Because the Introduction to C++ Programming course is for computer users, we chose to omit the print guidebook and focus instead on creating an enhanced digital guidebook.

Features include:

  • rich, in-depth coverage of lecture content at the level of a companion book
  • code presented in the lecture, in a format that can also be copied directly to your computer
  • four-color layout that enhances readability of code, callouts, diagrams, key terms, and more
  • “landscape” layout with text and code presented on same page
  • many hyperlinks that enhance navigation and ease of use
  • quizzes that include basic interactivity
  • hyperlinked glossary
  • C++ syntax guide

We hope users like this enhanced format and find it MORE helpful than a printed guidebook. For users that prefer printed materials, a printed transcript book of this course is available for purchase. However, most users will be much BETTER served by the enhanced digital guidebook for this course.

Hide Full Description
25 lectures
 |  Average 31 minutes each
  • 1
    Compiling Your First C++ Program
    Uncover the power and appeal of C++ for a wide range of uses. Then learn that by processing only 0’s and 1’s, a computer obeys the varied commands of a complex language such as C++. Write a traditional, “Hello, World!” program and discover the importance of adding comments to your code. Finally, follow the instructions in the Quick Start video at the end of this lecture to get C++ working on your own computer or device—by going to an online programming editor or by downloading a C++ integrated development environment (IDE), tailored to your operating system. x
  • 2
    C++ QUICK START: With Browser or Download
    C++ QUICK START: With Browser or Download x
  • 3
    Variables, Computations, and Input in C++
    Try out a program that calculates calories in different foods, demonstrating the essential elements of a program: input, variables, computations, and output. Learn to specify a variable’s type and value, and get advice on shortcuts for keeping your instructions clean. Also discover the origin of the name C++, which signals that the language is designed to do whatever C can do—and then some. x
  • 4
    Booleans and Conditionals in C++
    Probe the power of conditionals, which let you construct programs that can choose between true and false alternatives. Learn to use the keyword bool, which stands for Boolean variable—a value that can be either true (1) or false (0). Study the three basic Boolean operations—and, or, not—and see how they can be combined to make truly complex logical operations. x
  • 5
    Program Design and Writing Test Cases in C++
    There’s more to making a program than writing code. Begin by focusing on the importance of the header and special commands. Then consider how to use comments as “pseudocode” to design the structure that a particular program should follow. Finally, explore the crucial strategy of testing as you go, rather than when the program is complete and errors made near the start are harder to track down. x
  • 6
    C++ Loops and Iteration
    Harness the power of loops, which are sections of code that repeat until a specified computation is complete. Focus on two main types of loops: while loops and for loops, with the latter being a compact way to make the loop occur a set number of times. Learn how to prevent infinite loops, and see how scope allows you to have separate variables inside and outside loops. x
  • 7
    Importing C++ Functions and Libraries
    The secret for building an enormous program such as Windows, with millions of lines of code, is that it draws on ready-made code libraries. Investigate the options that libraries offer, from choosing random numbers to performing complex mathematical operations. Learn how to access a code library, and get tips for finding additional resources beyond the C++ standard libraries. x
  • 8
    Arrays for Quick and Easy Data Storage
    In the first of two lectures on storing large amounts of data, learn the utility of arrays. An array is a collection of variables of the same type. Find out how to declare an array of variables and how to provide an index, which permits access to a specific value within the array. Finally, probe the “out-of-bounds” error that can arise with arrays and see how it led to a notorious security breach. x
  • 9
    Vectors for Safe and Flexible Data Storage
    Continue your study of data storage strategies by looking at vectors, which handle variables in much the same way as arrays but with distinct advantages, including the ability to change the size of a data structure dynamically. Learn how and when to use vectors, and discover that vectors offer a convenient fix for the out-of-bounds error introduced in the previous lecture. x
  • 10
    C++ Strings for Manipulating Text
    Go beyond numbers to see how letters and punctuation are used in data strings, which are ordered sequences of characters. Examine string literals, which are specific fixed sequences of text; and string variables, which are the main way to process and control text data, such as names and addresses. Learn how to search, alphabetize, and concatenate string variables in C++. x
  • 11
    Files and Stream Operators in C++
    Data files are collections of information that are accessed and manipulated through a program. See how data streaming techniques you've already used apply to reading and writing files with the library fstream. Discover that you've already been using an entity that will become increasingly important in the course: objects, which are entities combining variables and functions. x
  • 12
    Top-Down Design and Using a C++ Debugger
    Get to know the vital task of debugging—finding and fixing errors in your code. First, consider the advantages of top-down design, where a complex task is divided into manageable sub-tasks, as opposed to the bottom-up approach that lets complexity emerge more organically, if less predictably. See how incremental development helps in debugging through tools such as the breakpoint and step-over commands. x
  • 13
    Creating Your Own Functions in C++
    Functions serve as ready-made, self-contained units of code that perform a particular task, such as solving an equation, enumerating a list, or even something as simple as closing a file. Prepare for the intensive use of functions in the rest of the course by learning the basic commands that allow you to create your own functions. Get your feet wet with several examples. x
  • 14
    Expanding What Your Functions Can Do in C++
    A parameter is a piece of data used as input into a function. Discover how to create two functions, each with the same name, but with different numbers of parameters—an approach called overloading. Also look at different ways to “pass” parameters to produce an output, either preserving the parameter’s value (pass by value) or changing it (pass by reference). x
  • 15
    Systematic Debugging, Writing Exceptions
    Dig deeper into debugging, learning to employ a tool called exception handling. An exception is a special note that something has gone wrong in a program. Know how to follow up these crucial clues. Also zero in on the six major steps of debugging: isolate the error, narrow down the failure point, identify the problem, fix the problem, re-test, and look for similar cases. x
  • 16
    Functions in Top-Down and Bottom-Up Design
    Revisit top-down versus bottom-up approaches to coding, this time using functions as the building blocks of your program. First, create a game with the top-down strategy, identifying the individual functions that you need in a flowchart. Then design a tool for word processing by using the bottom-up tactic, in which you take available functions and create something completely new. x
  • 17
    Objects and Classes: Encapsulation in C++
    So far, you’ve focused on procedurally oriented programming, which characterizes the original C computer language that led to C++. Now turn to one of the major strengths and innovations of C++: object-oriented programming. Learn that objects are variables and functions encapsulated within classes. Investigate the great utility of this technique for organizing and manipulating data. x
  • 18
    Object-Oriented Constructors and Operators
    The ability to design appropriate classes may be the single most important skill in object-oriented programming. Survey two key tools for using classes effectively. First, constructors let you create classes that fit the requirements of the objects within them. Second, operator overloading allows you to tailor operators to a specific function, providing a handy shortcut that streamlines coding. x
  • 19
    Dynamic Memory Allocation and Pointers
    C++ provides different ways to control data storage in memory. Investigate dynamic memory allocation, which allows memory to grow and shrink with the demands of a program as it is running—as opposed to static memory, which is fixed at runtime. Practice managing memory in a 20-questions-type game and compare the advantages of allocating dynamic memory with pointers versus vectors. x
  • 20
    Object-Oriented Programming with Inheritance
    Explore the power of inheritance, which is a technique for creating classes that inherit properties from another class, called the base class. Using this tool, you can define a variable or function just once and then use it in multiple classes. Walk through several examples of inheritance, seeing how it greatly reduces complexity by eliminating redundant code. x
  • 21
    Object-Oriented Programming with Polymorphism
    Study a key object-oriented feature called polymorphism, which means “many shapes” and refers to the ability of a class to be used in multiple ways. Start with a superclass that is specialized into multiple subclasses, each of which has a different implementation. Learn to define virtual functions for the superclass, leading to diverse properties in the subclasses. x
  • 22
    Using Classes to Build a Game Engine in C++
    Use your knowledge of object-oriented programming to design a “game engine” that can be used for building multiple games. Take a top-down approach, drawing on encapsulation, hierarchical inheritance, and polymorphism to create the two-person game Othello, also known as Reversi. Discover the ease with which you can create other subclasses for additional games, such as checkers and chess. x
  • 23
    C++ Templates, Containers, and the STL
    Whenever you have an idea that’s so general that it’s not tied down by any specific data type, you’ll want to turn to generic programming, which substitutes a template for a data type. The Standard Template Library (STL) is a menu of generic container structures that address these types of problems. Learn the advantages of various containers, including queues, lists, stacks, and vectors. x
  • 24
    C++ Associative Containers and Algorithms
    Probe deeper into generic programming and the STL, focusing on associative containers and algorithms. The former is a set of templates that lets you group different elements into ordered sets, while algorithms are rules that handle data or accomplish some other task, allowing advanced operations to be performed very quickly. Learn that algorithms are a powerful tool in programming. x
  • 25
    Artificial Intelligence Algorithm for a Game
    Finish the course by drawing on all you have learned to design a game-playing algorithm for artificial intelligence—that is, a program that makes “intelligent” game moves as if it were human. Finally, look ahead to your options for continuing study in computer programming. With elementary C++ under your belt, there are many directions you can go in mastering this valuable skill. x

Lecture Titles

Clone Content from Your Professor tab

What's Included

What Does Each Format Include?

Video DVD
Instant Video Includes:
  • Ability to download 24 video lectures from your digital library
  • Downloadable PDF of the course guidebook (digital only)
  • FREE video streaming of the course from our website and mobile apps
  • Downloadable C++ Quick Start File
Video DVD
DVD Includes:
  • 24 lectures on 4 DVDs
  • Downloadable PDF of the course guidebook (digital only)
  • FREE video streaming of the course from our website and mobile apps
  • Closed captioning available

What Does The Course Guidebook Include?

Video DVD
Course Guidebook Details:
  • Downloadable PDF of the course guidebook (digital only)
  • Code
  • Exercises & solutions
  • Quizzes
  • Hyperlinked Glossary
  • C++ Syntax Guide

Enjoy This Course On-the-Go with Our Mobile Apps!*

  • App store App store iPhone + iPad
  • Google Play Google Play Android Devices
  • Kindle Fire Kindle Fire Kindle Fire Tablet + Firephone
*Courses can be streamed from anywhere you have an internet connection. Standard carrier data rates may apply in areas that do not have wifi connections pursuant to your carrier contract.

Your professor

John Keyser

About Your Professor

John Keyser, Ph.D.
Texas A&M University
Dr. John Keyser is a Professor and the Associate Department Head for Academics in the Department of Computer Science and Engineering at Texas A&M University, where he has taught since earning his Ph.D. in Computer Science from the University of North Carolina. As an undergraduate, he earned three bachelor’s degrees—in Computer Science, Engineering Physics, and Applied Math—from Abilene Christian University. Dr....
Learn More About This Professor
Also By This Professor


Introduction to C++: Programming Concepts and Applications is rated 4.4 out of 5 by 39.
Rated 5 out of 5 by from Good introduction, or transition, to C++ My son (12 yr old and active in video games) wants to learn programming. As he usually does he did some research and announced he thought it best for him to start with C++. I started in 1963 with Fortran which I used for most of my professional career, along with various versions of Basic. As my son struggled with where to start I struggled with how to wind down a career in which programming and the products it produced were crucial. We both settled on Dr. Keyser's course, and are both happy with it. Writing code is one thing, organizing it can be quite another. This course does a wonderful job explaining not only the use of program syntax and features but also some background on project needs and structure. Building the course and its examples around easily available interactive development environments and presenting exercises in a way that allows student discretion regarding active participation helps adapt the course to a varied range of skills and interests. We both liked the course and have enjoyed working on it together. It is a good beginning and a comfortable transition.
Date published: 2020-07-06
Rated 5 out of 5 by from Great Teacher I got this on sale so the price was right for me. I am a few sessions in and so far this is a great course. I really like how the instructor breaks things down in a clear manner. Even if you do not code up the examples yourself as you follow along you can understand how to write code in C++.
Date published: 2020-06-17
Rated 5 out of 5 by from Really exciting course to learn the basics of C++ I bought this course to improve my programming skills. Because I finshed a programming Course on C# at the university I have a reference level to this course. My goal was to learn more about C++ because we only had C# at the university. I can definitely say that this course is on a university level and very well structured. Firstly, it starts at a very beginning level and focus on some realy basic staff. However, this could be helpful if you do not have much experience at programming. For me, the second half of the course was the most interesting part for myself. Nevertheless I enjoyed the first half of the course as well. Regarding the teacher in this lecture, Mr. Keyser have a really good ability to transfer his knowledge to the listener. Above all, all lectures were built on each other and the level increases very fast. At the end of this course you have a very fundamental knowledge of C++ which is beyond of any doubt necessary if you want specialize in a specific direction (Building a game, AI techniques, data analytic,..). It would be very great if the Great Courses would offer more further programming courses with John Keyser (for example: Java, Javascript, Php,...). Best regards from Austria Daniel
Date published: 2020-06-14
Rated 5 out of 5 by from Great video easy to understand When I thought this video I already have books on C++ programming this video made it a lot easier to understand the concepts it's perfect for a beginner or someone with a little understanding if you really want to know how to program in C plus how to program in C plus plus this how to program in C plus plus this is great
Date published: 2020-05-18
Rated 5 out of 5 by from Another Great Course of Professor John Keyser I purchased his previous course in Python that was excellent and I become an instant fan. The concepts are clearly explained there is a lot of meaningful exercises to solidify the learning. A great course highly recommend to any one who is interested in programming as a hobby or some professional that want to have a review of all the concepts of this powerful programming language.
Date published: 2020-05-13
Rated 4 out of 5 by from C++ Programming Concepts and Applications I bought this course about a month ago. At this point, I have not yet finished it, but have found the material to be very useful. My only suggestion would be to offer a printed course book (only available now as a pdf file).
Date published: 2020-04-22
Rated 5 out of 5 by from A great instructor I am a "C" programmer and this excursion into C++ has been very educational.
Date published: 2020-04-14
Rated 4 out of 5 by from Try it Content is well organized and presented. Suggest you use 2 computers.
Date published: 2020-04-12
  • y_2020, m_7, d_12, h_15
  • bvseo_bulk, prod_bvrr, vn_bulk_3.0.10
  • cp_1, bvpage1
  • co_hasreviews, tv_1, tr_38
  • loc_en_US, sid_2074, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]
  • clientName_teachco
  • bvseo_sdk, p_sdk, 3.2.0
  • CLOUD, getContent, 14.51ms

Questions & Answers

Customers Who Bought This Course Also Bought