Week 1 - Introduction to C++ Programming

Learning Objectives

Upon finishing this learning module, you should be able to:

  • Describe how a C++ program goes from source code to working program
  • Identify the functions of basic components of a C++ program
  • Do basic console input/output
  • Use assignment and the basic math operators

Schedule

Day 1

Day 2

Day 3

Day 4

Course Intro

In Canvas, review the syllabus and fill out the background survey.

CS Background

If you have taken CS160 or CIS120, you should already know about topics like bits, bytes, and the fundamental systems of a computer (memory, CPU, etc...).

If you did not take one of those courses, or want a refresher, read Ch 1.1-1.4. Don't worry about memorizing every detail. Just skim for an overview of how software and computers work.

Set up Software

Install Software

Start by installing and setting up the software for this course.

Get Code Samples

Then, get your own copy of the course's code samples. There are two ways you can do so:

  1. You can download a zip file of the code samples.
  1. Or you can use git, the same version control software you will have just installed to use for recording work histories. You can clone a copy of the code samples with a command like this, which will create a new directory named cs161Code in the same directory where you run it.

    git clone https://github.com/ChemeketaCS/cs161Code.git
    

Using VS Code

This video explains how to use VSCode to work with project folders and the provided code samples.

All code you submit must build using standard C++. Using VSCode and our project templates will help make sure you write code that will be acceptable. It will also make it easier to test out provided code samples.

The setup we provide and suggest will also automate storing your work history as you work on assignments.

If you try to use another tool for programming it is going to be up to you to make sure you are generating code that works correctly when I run it. "It worked on my computer" is not sufficient. You also will be responsible for manually creating your work history.

C++ & Development Basics

Work through Ch1.6-1.9. This video has a quick overview of what the parts of a very basic program do:

Some of the videos in this course were made using a different IDE (QTCreator). It functions basically the same as VSCode. If you can't figure out how to do something you see in VSCode, please raise the issue in class discussion.

For any video, you can click in the lower right corner to watch on YouTube. You can then use the settings icon there (Gear symbol at bottom of video) to watch at higher quality. Doing so can make a big difference when trying to read code examples.

Errors and Warnings

When you have a mistake in your code, it can sometimes produce an error or a warning. A build error prevents the code from building. A warning is a piece of code that can be compiled, but may not actually do what you want. This video shows how to see errors and warnings:

Variables and Math

Read 2.4-2.6 and watch this video:

The Debugger

The debugger is a CRITICAL tool for learning programming. It is what lets you look at what your code is doing step by step. This video introduces it:

Do the MentalCode worksheet to practice using the debugger and test your understanding of how math works in C++ (See the Files link in Elearn/Canvas to access this and future worksheets). There is a key you can use to check your work on the front of the sheet. The back you should be checking with the debugger!

Math Weirdness

Once you are done with it, watch this video about some of the weird answers:

Program Input

Now you should loop back and read 2.1-2.3 if you haven't. This video reviews key bits about getting input:

Writing Programs the Right Way

Start the assignment as you finish 2.8-2.10 and 2.14 and 15. This video talks through building the time program from 2.10 to show how you should approach building programs... one step at a time:

About Assignments

Your weekly assignment is in Canvas. As part of the first assignment, you should make sure to read this document about the work history you must submit as part of every assignment.

Data Conversions and Other Operators

This material you are NOT responsible for using in the first assignment. So feel free to get the assignment started before you study this. But you will need to know this information in future weeks, so do make sure to go over it.

  • Read the last parts of chapter 2 (2.7, 2.11-13, and 2.16). These videos cover two of the topics, Casts and Constants:

  • Do the MentalCodeOpsCasts worksheet (see files area of Canvas). Try solving problems by hand then check with the key or the debugger.

    One of your takeaways should be that operators like ++ and += are pretty simple if you use them on a line by themselves. But, if you mix them into more complex expressions, they quickly get very tricky:

    z += y /= --x + 6;  //valid but insane c++
    

Extra Info

Compiling details

Looking for more information on what exactly happens when code is compiled? Read this compiling and linking tutorial.