Important Info:
Extra Resources:
- C++ Reference Website
- C++ Notes (GitHub Repo – not for the very beginner or faint of heart)
- Awesome C++ List – Curated list of Links about all things C++ (community curated)
- AVL Trees
- Open Data Structures Section 26.2 The AVL Tree
- AVL Tree Visualization
- AVL Trees: Understanding Rotations (has some nice animations)
Language Transition Guides:
- C++ for Python Programmers – I happened to come across this and thought it might be a helpful reference.
- Python to C++ Guide from Stanford CS106B
- Java to C++ Guide also from Stanford CS106B
Lecture Notes:
Slide Decks:
- Lecture 01 – Introduction
- Lecture 02 – Hello World
- Lecture 03 – More Control Structures and I/O
- Lecture 04 – Project Workflow
- Lecture 05 – Strings and Vectors
- Lecture 06 – Functions I
- Lecture 07 – Function II
- Lecture 08 – Arrays (and c-strings)
- Lecture 09 – Pointers and Dynamic Memory Allocation
- Lecture 10 – Intro to OOP and Classes in C++
- Lecture 11 – OOP Part 2
- Lecture 12 – Member Initialization and Operator Overloading
- Lecture 13 – Templates I
- Lecture 14 – Templates II & Filesystem
- Lecture 15 – Inheritance I
- Lecture 16 – Inheritance II
- Lecture 17 – Polymorphism
- Lecture 18 – Polymorphism in Action
- Lecture 19 – More on Smart Pointers and some Vector ops.
- Lecture 20 – Standard Library Deeper Dive Part 1
- Lecture 21 – STL Iterators
FonteNotes:
- Getting Started with C++
- Horton Chapter 2 Notes
- Horton Chapter 3 Notes
- File I/O Notes
- Horton Chapter 4 Notes
- Horton Chapter 8 Notes – Part I
- Horton Chapter 9 Notes – Templates
Videos:
- Command Line Project Workflow – Cloning from GitHub, CMake Build, Committing, and Pushing Changes
- GitHub Desktop Project Workflow – Watch the one above to understand the CMake Build process in a bit more detail, but this video does all the same tasks as the video above but with GitHub Desktop
Homework Assignments:
Note: No late homework submissions will be accepted. In place of late submissions, I’ll drop your lowest homework grade at the end of the semester.
- HW 01
- Due Sept 15 at 11:59 pm uploaded to Gradescope
- HW 02
- Due Oct 30 at 11:59 pm uploaded to Gradescope
- HW 03
- HW 04
- HW 05
- HW 06
Programming Assignments:
- PA 01 – Text Time
- GitHub Classroom Repo Link
- EC Due Date: Sept 27 @ 11:59pm Pushed to GitHub Classroom Repo
- Regular Due Date: Sept 29 @ 11:59pm Pushed to GitHub Classroom Repo
- PA02 – Image Library
- EC Due Date: Oct 14 @ 11:59pm
- Regular Due Date: Oct 16 @ 11:59pm
- GitHub Classroom Repo Link
- PA03 – Photomosaics
- EC Due Date: Nov 1 @ 11:59
- Regular Due Date: Nov 3 @ 11:59
- GitHub Classroom Repo Link
- PA04 – Predator or Prey?
- ED Due Date: Nov 15 @ 11:59pm
- Regular Due Date: Nov 17 @ 11:59pm
- GitHub Classroom Repo Link