You updated your password.

Reset Password

Enter the email address you used to create your account. We will email you instructions on how to reset your password.

Forgot Your Email Address? Contact Us

Reset Your Password

SHOW
SHOW

Introduction to C++: Programming Concepts and Applications

Code like a champion with this user-friendly introduction to a fast, powerful, and popular computer language-C++.
Introduction to C++: Programming Concepts and Applications is rated 4.4 out of 5 by 51.
  • y_2024, m_3, d_27, h_9
  • bvseo_bulk, prod_bvrr, vn_bulk_3.0.38
  • cp_1, bvpage1
  • co_hasreviews, tv_4, tr_47
  • loc_en_CA, sid_2074, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]
  • clientName_teachco
  • bvseo_sdk, p_sdk, 3.2.1
  • CLOUD, getAggregateRating, 28.88ms
  • REVIEWS, PRODUCT
Rated 5 out of 5 by from Wonderfully taught Dr. Keyser makes C++ programming very easy to understand. His sequential approach is easy to follow. For me, I obtained a book on C++ to better review what the lectures taught and did practice all of the challenges posed in the course. i encourage those taking the course to take the time to develop their own programs during the pauses.
Date published: 2023-10-15
Rated 3 out of 5 by from C++ I enjoy John Keyser's classes. He explains most of the information is a clear and understandable fashion. Please be aware that this course is a little out of date. While most of the information is still useful it is not the most current. In the event that you are unable to get C++ Visual Studio Community edition to load correctly- you are on your own. There is no one to help except the local community. I made at least 10 chats with the Microsoft representatives to try and get it installed correctly. Never got it. 6 posts on various help websites - all proved fruitless. In all of my reading I finally came across a comment that someone else experienced the same issues I had and found an incomplete erasure of one of Visual Studio's library's. This was what was holding up and preventing the new installation from completing correctly. While not "The Great Courses" fault the information provided was not helpful. I spent about 6 days and untold hours trying to figure this one out. Had everything installed perfectly then there information would have been great but it didn't. The quizzes offered in the course represent a fair test of the covered information most of the time. Some questions are flat our not covered in the course and require you to spend extra time researching how to preform the action requested or being tested. While I am not opposed to doing more independent research, I feel that it should have been covered in the course. Visual Studio is a huge program with lots of capabilities. Perhaps a chapter on how to fully utilize it for this course would be beneficial. I am still looking for my next course on how to preform graphic displays so I can make a board game in C++. Even trying to find information about what graphic library would be helpful. I would recommend this course with the notes from above. It is not perfect but it gives you some basic information to get you started.
Date published: 2022-06-15
Rated 5 out of 5 by from Very good introduction to tough expansive language This has been a very nice introduction with just the right amount of detail. Well done.
Date published: 2021-12-29
Rated 5 out of 5 by from Explaining C++: As good as it gets! This course is suitable for absolute beginners and for those who have a fair amount of experience in programming. As for myself, I am quite familiar with C and with assembly language, and in the past have written programs in Fortran. Before watching John Keyser's lectures, I found most accounts of C++ rather obtuse. By contrast John Keyser has the knack to offer very clear explanations. The first 15 lectures contain material that could be dealt with as easily in C as in C++. This is an excellent idea: even somebody who has never written a computer program should be able to follow these lectures. Lecture 16 introduces the concept of classes; I strongly suspect that even a novice will have little difficulty in understanding lecture 16 and the following lectures after the grounding received in the first 15 lectures. It was fun for me to design a class of three dimensional arrays of double elements and write operator overloads for +, -, *, ^ for the respective operations of vector addition, subtraction, scalar product and vector product; in addition I also used * for multiplication of a vector by a scalar. Without this course, it would have been far more difficult for me to do so. My comments are incomplete because I have yet to watch the final six lectures: I look forward very much to doing so. My final remark is that anybody who has an interest in learning C++ would be well served by purchasing this course. John Keyser is an excellent lecturer; my basis for this comment is that my working years were spent at a university.
Date published: 2021-10-24
Rated 5 out of 5 by from MISSED EXPLAINATION IN CLASSES Declaration I bought this course a couple of months ago .I just completed the LECT 24 and came across a code snippet , I did not come across in Lectures related to CLASSES. This was disappointing .I am still trying to relate this code below to BASE CLASS Declaration. // Program 24_1 // Game AI example #include<iostream> #include<vector> #include<algorithm> using namespace std; class connect4_board; ------------------Never did this before. !!!!!!!!!!!!!!!!!!!!!!!!!!! pair<int, int> get_best_move(int, connect4_board, int); class connect4_move { private:
Date published: 2021-03-25
Rated 4 out of 5 by from Great cours Great course. Very detailed and makes you feel like c++ is the easiest programming language out there. The only complaint I have is that they did not have a lecture for switch statements and do while loops.
Date published: 2020-12-09
Rated 5 out of 5 by from Excellent lecturer The lectures were arranged in a logical sequence and provided an excellent introduction to C++ programming. The lecturer was excellent.
Date published: 2020-08-20
Rated 5 out of 5 by from c++ I have been programming for years but never had C++ training. Now I have a better understanding why I had to do certain steps.
Date published: 2020-08-09
  • y_2024, m_3, d_27, h_9
  • bvseo_bulk, prod_bvrr, vn_bulk_3.0.38
  • cp_1, bvpage1
  • co_hasreviews, tv_4, tr_47
  • loc_en_CA, sid_2074, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]
  • clientName_teachco
  • bvseo_sdk, p_sdk, 3.2.1
  • CLOUD, getReviews, 4.97ms
  • REVIEWS, PRODUCT

