Back-End Foundations: C++ and Python Course

C++ skills are in high demand across various industries, including gaming, finance, aerospace, and automotive engineering. In 2025, there were over 559,000 job postings in the U.S. that required C++ knowledge, with average salaries for these roles around $159,600 per year, significantly higher than the typical range for software developers. As companies increasingly adopt artificial intelligence (AI) and modernize their systems, the overall job market for software development is expected to...

SHARE
9 Months / 345 Course Hrs
Open Enrollment
Offered in partnership with your preferred school

Illinois Valley Community College

Change School
Learning method

for additional information

Course code: GES3137

What you will learn

  • Set up a modern C++ development environment, write your first program, and apply core C++ programming concepts like variables, control flow, functions, and error handling
  • Work with arrays, strings, pointers, memory management, and smart pointers while implementing key object‑oriented principles in C++(encapsulation, inheritance, and polymorphism)
  • Use AI tools to generate, debug, and explain C++ code to accelerate learning and development
  • Understand Python's importance across modern development fields and learn to apply advanced sorting techniques and perform mathematical operations using tools like NumPy
  • Master writing clean, modular, reusable Python code using object‑oriented programming
  • Ensure reliability through structured testing, debugging practices, and regular expression–based pattern matching
  • Work with databases, CSV files, JSON, XML, and analyze, clean, and manipulate data effectively with pandas

How you will benefit

  • Build a strong foundation in C++ and Python fundamentals and advanced concepts
  • Improve productivity and problem-solving with AI-assisted coding techniques
  • Boost your confidence and résumé by adding job-ready Python skills and creating a portfolio-ready project that demonstrates real-world C++ proficiency
  • Prepare for advanced certifications or more specialized programming paths with confidence
  • Strengthen your career prospects in software development, game programming, systems engineering, and Python programming

How the course is taught

  • Self-paced, online course
  • 9 Months to complete
  • Open enrollment, begin anytime
  • 345 course hours

Course Activities

  • Quizzes: 31
  • Assignments: 85
  • Projects: 2
  • Exams: 2

Part 1 - Introduction to Python 3 Training

Lesson 1: Python Basics (Quizzes: 1, Assignments: 5)

  • Getting Familiar with the Terminal
  • Running Python
  • Running a Python File
  • Literals, Comments, and Data Types
  • Variables
  • Constants and Deleting Variables
  • Writing a Python Module
  • print() Function
  • Collecting User Input
  • Reading from and Writing to Files

Lesson 2: Functions and Modules (Quizzes: 1, Assignments: 2)

  • Defining Functions
  • Variable Scope
  • Global Variables
  • Function Parameters
  • Default Values
  • Returning Values
  • Importing Modules
  • Methods vs. Functions

Lesson 3: Math (Quizzes: 1, Assignments: 3)

  • Arithmetic Operators
  • Assignment Operators
  • Precedence of Operations
  • Built-in Math Functions
  • The math Module
  • The random Module

Lesson 4: Python Strings (Quizzes: 1, Assignments: 5)

  • Quotation Marks and Special Characters
  • String Indexing
  • Slicing Strings
  • Concatenation and Repetition
  • Combining Concatenation and Repetition
  • Python Strings are Immutable
  • Common String Methods
  • String Formatting
  • Formatted String Literals (f-strings)
  • Built-in String Functions

Lesson 5: Iterables: Sequences, Dictionaries, and Sets (Quizzes: 1, Assignments: 4)

  • Definitions
  • Sequences
  • Lists
  • Sequences and Random
  • Tuples
  • Ranges
  • Converting Sequences to Lists
  • Indexing
  • Slicing
  • min(), max(), and sum()
  • Converting between Sequences and Strings
  • Unpacking Sequences
  • Dictionaries
  • The len() Function
  • Sets
  • *args and **kwargs

Lesson 6: Virtual Environments, Packages, and pip (Quizzes: 1, Assignments: 2)

  • Packages with pip

