Table of Contents

C++ References

Programming in C++ is not easy! There are many intricacies and details of the language that, simply put, take time and effort to understand. But fear not! We are here to help you succeed. Please see the following review material for specific notes on common sticky points. As always, ask questions on piazza and in office hours!

  • is a great general reference resource
    • Good place to look up information on data structures and classes in libraries you haven’t worked with much
    • Make sure you use the c++11 set of functions if that option is there (under member types)
    • The member functions section has any functions you have access to within that class. Clicking on a given function will lead you to information specific to using that function (parameters, returns, expectations etc.) as well as an example use.
  • is another reference site similar to the one above. This is a little less beginner-friendly and might be harder to navigate but has much of the same information
  • is a site that is a good general language overview with examples. It is more geared toward someone who is not familiar with C++ syntax but has the conceptual understanding and programming background from another language. This will not tell you how to use specific classes, data structures or functions, but rather provides a “translation” of how a given task is done in C++

CS 11 Review

I've included links below to some lectures taught by Dr. Milod Kazerounian for CS 11 in Summer 2020. They cover some of the more complex topics related to programming in C++. Each link is to a zipped directory you can download, which includes: a series of video recordings of each lecture, a PDF slide deck, and some associated code for the lecture. You may find these helpful for review.

Note: Some of the code used in the lectures may not be up-to-date with the CS 15 style guide. When it comes to questions of code style, always reference the Style Guide (linked below).

CS 15 Course Resources

There are a number of reference resources that provide supplemental or required reading for topics throughout the course.

Course Materials

Style Guide

The style guide contains style and documentation expectations for this course. Every piece of code you submit for an assignment will be graded on readability, structure, and organization, as well as functionality. Therefore it is very important you are familiar with the expectations in the style guide. We recommend that you return to the style guide throughout the semester to ensure your code complies with our style requirements.

Tips for Success

The tips for success document is a compiled list of things that will help you do well in this course.

Office Hours Guide

The guide to office hours is a an overview of our procedures for debugging and office hour policies. Reading this will allow you to make good use of our office hours and will outline the general expectations we have when helping students. By following these policies, we can help people better and faster, and these will make everyone's life easier

FAQ page

The FAQ page will give an overview of some questions we see come up during the semester. It is a good place to check if you have a question someone might have asked before!

System Setup: Terminal, SSH, and VS Code

All work for this course can be done on the lab computers in the Joyce Cummings Center. However, you will likely find it easier to work on your own computer, from home or anywhere else. To do this, you'll need to remotely access the CS department's servers using SSH via a terminal. You'll also need an editor that allows you to remotely edit files. If you don't have an editor already, we recommend using VS Code.

See our System Setup Guide for help getting set up with a terminal, SSH, and VS Code.