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 |