Author: Douglas Wilhelm Harder and Prof. Hiren Patel
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Hello world! | Slides | Notes | ||
| 2 | Anatomy of a program | Slides | Notes | ||
| 3 | Literal data | Slides | Notes | ||
| 4 | Identifiers | Slides | Notes | ||
| 5 | Arithmetic operators | Slides | Notes | ||
| 6 | Console output | Slides | Notes | ||
| 7 | Functions | Slides | Notes | ||
| 8 | Compile-time errors | Slides | Notes | ||
| 9 | Comparison operators | Slides | Notes | ||
| 10 | Conditional statements | Slides | Notes | ||
| 11 | Logical operators | Slides | Notes | ||
| 12 | Local variables | Slides | Notes | ||
| 13 | The call stack | Slides | Notes | ||
| 14 | Console input | Slides | Notes | ||
| 15 | Repetitious operators | Slides | Notes | ||
| 16 | While loops | Slides | Notes | ||
| 17 | Do-while loops | Slides | Notes | ||
| 18 | For loops | Slides | Notes | ||
| 19 | The break statement | Slides | Notes | ||
| 20 | Structured programming theorem | Slides | Notes | ||
| 21 | Comments | Slides | Notes | ||
| 22 | Code-development strategies | Slides | Notes | ||
| 23 | Binary and hexadecimal | Slides | Notes | ||
| 24 | Integer data types | Slides | Notes | ||
| 25 | Floating-point data types | Slides | Notes | ||
| 26 | Bit-wise and -shift operators | Slides | Notes | ||
| 27 | The const keyword | Slides | Notes | ||
| 28 | Main memory | Slides | Notes | ||
| 29 | Arrays | Slides | Notes | ||
| 30 | Character arrays (strings) | Slides | Notes | ||
| 31 | Default values of parameters | Slides | Notes | ||
| 32 | References and aliases | Slides | Notes |
Up to this point, you have seen the following keywords, and you should be familiar with their use:
return
if else while for do break
bool true false
void
char short int long
signed unsigned
float double
const
class
throw
goto
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Addresses and pointers | Slides | Notes | ||
| 2 | Dynamic memory allocation | Slides | Notes | ||
| 3 | Pointers as arguments and return values | Slides | Notes | ||
| 4 | Problems with pointers | Slides | Notes | ||
| 1. Wild pointers | Slides | Notes | |||
| 2. Dangling pointers | Slides | Notes | |||
| 3. Memory leaks | Slides | Notes | |||
| 5 | Dynamic allocation of arrays | Slides | Notes | ||
| 6 | Protecting pointers | Slides | Notes | ||
| 7 | Pointer arithmetic | Slides | Notes |
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Algorithms and templates | Slides | Notes | ||
| 2 | Recursive functions | Slides | Notes | ||
| 3 | Linear search | Slides | Notes | ||
| 4 | Binary search | Slides | Notes | ||
| 5 | Recursive binary search (optional topic) | Slides | Notes | ||
| 6 | Selection sort | Slides | Notes | ||
| 7 | Insertion sort | Slides | Notes | ||
| 8 | Counting sort (optional topic) | Slides | Notes | ||
| 9 | Templates | Slides | Notes |
The following are introductions to classes using specific examples:
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Introduction to classes (optional topic) | Slides | Notes | ||
| 2 | Member functions (optional topic) | Slides | Notes | ||
| 3 | Operator overloading (optional topic) | Slides | Notes | ||
| 4 | The string class (optional topic) | Slides | Notes | ||
| 5 | Constructors (optional topic) | Slides | Notes | ||
| 6 | Throwing exceptions (optional topic) | Slides | Notes | ||
| 7 | Encapsulation (optional topic) | Slides | Notes | ||
| 8 | Class variables (optional topic) | Slides | Notes | ||
| 9 | Destructors (optional topic) | Slides | Notes | ||
| 10 | Dynamic allocation of classes (optional topic) | Slides | Notes | ||
| 11 | this (optional topic) | Slides | Notes | ||
| 12 | An array class (optional topic) | Slides | Notes | ||
| 13 | An array class: constructor and destructor (optional topic) | Slides | Notes | ||
| 14 | An array class: copy and assignment (optional topic) | Slides | Notes | ||
| 15 | Searching and sorting arrays (optional topic) | Slides | Notes | ||
| 16 | Some standard templated classes (optional topic) | Slides | Notes | ||
| 17 | The string class (?) (optional topic) | Slides | Notes |
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Issues with arrays | Slides | Notes | ||
| 2 | Introducing classes and linked lists | Slides | Notes | ||
| 3 | Introducing nodes | Slides | Notes | ||
| 4 | Linked lists | Slides | Notes | ||
| 5 | A list_size member variable | Slides | Notes | ||
| 6 | Pushing at the back (optional topic) | Slides | Notes | ||
| 7 | A templated linked list (optional) | Slides | Notes | ||
| 8 | A copy constructor and assignment operator (optional) | Slides | Notes | ||
| 9 | An iterator (optional) | Slides | Notes | ||
| 10 | A doubly-linked list (optional) | Slides | Notes |
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Inheritance (optional topic) | Slides | Notes | ||
| 2 | Throwing exceptions (optional topic) | Slides | Notes | ||
| 3 | Polymorphism (optional topic) | Slides | Notes |
| Topic | Slides | Notes | Assembly | ||
|---|---|---|---|---|---|
| 1 | Namespaces (optional topic) | Slides | Notes | ||
| 2 | Pseudo-random numbers (optional topic) | Slides | Notes | ||
| 3 | Static variables (optional topic) | Slides | Notes |