8/27 | Course overview and computer languages
Read Sections 1.1-1.5: Computer tour, Computers and programs, Why programming, Problem solving, Programming (general) |
8/29 | Introduction to C++
Read Sections 1.6-1.9: Language history, Programming basics, Comments and whitespace, Errors and warnings |
Lab | Project 0: CLion and GitHub |
9/3 | Types, variables, and control structures
Read Chapter 2: Using math functions, Random numbers, Debugging, Auto, Style guidelines Read Chapter 3: String access operations, More string operations, Short circuit evaluation Read Chapter 4: Developing programs incrementally |
9/5 | Arrays and vectors
Read Chapter 5 Vectors, Iterating through vectors, Vector resize, Vector push_back, Arrays vs. vectors, Two-dimensional arrays Quiz 1 |
Lab | Project 1
Project 0 due |
9/10 | User-defined functions
Read Chapter 6 Basics, Reasons for defining functions, Unit testing, How functions work, Pass by reference, Functions with string/vector parameters, Scope, Parameter error checking |
9/12 | Recursive functions
Read Chapter 7 Introduction, Binary search, Adding output statements for debugging, Creating a recursive function, Stack overflow |
Lab | Project 2
Project 1 due |
9/17 | Pointers
Read Sections 9.1-9.3 Why pointers, Pointer basics, Miscellaneous pointer issues Quiz 2 |
9/19 | Heap Memory
Read Sections 9.4-9.6 Operators: new and delete, Memory regions: Heap/Stack, Memory leaks |
Lab | Review for Midterm 1
Project 2 due |
9/24 | MIDTERM 1 |
9/26 | C-strings
Read Sections 5.13-5.15, 16.15 C strings, String library functions, Char library functions, Command line arguments |
Lab | Project 3 |
10/1 | C-structs
Read Sections 16.11-16.14 Grouping data: struct, Structs and functions, Structs and vectors, Seat reservation example |
10/3 | C++ Classes
Read Sections 8.1-8.7 Objects; Using a class; Defining a class; Inline member functions; Mutators, accessors, and private helpers; Initialization and constructors; Classes and vectors/classes |
Lab | Project 4
Project 3 due |
10/8 | C++ Classes
Read Sections 8.8-8.14 Separate files for classes; Choosing classes to create; Unit testing; Constructor overloading; Constructor initializer lists; The 'this' implicit parameter; Operator overloading Quiz 3 Project 4 due Friday night |
10/10 | Fall Break |
Lab | Fall Break |
10/15 | Classes with dynamic memory allocation
Read Sections 9.7-9.10 Destructors, Copy constructors, Copy assignment operator Rule of three |
10/17 | In-class exercise: AdjList class
Read Section 9.11 A first linked list |
Lab | Project 5 |
10/22 | Linked Lists: Node class and LinkList class
Watch Videos 1-4 of Data Structures: Linked Lists in C++ Intro, Implementation Part 1, Implementation Part 2, Traversing |
10/24 | Linked Lists: fundamental operations
Watch Videos 5-9 of Data Structures: Linked Lists in C++ Insertion (conceptual), Insertion (implementation), Deletion, Recursion, Recursive printing Quiz 4 |
Lab | Project 6
Project 5 due |
10/29 | Streams and file I/O
Read Sections 10.1-10.5 The ostream and cout streams, The istream and cin streams, Output formatting, File input and output, Stream errors |
10/31 | Exception handling
Read Sections 11.1-11.3 Exception basics, Exceptions with functions, Multiple handlers |
Lab | Review for Midterm 2
Project 6 due |
11/5 | MIDTERM 2 |
11/7 | Inheritance
Read Sections 12.1-12.5 Derived classes, Is-a versus has-a, Access by members of derived class, Overriding member functions, Polymorphism and virtual member functions |
Lab | Project 7 |
11/12 | Templates
Read Sections 13.1-13.3 Function templates, Class templates, C++ example |
11/14 | STL Containers
Read Sections 14.1-14.6 Range-based for loop, List, Set, Queue, find() function, sort() function |
Lab | Project 8
Project 7 due |
11/19 | Complexity analysis
Read Sections 15.1-15.4 Searching and algorithms, binary search, O notation, Algorithm analysis |
11/21 | Searching and sorting algorithms
Read Sections 15.5-15.9 Selection sort, Insertion sort, Quicksort, Merge sort Quiz 5 |
Lab | Project 9
Project 8 due |
11/26 | Parallel searching and sorting |
11/28 | Thanksgiving Break |
Lab | Thanksgiving Break |
12/3 | C++ vs Java: Arrays, Functions, and Classes |
12/5 | Java Linked List |
Lab | Review for Final
Project 9 due |
12/14 | FINAL EXAM (9am) |