Module (50%)
Section (50%)

Frequently Asked Questions (FAQ)

This FAQ covers questions related to the C Essentials and C++ Essentials courses. Please read this FAQ and review the courseware before contacting the OpenEDG C++ Institute staff. Thank you.
Last updated December 22, 2020

Who is sponsoring the course?

OpenEDG C++ Institute has developed the courses CPA: Programming Essentials in C++ and CLA: Programming Essentials in C to enhance, develop and support professional careers in C/C++ programming and related network technologies.

The C++ Institute is offering these courses to all institutions participating in the Cisco Networking Academy® program for Instructor-Led Training (available now) and Self-Paced Training (available in the future).

The courses are offered free of charge. To learn more about the C++ Institute, please visit www.cppinstitute.org

What C and C++ beginner courses are offered on Netacad.com?

Cisco Networking Academy, in partnership with the C++ Institute, offers CLA: Programming Essentials in C and CPA: Programming Essentials in C++ courses. The two courses have been designed for beginners with little or no prior knowledge of programming.

What are the main features of the course curriculum?

The course CLA: Programming Essentials in C covers the following subjects:

  • Introduction to compiling and software development;
  • Basic scalar data types and their operators;
  • Flow control;
  • Complex data types: arrays, structures and pointers;
  • Memory management;
  • Files and streams;
  • Structuring the code: functions and modules;
  • Preprocessor directives and complex declarations.

Students who complete the course will become familiar with the basic concepts of computer programming and developer tools, and will be able to accomplish coding tasks related to the basics of programming in the C language.

After the course the student will be able to write his or her own programs using standard language infrastructure. Furthermore, they will be ready to attempt the qualifications CLE – C Certified Entry-Level Programmer Certification and CLA – C Programming Language Certified Associate Certification from the C++ Institute.


The course CPA: Programming Essentials in C++ covers the following subjects:

  • Introduction to compiling and software development,
  • Basic scalar data types, operators, flow control, streamed input/output, conversions,
  • Declaring, defining and invoking functions, function overloading,
  • Data aggregates,
  • Strings processing, exceptions handling, dealing with namespaces,
  • Object-oriented approach and its vocabulary,
  • Dealing with classes and objects, class hierarchy and inheritance,
  • Defining overloaded operators, self-defined operators, exceptions,
  • Fundamentals of STL.

Students who complete the course will be able to accomplish coding tasks related to the basics of programming in the C++ language, and to understand the fundamental notions and techniques used in object-oriented programming.

Furthermore, they will be ready to attempt the qualifications CPE – C++ Certified Entry-Level Programmer Certification and CPA – C++ Certified Associate Programmer Certification from the C++ Institute.



Why should I learn C and C++?

There is no best programming language. Each language is better than others for certain things, and which one you are using depends on what you want to do with it. Having said that, the fact remains, though, that the world runs on C and C++. People use numerous C/C++ powered devices on a daily basis, whether they realize it or not, and there are all the signs that C/C++ will remain omnipresent in the future.

There are probably as many views on what the best language for beginners is as there are teachers of programming. We are not saying C/C++ is the best choice; we are saying, however, that C/C++ is a good choice. Why? Well, for several reasons: to name just a few, there have been millions or even billions of lines of code written in C/C++, so it is particularly advantageous when you are starting your adventure with programming and looking for examples – yes, the C/C++ languages are simple, readable and flexible, and yes, they are versatile, portable, and fast; what is more, there is a large and very active C/C++ community, which will lend you a hand whenever you encounter a programming challenge. There is nothing more valuable at the start than support that comes from other programming professionals.

The C/C++ languages have influenced and been the backbone of a number of other languages (for example, Java derives much of its syntax from C/C++). They are very powerful programming tools.

Learning C/C++ gives you a wider perspective. First, it will give you a solid foundation and pave your way to learning other programming languages much easier and much faster. And second, when you code in C/C++, you actually have to understand everything you write. This means you will understand everything the machine will do with your code, which, in turn, gives you full control over what the machine will do and, consequently, gives you a better understanding of how it works. Knowledge of C/C++ helps you delve into the details of programming and the language is a great foundation for learning more and more. Do not forget that.

