| Coding standards | |
| Introduction to Linux | |
| Grading notes |
| 1. | [M. August 20] |
| Lecture 1A Introduction | |
| Lecture 1B The swamp | |
| 2. | [W. August 22] |
| Assignment 0 assigned | |
| Lecture 2A Introduction to Linux | |
| Linux reference | |
| Lecture 2B Elementary C++ issues | |
| Lecture 2C Numeric types and expressions | |
| 3. | [Th. August 23] |
| Lecture 3A Variables | |
| Lecture 3B Abbreviations for assignments | |
| Lecture 3C Hand simulation | |
| Lecture 3D Choosing variable names | |
| Lecture 3E Constants | |
| Lecture 3F Some uses of variables | |
| 4. | [F. August 24] |
| Lecture 4A Function libraries | |
| Lecture 4B Functions in general | |
| Lecture 4C Defining functions | |
| 5. | [M. August 27] |
| Lecture 5A Mental model of functions | |
| Lecture 5B Standards for function definitions | |
| 6. | [W. August 29] |
| Lecture 6A Avoiding the swamp: function contracts | |
| Lecture 6B Other comments | |
| Lecture 6C Statements and function calls | |
| Lecture 6D Programs and main | |
| Lecture 6E Compound statements and scope | |
| 7. | [Th. August 30] |
| Lecture 7A Input and output | |
| Lecture 7B Writing | |
| Lecture 7C Reading | |
| Lecture 7D Input, output and functions | |
| 8. | [F. August 31] |
| Assignment 0 due | |
| Assignment 1 assigned | |
| Lecture 8A Boolean expressions | |
| Lecture 8B Mental model of boolean expressions | |
| Lecture 8C Making decisions | |
| Lecture 8D Standards for boolean expressions | |
| Lecture 8E Standards for if-statements | |
| [M. September 3] | |
| Holiday | |
| 9. | [W. September 5] |
| Lecture 9A While-loops | |
| Lecture 9B Nested loops and nested loop emulation | |
| Lecture 9C Planning loops | |
| Lecture 9D Standards for loops | |
| 10. | [Th. September 6] |
| Lecture 10A For-loops | |
| Lecture 10B Breaking out of a loop | |
| Lecture 10C Elementary arrays | |
| [F. September 7] | |
|
Exam 1 Lectures 3A, 3E, 4A, 4C, 6C, 6E, 7B, 7C, 8A, 8C. |
|
| 11. | [M. September 10] |
| Assignment 1 due | |
| Assignment 2 assigned | |
| Lecture 11 Loop algorithms 1: Scan algorithms | |
| [W. September 12–T. September 18] | |
| ECU closed due to Hurricane Florence | |
| 12. | [W. September 19] |
| Lecture 12A Loop algorithms 2: Search algorithms | |
| Read the following: | |
| Lecture 12B Avoiding the swamp: Successive refinement | |
| Lecture 13A Avoiding the swamp: Planning | |
| Lecture 13B Avoiding the swamp: Diagnosing and fixing errors | |
| Lecture 13C Avoiding the swamp: Tracing | |
| Lecture 14A Avoiding the swamp: Using a debugger | |
| 13. | [Th. September 20] |
| Lecture 14B Recursion | |
| 14. | [F. September 21] |
| Lecture 15 Understanding recursion | |
| 15. | [M. September 24] |
| Assignment 2 due | |
| Assignment 3 assigned | |
| Lecture 16A Recursive search algorithms | |
| Lecture 16B Tail recursion | |
| 16. | [W. September 26] |
| Lecture 17A Duplicated recursive calls | |
| Lecture 17B Discovering algorithms | |
| 17. | [Th. September 27] |
| Lecture 18A The memory and pointers | |
| Lecture 18B Hand simulation with pointers | |
| Lecture 18C Areas of memory | |
| [F. September 28] | |
|
Exam 2 Lectures 09A, 10A, 11, 12A, 14B. |
|
| 18. | [M. October 1] |
| Lecture 19A Using the heap | |
| Lecture 19B Dangling pointers and memory faults | |
| 19. | [W. October 3] |
| Lecture 20A Type definitions and const pointers | |
| Lecture 20B Parameter passing modes | |
| 20. | [Th. October 4] |
| Lecture 21A Mental model of arrays | |
| Lecture 21B Creating and destroying arrays | |
| 21. | [F. October 5] |
| Lecture 22A Arrays and functions | |
| Lecture 22B Reallocating an array | |
| [M. October 8–T. October 9] | |
| Fall break | |
| 22. | [W. October 10] |
| Assignment 3 due | |
| Assignment 4 assigned | |
| Lecture 23B Pointer arithmetic | |
| Lecture 24A Modules | |
| Read the following: | |
| Lecture 23A Finding the largest value in an array | |
| Lecture 24B Standards for modules | |
| 23. | [Th. October 11] |
| Lecture 25A Structures | |
| Lecture 25B Constructors | |
| [F. October 12] | |
|
Exam 3 Lectures 14B, 15, 18A, 18B, 18C, 19A, 20A, 21A, 21B, 22A. |
|
| 24. | [M. October 15] |
| Lecture 26A Naming and documentating structures | |
| Lecture 26B More on structures | |
| Lecture 26C Passing structures to functions | |
| Lecture 26D Arrays of structures | |
| 25. | [W. October 17] |
| Lecture 27A Lists | |
| Lecture 27B Linked lists | |
| 26. | [Th. October 18] |
| Lecture 28A Implementation of linked lists | |
| Lecture 28B Equations on conceptual lists | |
| 27. | [F. October 19] |
| Lecture 29 Equations and algorithms on lists | |
| [Sat. October 20] | |
| Assignment 4 due | |
| Assignment 5 assigned | |
| 28. | [M. October 22] |
| Lecture 30 Memory sharing | |
| 29. | [W. October 24] |
| Lecture 31 Looping over linked lists | |
| 30. | [Th. October 25] |
| Lecture 32 Destructive functions on linked lists | |
| 31. | [F. October 26] |
| Lecture 33A FIFO queues | |
| Lecture 33B Linked implementation of FIFO queues | |
| Lecture 33C Array implementation of FIFO queues | |
| 32. | [M. October 29] |
| Lecture 34 Characters | |
| [Tu. October 30] | |
| Assignment 5 due | |
| Assignment 6 assigned | |
| 33. | [W. October 31] |
| Lecture 35 Null-terminated strings | |
| 34. | [Th. November 1] |
| Lecture 36 Algorithms on null-terminated strings | |
| [F. November 2] | |
|
Exam 4 Lectures 25A, 25B, 26B, 26C, 27A, 27B, 28A, 29, 31, 32. |
|
| 35. | [M. November 5] |
| Assignment 6 due | |
| Assignment 7 assigned | |
| Lecture 37A Reading and writing strings and characters | |
| Lecture 37B Writing files | |
| Lecture 37C Reading files | |
| 36. | [W. November 7] |
| Lecture 38A Trees | |
| Lecture 38B Trees in C++ | |
| Lecture 38C Nondestructive functions on trees | |
| 37. | [Th. November 8] |
| Lecture 39A Destructive functions on trees | |
| Lecture 39B Traversing trees | |
| Lecture 39C Elementary analysis of algorithms | |
| 38. | [F. November 9] |
| Lecture 40A Analysis examples | |
| Lecture 40B Linear and Binary Search | |
| Lecture 40C Profilers | |
| 39. | [M. November 12] |
| Lecture 41A Binary search trees | |
| Lecture 41B Inserting and removing the smallest for binary search trees | |
| 40. | [W. November 14] |
| Lecture 42A Deletion from a binary search tree | |
| Lecture 42B Height-balanced binary search trees | |
| 41. | [Th. November 15] |
| Assignment 7 due | |
| Assignment 8 assigned | |
| Lecture 43 Keeping a binary search tree height-balanced | |
| [F. November 16] | |
|
Exam 5 Lectures 33A, 34, 35, 36, 38A, 38B, 38C, 39A, 39B, 39C. |
|
| 42. | [M. November 19] |
| Lecture 44A Tables | |
| Lecture 44B Hash tables | |
| [W. November 21–F. November 23] | |
| Thanksgiving break | |
| 43. | [M. November 26] |
| Lecture 45 Heaps | |
| 44. | [W. November 28] |
| Lecture 46A Sorting | |
| Lecture 47 Heap sort | |
| [Th. November 29] | |
| Review. | |
| [F. November 30] | |
|
Exam 6 Lectures 41A, 41B, 42A, 42B, 43, 44B, 45, |
|
| [Sat. December 1] | |
| Assignment 8 due | |
| [M. December 3] | |
| Review. | |
| [F. December 7] | |
| Final exam, 2:00–4:30 | |