C++ Programming - Fundamental

Learn C++ fundamentals for Digital IC design, verification, and EDA-based development

Instructor: EDA Academy
CourseAug 05, 2026All LevelEnglish

This course teaches C++ fundamentals for Digital IC design and verification work. It covers core language concepts, object-oriented programming, and practical coding techniques used in EDA-related development, helping learners write clear, reliable, and structured C++ code for hardware-oriented tasks.

5.0
2students

This offering includes

  • 10 modules
  • 46 lectures
  • Access on mobile and computer
  • Certificate of completion
  • 8.93 hours on-demand video
  • 724.4 KB downloadable content
  • 72 Quiz questions

What you'll learn

Build and Apply Core C Programming Foundations
Apply Object-Oriented Principles to C++ Program Design
Write Simple C++ Programs Using Classes and Objects
Manage Object Lifecycle Using Constructors and Destructors
Use Reference Variables for Efficient Data Access in C++
Manage Function Behavior and Scope in C++ Programs
Control Type Conversion Behavior in C++ Programs
Improve Class Usability Using Operator Overloading
Apply Inheritance Concepts for Better Code Organization

Who is this course for

Digital IC design engineers who need practical C++ programming skills
Verification engineers who use C++ in hardware development workflows
Learners preparing for Digital IC design and verification roles
Engineers who want C++ knowledge for EDA-related development tasks
Programmers moving from procedural coding into hardware-oriented C++ design
C programmers who want to apply C++ in Digital IC environments
Developers involved in High-Level Synthesis or C++ to RTL workflows
Engineers who need C++ for structured design and verification code
Hardware-focused developers who need reusable and maintainable C++ code
Anyone using C++ to support Digital IC implementation or verification tasks

Requirements

Have a basic working knowledge of the C programming language
Know how to write and run small procedural programs
Be able to use a computer for coding and file management
Be able to compile and run code in a development environment
Have a basic understanding of digital IC design concepts

Description

C++ builds on procedural programming foundations and extends them with stronger abstraction and control over data and behavior. Core language elements include program structure, execution flow, and memory organization. Data types, pointers, arrays, and structured data define how information is stored and accessed. Linkage, scope, and storage duration determine visibility and lifetime of program elements. Compilation and linking processes connect source code into executable programs, requiring clear understanding of translation units and build workflows. Object-oriented design introduces classes and objects as the primary way to model systems. Encapsulation groups data and functions together, improving clarity and maintainability. Access control defines how internal data is exposed and protected. Differences between procedural and object-based modeling highlight the advantages of abstraction in managing complexity. Clear naming, scope resolution, and controlled interfaces support consistent and predictable program structure. Program construction relies on correct use of class members, standard input and output mechanisms, and dynamic memory management. The this pointer represents the current object and enables precise control within class functions. Expression value categories influence how objects behave in assignments and function calls. Careful declaration and usage of variables reduce ambiguity and improve readability. Object lifecycle management depends on constructors and destructors. Initialization ensures valid object state, while destruction releases resources safely. Copying and moving objects affect performance and correctness, requiring understanding of shallow and deep copy behavior. Reference variables provide efficient access to existing data, and parameter passing methods influence both performance and clarity. Function design includes overloading, scope control, and use of const correctness. Static members define shared data and behavior across objects. Lambda expressions and function objects introduce flexible ways to represent operations. Type systems and conversion rules control how values are interpreted and transformed, requiring attention to implicit and explicit conversions. Operator overloading enables user-defined types to behave like built-in types, improving code readability and usability. Inheritance establishes relationships between classes, supporting reuse and extension. Access rules and class hierarchies define how derived classes interact with base classes. Multiple inheritance and virtual base classes address more complex design structures and data sharing concerns.

You might also like

More offerings will load here.

Secure checkout via our payment partner.