Lesson 7: Flow Control (Quizzes: 1, Assignments: 3)

  • Conditional Statements
  • Compound Conditions
  • The is and is not Operators
  • all() and any() and the Ternary Operator
  • In Between
  • Loops in Python
  • break and continue
  • Looping through Lines in a File
  • The else Clause in Loops
  • The enumerate() Function
  • Generators
  • List Comprehensions

Lesson 8: Exception Handling (Quizzes: 1, Assignments: 2)

  • Exception Basics
  • Generic Exceptions
  • The else and finally Clauses
  • Using Exceptions for Flow Control
  • Raising Your Own Exceptions

Lesson 9: Python Dates and Times (Quizzes: 1, Assignments: 2)

  • Understanding Time
  • The time Module
  • Time Structures
  • Times as Strings
  • Time and Formatted Strings
  • Pausing Execution with time.sleep()
  • The datetime Module
  • datetime.datetime Objects
  • datetime.timedelta Objects

Lesson 10: File Processing (Quizzes: 1, Assignments: 4)

  • Paths
  • The pathlib Module
  • Opening Files
  • Writing to Files
  • Path Methods for Reading and Writing Files
  • Making Directories
  • Deleting Files and Directories
  • Renaming Files and Directories
  • The os Module
  • A Better Way to Open Files

Lesson 11: PEP8 and Pylint (Quizzes: 1, Assignments: 0)

  • PEP8
  • Pylint

Part 2 - Advanced Python 3 Training

Lesson 1: Advanced Python Concepts (Quizzes: 1, Assignments: 5)

  • Lambda Functions
  • Advanced List Comprehensions
  • Collections Module
  • Counters
  • Mapping and Filtering
  • Mutable and Immutable Built-in Objects
  • Sorting
  • Sorting Sequences of Sequences
  • Creating a Dictionary from Two Sequences
  • Unpacking Sequences in Function Calls
  • Modules and Packages

Lesson 2: Regular Expressions (Quizzes: 1, Assignments: 1)

  • Regular Expression Tester
  • Regular Expression Syntax
  • Python's Handling of Regular Expressions

Lesson 3: Working with Data (Quizzes: 1, Assignments: 6)

  • Virtual Environment
  • Relational Databases
  • Passing Parameters
  • SQLite
  • SQLite Database in Memory
  • Drivers for Other Databases
  • CSV
  • Creating a New CSV File
  • Getting Data from the Web
  • XML
  • JSON

Lesson 4: Testing and Debugging (Quizzes: 1, Assignments: 2)

  • Testing for Performance
  • The unittest Module
  • Special unittest.TestCase Methods

Lesson 5: Classes and Objects (Quizzes: 1, Assignments: 5)

  • Attributes
  • Behaviors
  • Classes vs. Objects
  • Attributes and Methods
  • Private Attributes
  • Properties
  • Objects that Track their Own History
  • Documenting Classes
  • Inheritance
  • Extending a Class Method
  • Static Methods
  • Class Attributes and Methods
  • Abstract Classes and Methods
  • Understanding Decorators

Part 3 - Python Data Analysis with JupyterLab Training

Lesson 1: JupyterLab (Quizzes: 1, Assignments: 5)

  • Jupyter Notebook Modes
  • Markdown
  • Magic Commands
  • Getting Help

Lesson 2: NumPy (Quizzes: 1, Assignments: 3)

  • NumPy Arrays
  • Multi-dimensional Arrays
  • More on Arrays
  • Using Boolean Arrays to Get New Arrays
  • Random Number Generation
  • Exploring NumPy Further

Lesson 3: pandas (Quizzes: 1, Assignments: 5, Projects: 1)

  • Getting Started with pandas
  • Introduction to Series
  • np.nan
  • Accessing Elements in a Series
  • Series Alignment
  • Comparing One Series with Another
  • Element-wise Operations and the apply() Method
  • Series: A More Practical Example
  • Introduction to DataFrames
  • Creating a DataFrame using Existing Series as Rows
  • Creating a DataFrame using Existing Series as Columns
  • Creating a DataFrame from a CSV
  • Exploring a DataFrame
  • Changing Values
  • Getting Rows
  • Combining Row and Column Selection
  • Boolean Selection
  • Pivoting DataFrames
  • Be careful using properties!
  • Plotting with matplotlib
  • Other Kinds of Plots