Which language should I learn first: C or C++?

There does not seem to be the right order to learn C and C++. Even though C++ is a direct descendant of classic C, and it retains almost all of C as a subset, they are actually different languages. Which course you do first will, then, depend on your goals.

C and C++ are powerful languages, both considered general-purpose programming languages: the C language is widely used for creating software that is “close to the machine”, while the C++ language is widely used for creating higher-level applications.

The C language can be used for building low-level programs that are close to the machine, i.e. operating systems, drivers, device control applications, etc.

The C++ language can be used for building higher-level applications with graphics libraries, applications for communication with network devices, computer network simulators, as well as systems of remote device and network management.

That is why, broadly speaking, the C language is most often used for systems-level programming, while C++ is used for higher-level programming. So if you are considering a career as a driver developer, then you are more likely to prefer C over C++, and therefore start your adventure with programming by signing up for the CLA: Programming Essentials in C course. If, on the other hand, you want to become a video game developer, you are much more likely to use C++ over C, and therefore do the CPA: Programming Essentials in C++ course first.

One more hint, though, can be that the CLA: Programming Essentials in C course covers a lesser amount of material to study, hence it may be preferred for the start by some.

What are C and C++ actually used for?

C and C++ are everywhere. Therefore, it may often be difficult to separate one from the other as in most cases programs and applications are written by combining the two languages. For this reason, we are going to refer to the following examples as "C/C++ applications."

Most of the operating systems are written in the C/C++ languages. These not only include Windows or Linux (the Linux kernel is almost entirely written in C), but also Google Chrome OS, RIM Blackberry OS 4.x, Symbian OS, Apple Mac OS X, iPAD OS, Apple iPhone iPod Touch, and Cisco IOS (which is mainly comprised of compiled C and C++ code).

Think of such Internet Browsers as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Safari, Netscape Navigator, or Opera. They all, too, have been developed in C/C++.

And what about websites? Google? Facebook? Twitter? YouTube? Amazon? PayPal? Yes. They all have been written, to a larger or smaller extent, in C/C++.

Think of Microsoft Office products (Word, Excel, Access, PowerPoint, etc.) or e-mail clients (Microsoft Outlook, Mozilla Thunderbird, IBM Lotus). Think of Multimedia players such as Winamp, Windows Media Player, VLC media player, or Apple iPod software. Think of Database systems such as Oracle database, MySQL, IBM DB2, Microsoft SQL Server, IBM Informix, SAP DB/MaxDB, or MongoDB. Think of the examples of the Graphical User Interface, such as Microsoft Windows UI, Apple MacOS UI (Aqua), or KDE. Finally, think of compilers and virtual machines for programming languages, such as Microsoft Visual C++ Compiler, Microsoft Visual Basic Compiler, Microsoft Visual C# Compiler, Microsoft .NET CLR, or Java Virtual Machine (JVM). Yes, they all have been developed in C/C++. And yes, a variety of compilers and run-time environments for other programming languages have been developed in C/C++, which means, for example, that it would not be possible to execute .NET or Java applications without C/C++.

Older gamers surely remember Doom III, StarCraft, Master of Orion III, and Warcraft III. You have probably played (or at least heard of) Diablo I or Diablo II? If you like computer games, then you must have heard of Electronic Arts. All of these games have to do with C/C++ programming. The truth is that a large majority of computer games and game engines have been developed in C/C++. Electronic Arts’ video game engine and (probably) all Microsoft games are no exception.

Looking for more? Here are some other applications largely written in C/C++: Sun Microsystem’s compilers, Solaris OS, Google File System, Google Earth and Picasa, Adobe’s Photoshop, Illustrator, Acrobat Reader, InDesign, Intel’s chip design and manufacturing software, IBM’s OS/400 and K42, Microsoft’s DirectX, Exchange Server, and Visual Studio, CERN data analysis applications, Bloomberg, Autodesk’s applications, e.g. Autodesk Maya, 12D, Vodaphone infrastructure, and FlightGear... Okay, are you ready to learn some programming now?

How long will it take to complete the course?

