Course Syllabus for "CS107: C++ Programming ".

In the first unit, we will learn the mechanics of editing and compiling a simple program written in C++.  We will begin with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class.  Next, 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 the topics of 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 contains a number of sample programs and review exercises.  Through these exercises, students should better learn how to write functions, use the string class, and write elementary data structures such as linked lists and binary trees.

Learning Outcomes

Upon successful completion of this course, students will be able to:

Course Requirements

In order to take this course you must:

√    Have access to a computer. Have continuous broadband Internet access.

√    Have the ability/permission to install plug-ins or software (e.g., Adobe Reader, Flash, compilers).

√    Have the ability to download and save files and documents to a computer.

√    Have the ability to open Microsoft files and documents (.doc, .ppt, .xls, etc.).

√    Be competent in the English language.

√    Have read the Saylor Student Handbook.

√    Have completed CS101: Introduction to Computer Science I and CS102: Introduction to Computer Science II.

Course Information

Welcome to CS107.  General information on the course and its requirements can be found below.

Course Designer: Dr. Yongge Wang

Primary Resources: This course is composed of a range of different free, online materials.  However, the course makes primary use of the following resources:

Requirements for Completion: In order to complete this course, you will need to work through each unit and all of its assigned materials, including the quizzes and the final exam.

Note that you will only receive an official grade on your final exam.  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 tabulated as soon as you complete it.  If you do not pass the exam, you may take it again.

Time Commitment: This course should take you a total of 114.5 hours to complete.  Each unit includes a "time advisory" that lists the amount of time you are expected to spend on each subunit.  These should help you plan your time accordingly.  It may be useful to take a look at these time advisories and determine how much time you have over the next few weeks to complete each unit and then set goals for yourself.  For example, Unit 1 should take you 15.5 hours.  Perhaps you can sit down with your calendar and decide to complete subunits 1.1 and 1.2 (a total of 3 hours) on Monday night, subunit 1.3 (a total of 6.5 hours) on Tuesday and Wednesday nights, and so forth.

Tips/Suggestions: As noted in the "Course Requirements," CS101 and CS102 are prerequisites for this course.  If you are struggling with object-oriented programing concepts as you progress through this course, consider taking a break to revisit CS101 and CS102, focusing especially on Units 2, 3, and 4 of CS102.

As you read and work through the course exercises, take careful notes on a separate notepad.  These notes will help you study for the final exam.

Course Overview