Python Programmer Final Exam

Part 4 - Introduction to C++ Programming

Lesson 1: Getting Started with Modern C++ (Quizzes: 1, Assignments: 1)

  • History and Evolution of C++
  • Procedural and Object-Oriented Features
  • Program Structure Basics

Lesson 2: Core Syntax and Control Flow (Quizzes: 1, Assignments: 1)

  • Variables, Constants, and Type Deduction
  • Operators and Expressions
  • Basic Input and Output
  • Modern Output: std::format
  • Conditionals: if and switch
  • Loops: for, while, do-while

Lesson 3: Functions and Functional Features (Quizzes: 1, Assignments: 1)

  • Defining and Using Functions
  • Overloading and Default Parameters
  • Scope and Lifetime
  • Lambdas and Generics
  • consteval and constexpr
  • Error Handling Techniques

Lesson 4: Arrays and Strings (Quizzes: 1, Assignments: 1)

  • C-style Arrays and Strings Overview
  • Modern Arrays: std::array
  • Strings with std::string and std::string_view
  • String Formatting with std::format

Lesson 5: Memory and Pointers (Quizzes: 1, Assignments: 1)

  • Basics of Pointers and Addresses
  • Pointer Arithmetic
  • Dynamic Memory: new and delete
  • Smart Pointers: unique_ptr, shared_ptr, weak_ptr
  • Pointers vs. References

Lesson 6: Structured Programming (Quizzes: 1, Assignments: 1)

  • User-Defined Types: struct
  • typedef and enum
  • Passing Structs to Functions

Lesson 7: Standard Data Structures (Quizzes: 1, Assignments: 1)

  • Vectors and Lists
  • Stacks, Queues, and Deques
  • Maps and Sets
  • Unordered Containers
  • Common Algorithms: sort, find, Ranges

Lesson 8: Object-Oriented Programming (Quizzes: 1, Assignments: 1)

  • OOP Principles: Encapsulation, Inheritance, Polymorphism
  • Class Definitions
  • Member Variables and Functions
  • Constructors and Destructors
  • Access Control
  • Function and Operator Overloading

Lesson 9: Inheritance and Polymorphism (Quizzes: 1, Assignments: 1)

  • Base and Derived Classes
  • Inheritance Types
  • Virtual Functions and Dynamic Dispatch
  • Abstract Classes and Interfaces

Lesson 10: File I/O (Quizzes: 1, Assignments: 1)

  • File Streams and Concepts
  • Reading Files: ifstream
  • Writing Files: ofstream
  • File Modes and Error Handling
  • Working with Structured Data Files

Part 5 - AI-Assisted Python and C++ Development

Lesson 1: Overview of Artificial Intelligence and Large Language Models (Quizzes: 1, Assignments: 1)

  • Overview of Artificial Intelligence and Large Language Models
  • Large Language Models: Challenges and Risks
  • ChatGPT Overview and Use Cases
  • How ChatGPT Helps Developers Write Code
  • Prepping a ChatGPT Thread
  • The Role of AI in Programming
  • Getting Started with ChatGPT

Lesson 2: AI-Assisted Python (Assignments: 5)

  • Setting Up and Using Google Colab
  • Writing a Python Module
  • Debugging and Optimizing Python
  • Making Use of an API
  • Creating a Python Script with File I/O
  • Recommended Practice

Lesson 3: AI-Assisted C++ (Quizzes: 1, Assignments: 5, Projects: 1)

  • Writing a C++ Program with AI Assistance
  • Debugging and Optimizing C++
  • Using AI to Understand and Explore C++ Code
  • Creating a C++ Program with File I/O
  • Recommended Practice

C++ Final Exam

Stephen Withrow

Stephen has over 30 years of experience in training, development, and consulting in a variety of technology areas, including Python, Java, C, C++, XML, JavaScript, Tomcat, JBoss, Oracle, and DB2. His background includes design and implementation of business solutions on client/server, Web, and enterprise platforms. Stephen has a degree in Computer Science and Physics from Florida State University.