Overview

Taught by Professor John Keyser of Texas A&;amp;M University, this course is a step-by-step guide to the popular computer programming language C++. Professor Keyser explains how to access C++ so you can program along with him as he covers the major coding styles offered by this versatile language, including object-oriented programming. In the last lecture, you create an AI game-playing program.

About

John Keyser

Just as language helps us organize and describe ideas for people, programming languages help us organize and describe ideas for the computer.

INSTITUTION

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. Keyser's interest in computing, physics, and math steered him into a career in computer graphics, allowing him to combine all three disciplines. He has published widely on geometric modeling, physically based simulation for graphics, and a variety of other graphics topics.

Dr. Keyser's teaching ranges from introductory undergraduate courses in computing and programming to graduate courses in modeling and simulation. Among these, he created a new Programming Studio course that has become required for all Computer Science and Computer Engineering majors at Texas A&M. He has been honored three times with Texas A&M's Distinguished Achievement Award in Teaching-once at the university level and twice from the Dwight Look College of Engineering. As an Assistant Professor, he was named a Montague Scholar by the Center for Teaching Excellence. He also won the Tenneco Meritorious Teaching Award and the Theta Tau Most Informative Lecturer Award.

By This Professor

How to Program: Computer Science Concepts and Python Exercises
854
Introduction to C++: Programming Concepts and Applications
854
Introduction to C++: Programming Concepts and Applications

Trailer

Compiling Your First C++ Program

01: 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.

31 min
C++ QUICK START: With Browser or Download

02: C++ QUICK START: With Browser or Download

C++ QUICK START: With Browser or Download

20 min
Variables, Computations, and Input in C++

03: 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.

34 min
Booleans and Conditionals in C++

04: 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.

30 min
Program Design and Writing Test Cases in C++

05: 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.

29 min
C++ Loops and Iteration

06: 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.

31 min
Importing C++ Functions and Libraries

07: 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.

30 min
Arrays for Quick and Easy Data Storage

08: 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.

33 min
Vectors for Safe and Flexible Data Storage

09: 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.

32 min
C++ Strings for Manipulating Text

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++.

33 min
Files and Stream Operators in C++

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.

32 min
Top-Down Design and Using a C++ Debugger

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.

29 min
Creating Your Own Functions in C++

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.

30 min
Expanding What Your Functions Can Do in C++

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).

31 min
Systematic Debugging, Writing Exceptions

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.

31 min
Functions in Top-Down and Bottom-Up Design

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.

30 min
Objects and Classes: Encapsulation in C++

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.

34 min
Object-Oriented Constructors and Operators

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.

33 min
Dynamic Memory Allocation and Pointers

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.

32 min
Object-Oriented Programming with Inheritance

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.

33 min
Object-Oriented Programming with Polymorphism

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.

33 min
Using Classes to Build a Game Engine in C++

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.

31 min
C++ Templates, Containers, and the STL

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.

32 min
C++ Associative Containers and Algorithms

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.

31 min
Artificial Intelligence Algorithm for a Game

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.

34 min