Specific information about this course and its requirements can be found below. For more general information about taking Saylor Academy courses, including information about Community and Academic Codes of Conduct, please read the Student Handbook.
Learn the C++ computer programming language, with a focus on syntax for primitive types, control structures, vectors, strings, structs, classes, functions, file I/O, exceptions, and other programming constructs.
In this course, we will learn the mechanics of editing and compiling programs in C++. We will begin with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Then, we will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. We will then review function and class templates and the classes that perform output and input of characters to/from files. This course will also cover namespaces, exception handling, and preprocessor directives. In the last part of the course, we will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees.
This course includes the following units:
Upon successful completion of this course, you will be able to:
Throughout this course, you will also see learning outcomes in each unit. You can use those learning outcomes to help organize your studies and gauge your progress.
The primary learning materials for this course are articles, lectures, and videos.
All course materials are free to access and can be found in each unit of the course. Pay close attention to the notes that accompany these course materials, as they will tell you what to focus on in each resource, and will help you to understand how the learning materials fit into the course as a whole. You can also see a list of all the learning materials in this course by clicking on Resources in the navigation bar.
Only the final exam is considered when awarding you a grade for this course. In order to pass this course, you will need to earn a 70% or higher on the final exam. Your score on the exam will be calculated as soon as you complete it. If you do not pass the exam on your first try, you may take it again as many times as you want, with a 7-day waiting period between each attempt. Once you have successfully passed the final exam you will be awarded a free Course Completion Certificate.
This course is eligible for college credit via Saylor Academy's Direct Credit Program. If you want to earn college credit, you must take and pass the Direct Credit final exam. That exam will be password protected and requires a proctor. If you pass the Direct Credit exam, you will receive a Proctor Verified Course Certificate and be eligible to earn an official transcript. For more information about applying for college credit, review the guide to college credit opportunities. Be sure to check the section on proctoring for details like fees and technical requirements.
There is a 14-day waiting period between attempts of the Direct Credit final exam. There is no waiting period between attempts for the not-for-credit exam and the Direct Credit exam. You may only attempt each Direct Credit final exam a maximum of 3 times. Be sure to study in between each attempt!
CS107: C++ Programming is a self-paced course, which means that you can decide when you will start and when you will complete the course. There is no instructor or an assigned schedule to follow. We estimate that the "average" student will take 40 hours to complete this course. We recommend that you work through the course at a pace that is comfortable for you and allows you to make regular progress. It's a good idea to also schedule your study time in advance and try as best as you can to stick to that schedule.
Learning new material can be challenging, so we've compiled a few study strategies to help you succeed:
In order to take this course, you should:
This course is delivered entirely online. You will be required to have access to a computer or web-capable mobile device and have consistent access to the internet to either view or download the necessary course resources and to attempt any auto-graded course assessments and the final exam.
For additional guidance, check out Saylor Academy's FAQ.
This course is entirely free to enroll in and to access. Everything linked in the course, including textbooks, videos, webpages, and activities, is available for no charge. This course also contains a free final exam and course completion certificate.
This course also has an optional final exam that can give you an opportunity to earn college credit. This exam requires the use of a proctoring service for identity verification purposes. The cost for proctoring for this optional exam is $25 per session.