Prerequisites:

There are no prerequisites required to complete this course. No prior C++ or Python experience is required.

Requirements:

Hardware Requirements:

  • This course can be taken on either a PC or Mac. Chromebooks are not compatible.

Software Requirements:

  • PC: Windows 10 or later.
  • Mac: macOS 10.6 or later.
  • Browser: The latest version of Google Chrome or Mozilla Firefox is preferred. Microsoft Edge and Safari are also compatible.
  • Microsoft Word Online
  • Adobe Acrobat Reader
  • Software must be installed and fully operational before the course begins.

Other:

  • Email capabilities and access to a personal email account.

Instructional Material Requirements:

The instructional materials required for this course are included in enrollment and will be available online.

The average salary for a software engineer in the U.S. is about $131,000–$133,000 per year, according to data from the U.S. Bureau of Labor Statistics and Lightcast. Jobs requiring specialized skills like C++ can pay significantly more—around $159,600 annually. This field is growing fast, with overall demand expected to rise 15% by 2034, making it one of the most promising tech careers.

No prior experience with C++ is needed. If you have worked with any programming language before (like Python or JavaScript), that's helpful—but not required. The course starts with the basics and guides you step-by-step through practical projects.

This course prepares you for entry-level roles such as junior C++ developer, software engineer, or embedded systems programmer. C++ is widely used in industries like gaming, finance, aerospace, and robotics, providing strong career potential and average salaries exceeding $100,000 per year.

You will learn how to use AI tools like ChatGPT to assist with writing, debugging, and explaining C++ code. This increases productivity and helps you solve problems more quickly—skills that are increasingly important in modern development workflows.

Built In reports an average base salary of $112,382, with total compensation of around $127,649 for Python developers. Jobicy lists an average of $107,000, ranging from $64,200 for junior roles to $192,600 for senior positions. These differences reflect factors like experience level, location, and company size.

According to Indeed, a Python developer is responsible for utilizing the Python language to develop, debug, and implement application projects. They possess a deep understanding of Python and can accomplish various tasks using this versatile language. Python developers are also proficient in academic research, scientific computing, machine learning, AI, and web development. Their duties can include:

  • Developing and implementing application projects
  • Debugging code
  • Connecting programs to external web services

Additionally, they collaborate with front-end developers to seamlessly integrate their work into Python applications. By fulfilling these responsibilities, Python developers contribute to creating robust and efficient applications while enhancing their skills in server-side web application logic.

No

After you register, you will receive 9 months to complete the course. The time allotted for completion has been calculated based on the number of course hours.

This course is open enrollment, so you can register and start the course whenever you are ready. Access to your course can take 24-48 business hours.

The time allotted for course completion has been calculated based on the number of course hours. However, if you are unable to complete the course, contact the student advising team to see what options you may have available to work out a suitable completion date. Please note that an extension fee may be charged.

Our courses are designed to accommodate various learning preferences. Depending on the course structure, you may get different forms of support. Self-paced courses are designed to be user-friendly and independent, minimizing the need for external support. In courses with instructors, our direct platform support feature includes opportunities for questions, discussions, and remediation, with email and phone support available for select courses. Our student advising team is available to guide you on program requirements and administrative requests, but they do not provide assistance with course content. Our goal is to provide you with the necessary support for success, whether it's through self-paced exploration, direct communication, or guidance from our advising team.

Upon successfully passing the final exam, you will be awarded a certificate of completion from the school or organization that you registered through.

ed2go courses will help you gain the skills you need to obtain an entry-level position in most cases. However, you should always research the job market in your area before enrolling.

ed2go courses are non-credit, so they do not qualify for federal aid, FAFSA, and Pell Grant. In some states, vocational rehab or workforce development boards may provide funding to take our courses. Additionally, you may qualify for financial assistance if you meet certain requirements. Learn more about financial assistance.

If you have questions that are not answered on our website, representatives are available via LIVE chat. You can also call us at 1-877-221-5151 during regular business hours to have your questions promptly answered. If you are visiting us during non-business hours, please send us a question using the "Contact Us."