Each course is designed to be taught over a semester, but academies and instructors are encouraged to use the courseware and teaching resources based on the actual needs of the academic institution and students.

Is there a Statement of Achievement?

A Statement of Achievement will be issued to participants who successfully complete the CLA: Programming Essentials in C course. The Statement of Achievement will acknowledge that the individual has completed the course and is now ready to attempt the qualifications CLE – C Certified Entry-Level Programmer and CLA – C Programming Language Certified Associate certifications.

A Statement of Achievement will be issued to participants who successfully complete the CPA: Programming Essentials in C++ course. The Statement of Achievement will acknowledge that the individual has completed the course and is now ready to attempt the qualifications CPE – C++ Certified Entry-Level Programmer and CPA – C++ Certified Associate Programmer certifications.

To receive the Statement of Achievement, instructors must mark the student as having successfully passed the course.

What jobs align with the course(s)?

C is a general-purpose programming language that is widely used for writing almost all types of software. It is used for embedded and real-time systems, operating systems, control systems, compilers, databases, utilities, network drivers, open source software, and many modern programs. The most common jobs related to C programming are Software Developer, Software Engineer, System Engineer and Software Architect.

C++ is a general-purpose high-level programming language that is widely used for writing almost all types of software. It is used for embedded and real-time systems, gaming, finance, telecom projects, device driver development and many more applications. The most common jobs related to C++ programming are Software Developer, Software Engineer, System Engineer and Software Architect.

It is important to remember that a knowledge of programming is also one of the crucial skills for network administrators. It helps them to better understand the functionality as well as the potential of network devices. Network engineers and network administrators, with knowledge of programming in at least one powerful C-like language (e.g. C or C++), are highly sought-after in the job market today for the unique combination of their skills and ability to successfully deal with non-standard network issues.

Does the course align with any industry-recognized certification?

Yes, the CLA: Programming Essentials in C course aligns with the C++ Institute CLE – C Certified Entry-Level Programmer and CLA – C Programming Language Certified Associate certifications. CLE – C Certified Entry-Level Programmer certification is an interim step to the CLA – C Certified Associate Programmer certification, and the starting point to launch a career in software development, low-level and middle-level programming, C programming, and related technologies. Becoming CLE certified will help you stand out from other candidates and get your foot in the door.

CLA – C Certified Associate Programmer certification shows that you are familiar with all the exam scope covered by the CLE certification, and that you understand and use such concepts as functions, files, streams, preprocessor, and complex declarations.

The CPA: Programming Essentials in C++ course aligns with the C++ Institute CPE – C++ Certified Entry-Level Programmer and CPA – C++ Certified Associate Programmer certifications. CPE – C++ Certified Entry-Level Programmer certification is an interim step to the CPA – C++ Certified Associate Programmer certification, and a good starting point for individuals who want to become professional C++ developers.

What is the value of the OpenEDG C++ Institute certification?

With an increase in the need for IT positions and, at the same time, a rise in the number of programmers and software developers, it is becoming more and more important to showcase and validate your knowledge, especially when you are looking for a new job and are having to compete on the job market with dozens or even hundreds of other applicants.

The C++ Institute certification can be a powerful weapon in the race for better employment, first-rate expertise and greater competitiveness.

The certification can open doors to a better job and a better salary. It is a great motivator for self-improvement and self-development. It is one of the key requirements set by an increasing number of IT managers and, frequently, a standard criterion for candidates among recruiters.

The C++ Institute certification is proof to the employer that you possess the expertise necessary to fulfil certain duties. At the same time, it is a sign for them that you are willing to expand your knowledge. And because certified individuals directly contribute to an increase in a company’s efficiency, productivity and profit-making capacity, the C++ Institute certification is an asset for every organization.

