C-PLUS.AE1
C++ All-in One
Strengthen your programming skills! Learn C programming concepts, syntax, and best practices.
- Practice in 68 Hands-On Labs — nothing to install
- 36 Interactive Lessons and 167 topics mapped to the official exam objectives
Intermediate Self-paced · 1 year access
68 Hands-On LiveLabs
Practice real IT tasks in guided environments.
- Real environments
- Auto-graded
- No installation
01 / Skills you'll get
What you will be able to do
- Knowledge of basic syntax, grammar, and structure of C programs
- Skilled in using various data types (int, float, char, etc.)
- Declaring, initializing, and using variables and constants
- Ability to work with operators including arithmetic, relational, logical, and bitwise
- Using conditional statements, loops, and branching
- Use of functions for creating, calling, and passing arguments
- Pointers, their dereferencing, and their use in memory management and dynamic data structures
- Using one-dimensional and multidimensional arrays
- Manipulating strings using standard library functions and custom implementations
- Expertise with File I/O and memory management
- Defining and using structures and unions for complex data
- Preprocessor directives for conditional compilation, macro definitions, and file inclusion
- Understanding of the C standard library functions and its usage
- Implement dynamic data structures including linked lists, stacks, queues, and trees
- Identify and debug errors in C code
Course Highlights
-
36 Structured Lessons Comprehensive coverage of core course objectives
-
68 Hands-On LiveLabs Interactive guided scenarios with instant evaluation
-
1 Year Full Access Self-paced learning accessible anytime on all devices
02 / Lessons & labs
See exactly what you will learn and practice
Lessons
36 Interactive Lessons · 167 topics01 Introduction 3 topics +
- About This Course
- Icons Used in This Course
- Where to Go from Here
02 Configuring Your Desktop System 4 topics +
- Obtaining a Copy of C++ 20
- Obtaining Code::Blocks
- Installing Code::Blocks
- Touring the Essential Code::Blocks Features
03 Configuring Your Mobile System 4 topics +
- Obtaining CppDroid
- Considering Other Alternatives
- Touring the Essential CppDroid Features
- Obtaining CppDroid Help
04 Creating Your First C++ Application 5 topics · 2 LiveLab +
- Code::Blocks Creating a Project
- Typing the Code
- Starting with Main
- Showing Information
- Let Your Application Run Away
2 LiveLab in this lesson — see the labs panel →
05 Storing Data in C++ 7 topics · 3 LiveLab +
- Putting Your Data Places: Variables
- Manipulating Integer Variables
- Characters
- Strings
- Making Decisions Using Conditional Operators
- Telling the Truth with Boolean Variables
- Reading from the Console
3 LiveLab in this lesson — see the labs panel →
06 Directing the Application Flow 9 topics · 4 LiveLab +
- Doing This or Doing That
- Evaluating Conditions in C++
- Including Evaluations in C++ Conditional Statements
- Repeating Actions with Statements That Loop
- Looping for
- Looping while
- Doing while
- Breaking and continuing
- Nesting loops
4 LiveLab in this lesson — see the labs panel →
07 Dividing Your Work with Functions 6 topics · 2 LiveLab +
- Dividing Your Work
- Calling a Function
- Writing Your Own Functions
- Improving On the Basic Function
- Calling All String Functions
- Understanding main()
2 LiveLab in this lesson — see the labs panel →
08 Splitting Up Source Code Files 4 topics · 2 LiveLab +
- Creating Multiple Source Files
- Sharing with Header Files
- Sharing Variables among Source Files
- Using the Mysterious Header Wrappers
2 LiveLab in this lesson — see the labs panel →
09 Referring to Your Data Through Pointers 7 topics · 4 LiveLab +
- Understanding the Changes in Pointers for C++ 20
- Heaping and Stacking the Variables
- Creating New Raw Pointers
- Freeing Raw Pointers
- Working with Smart Pointers
- Passing Pointer Variables to Functions
- Returning Pointer Variables from Functions
4 LiveLab in this lesson — see the labs panel →
10 Working with Classes 5 topics · 4 LiveLab +
- Understanding Objects and Classes
- Working with a Class
- Starting and Ending with Constructors and Destructors
- Building Hierarchies of Classes
- Creating and Using Object Aliases
4 LiveLab in this lesson — see the labs panel →
11 Using Advanced C++ Features 9 topics · 4 LiveLab +
- Filling Your Code with Comments
- Converting Types
- Reading from the Console
- Understanding Preprocessor Directives
- Using Constants
- Using Switch Statements
- Supercharging enums with Classes
- Working with Random Numbers
- Storing Data in Arrays
4 LiveLab in this lesson — see the labs panel →
12 Planning and Building Objects 3 topics +
- Recognizing Objects
- Encapsulating Objects
- Building Hierarchies
13 Building with Design Patterns 4 topics +
- Delving Into Pattern History
- Introducing a Simple Pattern: the Singleton
- Watching an Instance with an Observer
- Mediating with a Pattern
14 Considering Functional Programming 8 topics · 4 LiveLab +
- Understanding How Functional Programming Differs
- Defining an Impure Language
- Seeing Data as Immutable
- Considering the Effects of State
- Eliminating Side Effects
- Understanding the Role of auto
- Passing Functions to Functions
- Using Lambda Expressions for Implementation
4 LiveLab in this lesson — see the labs panel →
15 Working with Lambda Expressions 3 topics · 3 LiveLab +
- Creating More Readable and Concise C++ Code
- Defining the Essential Lambda Expression
- Developing with Lambda Expressions
3 LiveLab in this lesson — see the labs panel →
16 Advanced Lambda Expressions 4 topics · 2 LiveLab +
- Considering the C++ 20 Lambda Extensions
- Working in Unevaluated Contexts
- Using Assignable Stateless Lambda Expressions
- Dealing with Pack Expansions
2 LiveLab in this lesson — see the labs panel →
17 Dealing with Bugs 4 topics +
- It’s Not a Bug. It’s a Feature!
- Make Your Application Features Look Like Features
- Anticipating (Almost) Everything
- Avoiding Mistakes, Plain and Simple
18 Debugging an Application 3 topics +
- Programming with Debuggers
- Debugging with Different Tools
- Debugging a Code::Blocks Application with Command-Line Arguments
19 Stopping and Inspecting Your Code 2 topics · 1 LiveLab +
- Setting and Disabling Breakpoints
- Watching, Inspecting, and Changing Variables
1 LiveLab in this lesson — see the labs panel →
20 Traveling About the Stack 2 topics · 1 LiveLab +
- Stacking Your Data
- Debugging with Advanced Features
1 LiveLab in this lesson — see the labs panel →
21 Working with Arrays, Pointers, and References 3 topics · 2 LiveLab +
- Building Up Arrays
- Pointing with Pointers
- Referring to References
2 LiveLab in this lesson — see the labs panel →
22 Creating Data Structures 3 topics · 4 LiveLab +
- Working with Data
- Structuring Your Data
- Naming Your Space
4 LiveLab in this lesson — see the labs panel →
23 Constructors, Destructors, and Exceptions 2 topics · 3 LiveLab +
- Constructing and Destructing Objects
- Programming the Exceptions to the Rule
3 LiveLab in this lesson — see the labs panel →
24 Advanced Class Usage 2 topics · 2 LiveLab +
- Inherently Inheriting Correctly
- Using Classes and Types within Classes
2 LiveLab in this lesson — see the labs panel →
25 Creating Classes with Templates 6 topics · 3 LiveLab +
- Templatizing a Class
- Going Beyond the Basics
- Parameterizing a Template
- Typedefing a Template
- Deriving Templates
- Templatizing a Function
3 LiveLab in this lesson — see the labs panel →
26 Programming with the Standard Library 7 topics · 4 LiveLab +
- Architecting the Standard Library
- Containing Your Classes
- The Great Container Showdown
- Copying Containers
- Creating and Using Dynamic Arrays
- Working with Unordered Data
- Working with Ranges
4 LiveLab in this lesson — see the labs panel →
27 Filing Information with the Streams Library 4 topics · 1 LiveLab +
- Seeing a Need for Streams
- Programming with the Streams Library
- Handling Errors When Opening a File
- Flagging the ios Flags
1 LiveLab in this lesson — see the labs panel →
28 Writing with Output Streams 2 topics · 3 LiveLab +
- Inserting with the << Operator
- Formatting Your Output
3 LiveLab in this lesson — see the labs panel →
29 Reading with Input Streams 3 topics · 1 LiveLab +
- Extracting with Operators
- Encountering the End of File
- Reading Various Types
1 LiveLab in this lesson — see the labs panel →
30 Building Directories and Contents 4 topics +
- Manipulating Directories
- Getting the Contents of a Directory
- Copying Files
- Moving and Renaming Files and Directories
31 Streaming Your Own Classes 2 topics · 1 LiveLab +
- Streaming a Class for Text Formatting
- Manipulating a Stream
1 LiveLab in this lesson — see the labs panel →
32 Exploring the Standard Library Further 6 topics · 2 LiveLab +
- Considering the Standard Library Categories
- Parsing Strings Using a Hash
- Obtaining Information Using a Random Access Iterator
- Locating Values Using the Find Algorithm
- Using the Random Number Generator
- Working with Temporary Buffers
2 LiveLab in this lesson — see the labs panel →
33 Working with User-Defined Literals (UDLs) 3 topics · 2 LiveLab +
- Understanding the Need for UDLs
- Working with the UDLs in the Standard Library
- Creating Your Own UDLs
2 LiveLab in this lesson — see the labs panel →
34 Building Original Templates 8 topics · 2 LiveLab +
- Deciding When to Create a Template
- Defining the Elements of a Good Template
- Creating a Basic Math Template
- Building a Structure Template
- Developing a Class Template
- Considering Template Specialization
- Creating a Template Library
- Using Your Template Library
2 LiveLab in this lesson — see the labs panel →
35 Investigating Boost 11 topics +
- Considering the Standard Library Alternative
- Understanding Boost
- Obtaining and Installing Boost for Code::Blocks
- Creating the Boost Tools
- Using Boost.Build
- Using Inspect
- Understanding BoostBook
- Using QuickBook
- Using bcp
- Using Wave
- Building Your First Boost Application Using Date Time
36 Boosting up a Step 5 topics · 2 LiveLab +
- Parsing Strings Using RegEx
- Breaking Strings into Tokens Using Tokenizer
- Performing Numeric Conversion
- Creating Improved Loops Using Foreach
- Accessing the Operating System Using Filesystem
2 LiveLab in this lesson — see the labs panel →
Hands-On Labs Our edge
68 LiveLabs- Building and Executing the First C++ Application
- Adding Two Numbers
- Making a Calculator
- Adding Two Strings and Changing a Part of the String
- Comparing Two Integers Using the Conditional Operator
- Using Logical Operators
- Using the for Loop
- Using the do-while Loop
- Using the Nested for Loop
- Using the pow() Function
- Using the PrintName() function
- Defining and Calling a Function
- Adding a New Source Code File
- Using Pointers to Point to a String
- Displaying the Allocated Memory
- Replacing Characters within a String
- Using Pointers to Modify a Variable Passed into a Function
- Using the Public and Private Functions
- Using the this Variable
- Using Constructors and Destructors
- Deriving One Class from Another
- Performing TypeConversion
- Using the Switch Statement
- Creating a Class for enums
- Adding and Subtracting Pointers
- Finding the Factorial of a Number
- Using the auto Keyword
- Using Declarative Programming Techniques
- Using a Transform
- Demangling a Type Name
- Using the auto Keyword with Lambda Expressions
- Sorting Values Using a Lambda Expression
- Defining a Priority Queue Comparator
- Using a Variadic Template
- Setting a Breakpoint
- Calling the Nested Function
- Using the sizeof() Function
- Referencing a Method
- Calculating the Maximum Value and Size of Data Types
- Printing the ASCII Values
- Copying Structures
- Pulling Names into Other Namespaces
- Using the Copy Constructor
- Creating a Virtual Destructor
- Creating a Basic try-catch Block
- Using the Friend Function
- Using Multiple Inheritance
- Creating and Using a Template
- Using Static Members in a Template
- Overloading a Function Template
- Iterating Through a map
- Using Vectors as Container Classes
- Associating Objects with map
- Creating a Stack and a Queue
- Reading and Writing to a File
- Displaying Flag-Formatted Numbers
- Using the Precision Function
- Setting the Width and Creating Fields
- Using the Extraction Operator
- Using Manipulators
- Generating a Hash
- Generating Key and Value Pairs
- Using Prefixes and Suffixes
- Defining a UDL Operator
- Defining a Series of Function Templates
- Building a Structure Template
- Generating Tokens from Strings
- Using the BOOST_FOREACH Loop
03 / FAQs
Questions before you start
What is this C Primer Plus course about?+
Is this course worth the investment?+
Is this a beginner-friendly course?+
Does this course include any advanced topics of C programming?+
What are the career benefits of doing this course?+
What are the job opportunities available after this course?+
Will I get a certificate after completing this course?+
Gain Job-Ready Programming Skills
Learn how to write efficient and well-structured C Programming codes.
- 1 year of full access
- 68 LiveLab included
- Certificate of completion