Resources
Tools and references for the semester
Everything you strictly need for this course is on this site, starting with the code we write together in class. After that comes the short list of outside tools that are actually worth your time, with a note on when each one helps.
Code from class: the in-class repository
github.com/ericaraujophd/26FA-CS112-inclass
Every program we build together in lecture ends up here, one folder per topic: w03-classes holds the Pair class, parameter-passing holds the by-value and by-reference examples, and a new folder appears as each topic does. Each one comes with the makefile and the tests we ran, so it compiles as it stands.
Clone it once, then pull before each lecture:
git clone https://github.com/ericaraujophd/26FA-CS112-inclass.git
cd 26FA-CS112-inclass
git pull # run this again before each classThis is the one repository in the course you never hand anything in to. Read it, run it, break it, and when a slide went past too quickly, the version that actually compiled is in here.
The course policy is unchanged and applies here too: no AI use whatsoever, including chat panels and “explain this code” buttons embedded in otherwise useful tools. Use the visualizer, the tutorial, and the reference. Do not use the AI attached to them. See Academic Honesty.
If a tool’s non-AI parts stop being usable without the AI, tell me and I will find a replacement.
See your code run: Python Tutor
Despite the name, it visualizes C++. You paste in a short program and step through it one line at a time, watching variables appear, values change, and pointers drawn as actual arrows into actual memory cells.
This is the single most useful tool on this page for the first half of the semester. If a pointer, an array, or a linked list is not making sense, put fifteen lines of it in here and step through. It is the same picture we build in class, except you can run it at midnight.
Best used on small programs. Twenty lines with one confusing idea, not your whole assignment.
Learn it properly: LearnCpp
A free, complete, genuinely well-written C++ tutorial. When a lecture moved too fast, this is where to go for a slower, longer treatment with more examples. The chapters below line up with what we have covered so far:
| If you want more on | Read |
|---|---|
| Uninitialized variables and undefined behavior | 1.6 |
cout, cin, endl |
1.5 |
Data types and sizeof |
4.1, 4.3 |
| Decimal, binary, hex, octal | 5.3 |
const |
5.1 |
| Pointers, from the beginning | 12.7 |
Arrays, and why a[i] is *(a + i) |
17.7, 17.9 |
The compiler, linker, and what make did |
0.5 |
| Debugging strategy | 3.3 |
Each chapter ends with a quiz. Doing those quizzes is exactly the kind of practice that makes a check-in go well.
Look it up: cppreference
The authoritative C++ reference. It is precise, complete, and written for people who already know C++, so it can feel cold at first. That is fine. Use it to answer narrow questions, not to learn from.
Good question for cppreference: what exactly does std::vector::resize do when the new size is smaller?
Bad question for cppreference: what is a vector? Use LearnCpp for that.
Learning to read a language reference is itself a skill this course expects you to pick up. Start now, in small doses.
Bridge from Python: C++ for Python Programmers
Runestone: C++ for Python Programmers
The reading already listed against the first weeks on the Schedule. If you are fluent in Python and keep tripping over C++ syntax, this is written for that situation.
These tools help you understand something you are stuck on. They do not substitute for writing code yourself, which is the only thing that makes a check-in go well. When in doubt, close the tab and try to write it from a blank file, then come back.
Found something genuinely useful that is not here? Send it to me and I will add it.