6.096 | January IAP 2011 | Undergraduate

Introduction to C++


Course Meeting Times

Lectures: 3 sessions / week for 4 weeks, 1 hour / session

Labs: 1 session / week for 4 weeks, 3 hours / session

Course Objectives

This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts.

By the end of this course, you should be able to:

  • Understand and use the basic programming constructs of C/C++
  • Manipulate various C/C++ datatypes, such as arrays, strings, and pointers
  • Isolate and fix common errors in C++ programs
  • Use memory appropriately, including proper allocation/deallocation procedures
  • Apply object-oriented approaches to software problems in C++
  • Write small-scale C++ programs using the above skills

Course Mechanics

You are responsible for all material presented in lectures. There will also generally be some extra notes in the problem sets building on the material that you should read before attempting the problem set. We strongly recommend that you attend labs, as you will almost certainly need help on the problem sets (C++ can be tricky!), but you are not required to stay for the entire lab.

There is no textbook for this course. You may find some of the following online materials helpful:

C++ Language Tutorial

Wikiversity: Introduction to C++

Learn about C++ Programming


There will be four problem sets (the last of which will be smaller) and a final project. You are encouraged to collaborate, but any code and write-ups you hand in must be your own.

This is a P/D/F course. Each problem set will be graded out of 100. We will award a pass based on whether problem set grades are generally on par with the class average and whether the final project demonstrates an understanding of the material. There will be no exams.

Coding Environment

Generally, software developers do their development work in some sort of “integrated development environment” (IDE), which will have many built-in tools for editing, compiling, running, and debugging programs. We recommend that you use the IDE known as Code::Blocks, which is freely available.

You will also need to download the GNU C++ compiler (GCC). For Windows machines, you should use the MinGW version of it; you can install the version of Code::Blocks that comes bundled with MinGW, or follow the instructions here. If you’re on a Mac, the easiest thing to do is install Xcode, which comes bundled with GCC. Xcode can be downloaded here (registration with Apple is required). If you’re using Linux, you probably don’t need our help on this one, and your operating system probably came with GCC anyway.

There are many IDEs available besides Code::Blocks, and you may use any of them if you so desire. Another freely available one is Eclipse, which is very powerful and works on all operating systems, though many have had technical problems in the past with installing/using it for C++. (We recommend that you download the edition of Eclipse for C/C++ developers, but if you already have a different version of Eclipse, you can install the C/C++ add-ons through Eclipse’s add-on manager.) On a Mac, you can simply use the Xcode IDE; on Windows you can use Microsoft Visual Studio on Windows (registration with Microsoft DreamSpark required). While all of these will serve the purpose well, we cannot guarantee that we will be able to help you with any problems that arise in the course of using them.

Course Info

As Taught In
January IAP 2011
Learning Resource Types
Lecture Notes
Programming Assignments with Examples