In the survey conducted online from June 22 to June 24, 2016, among individuals who had passed a C++ Institute certification exam in the previous 24 months (The 2016 Value of C++ Institute Certification Report prepared by Fundacja IT and C++ Institute):

  • 83% of respondents said that obtaining a C++ Institute certification had directly translated into receiving some career benefit.
  • 62% of respondents said that obtaining a C++ Institute certification had a positive impact on professional image and reputation.
  • 49% of respondents said that earning a C++ Institute certification had helped them to do their job more confidently.
  • 41% of respondents claimed that learning new things was the biggest benefit from obtaining a C++ Institute certification.
  • 42% of respondents said they had experienced the first benefit of obtaining a C++ Institute certification immediately, and 33% within 3 months.

To read more about the value of the C++ Institute certifications, please visit the Why Get Certified page at cppinstitute.org/why-get-certified

Is there any discount for the CLA and CPA certification exams?

The C++ Institute offers participants of the Cisco Networking Academy® program who successfully complete the CLA: Programming Essentials in C course a 50% discount on the list price for the CLA – C Programming Language Certified Associate Certification exam taken at Pearson VUE Testing Centres.

The C++ Institute offers participants of the Cisco Networking Academy® program who successfully complete the CPA: Programming Essentials in C++ course a 50% discount on the list price for the CPA – C++ Certified Associate Programmer Certification exam taken at Pearson VUE Testing Centres.

Students who successfully complete the course, i.e.:

  • pass the summary tests
  • pass the Final Test (score at least 35/50 points)
  • complete the Welcome and Exit Surveys, and accept the course T&C

will be entitled to a discount voucher that reduces the exam fee by 50%.

Students who qualify for the discount will unlock the Exam Voucher course section in the course interface on NetAcad. To request the discount voucher, the student must click the Voucher Request Form link, fill out the Voucher Request Form, accept the Voucher Policy, and submit the application.

The C++ Institute will automatically process the application and immediately assign the voucher (the candidate will see the voucher and related information on the next screen).

No discount voucher is provided for the CLE – C Certified Entry-Level Programmer and CPE – C++ Certified Entry-Level Programmercertification exams at this time.

Do I need any additional equipment for the course?

The courses can be accessed online through any Internet browser, on computers with Linux, Windows, or Mac OS. The minimum equipment required for each course is:

  • A computer with an Internet browser and active Internet connection, equipped with an IDE, or
  • ... a computer with an Internet browser and active Internet connection, without any locally installed IDE.

The first option requires the installation of a software application such as Microsoft Visual Studio (Windows OS), Eclipse (Windows OS, Linux OS, Mac OS), NetBeans (Windows OS, Linux OS, Mac OS), Code::Blocks (Windows OS, Linux OS, Mac OS), Xcode (Mac OS), or some other IDE of your choice.

The second option does not require the installation of any software applications – it is possible to use on-line tools like ideone, C++ shell, or Edube Interactive (recommended) - a dedicated compilation tool integrated with the course and lab exercises.

Recommended equipment and technical requirements to use Edube Interactive:

  • a desktop computer or a laptop (recommended: a desktop computer with a mouse/pointing device and keyboard)
  • minimum RAM: 1 GB or more;
  • minimum processor: 1.0 GHz or more;
  • the most recent version of Mozilla Firefox, Microsoft Edge, Google Chrome, Safari, Opera (preferred: Google Chrome)
  • JavaScript enabled in your browser (mandatory requirement)
  • a fast and stable Internet connection (recommended Internet download speed: 1.0 Mbps or higher; recommended Internet upload speed: 0.5 Mbps or higher)
  • a color monitor, minimum screen resolution: 640 by 480 pixels (recommended: 1024 by 768 pixels)
  • Windows 7/8/10 OS, MacOS X 10.0x or newer, Linux OS;
  • whitelist the domains “*.edube.org” and “*.openedg.org”
  • full access through ports 80 (http), 443 (https), and http redirects permitted.

Is there a downloadable version of the course(s)?

No, there is no downloadable version of the courses, but instructors can download the PDF versions of labs.

Who should I contact if I have questions about the content of the course(s)?

Students should direct all questions about the course content to their course instructor. Students and instructors can also use a contact form that has been specially designed for this purpose to submit feedback to the C++ Institute for bugs, suggested edits, content typos, etc.

For questions not covered in this document, all CLA: Programming Essentials in C and CPA: Programming Essentials in C++ questions should also be sent via the contact form.