| Coding standards | |
| Introduction to Linux | |
| Grading notes |
| 1. | [M. January 8] |
| Lecture 1 Introduction | |
| 2. | [W. January 10] |
| Lecture 2A The swamp | |
| Lecture 2B Introduction to Linux | |
| Assignment 0 assigned | |
| 3. | [Th. January 11] |
| Lecture 3A Elementary C++ issues | |
| Lecture 3B Numeric types and expressions | |
| Lecture 3C Function libraries | |
| Lecture 3D Functions in general | |
| 4. | [F. January 12] |
| Lecture 4A Variables | |
| Lecture 4B Abbreviations for assignments | |
| Lecture 4C Hand simulation | |
| Lecture 4D Some uses of variables | |
| Lecture 4E Choosing variable names | |
| Lecture 4F Constants | |
| [M. January 15] | |
| Holiday | |
| 5. | [W. January 17] |
| Lecture 5A Defining functions | |
| Lecture 5B Mental model of functions | |
| Lecture 5C Standards for function definitions | |
| 6. | [Th. January 18] |
| Lecture 6A Input and output | |
| Lecture 6B Writing | |
| Lecture 6C Reading | |
| Lecture 6D Input, output and functions | |
| 7. | [F. January 19] |
| Lecture 7A Statements and function calls | |
| Lecture 7B Programs and main | |
| Lecture 7C Avoiding the swamp: function contracts | |
| Lecture 7D Other comments | |
| Assignment 0 due | |
| Assignment 1 assigned | |
| 8. | [M. January 22] |
| Lecture 8A Boolean expressions | |
| Lecture 8B Mental model of boolean expressions | |
| 9. | [W. January 24] |
| Lecture 09A Compound statements and scope | |
| Lecture 09B Making decisions | |
| Lecture 09C Standards for if-statements | |
| 10. | [Th. January 25] |
| Lecture 10A While-loops | |
| Lecture 10B Nested loops and nested loop emulation | |
| Lecture 10C Planning loops | |
| [F. January 26] | |
|
Quiz 1 Lectures 3A, 3B, 4A, 4B, 4F, 5A, 5B, 6B, 7A, 8A, 8B, 9B. |
|
| 11. | [M. January 29] |
| Lecture 11A For-loops | |
| Lecture 11B Breaking out of a loop | |
| Lecture 11C Standards for loops | |
| Lecture 11D Elementary arrays | |
| Assignment 1 due | |
| Assignment 2 assigned | |
| 12. | [W. January 31] |
| Lecture 12 Loop algorithms 1: Scan algorithms | |
| 13. | [Th. February 1] |
| Lecture 13 Loop algorithms 2: Search algorithms | |
| 14. | [F. February 2] |
| Lecture 14A Avoiding the swamp: Diagnosing and fixing errors | |
| Lecture 14B Avoiding the swamp: Successive refinement | |
| Lecture 14C Avoiding the swamp: Tracing | |
| Lecture 14D Avoiding the swamp: Using a debugger | |
| 15. | [M. February 5] |
| Lecture 15 Recursion | |
| 16. | [W. February 7] |
| Lecture 16 Understanding recursion | |
| Assignment 2 due | |
| Assignment 3 assigned | |
| 17. | [Th. February 8] |
| Lecture 17 More on recursion | |
| [F. February 9] | |
|
Quiz 2 Lectures 10A, 11A, 11D, 12, 13, 15, |
|
| 18. | [M. February 12] |
| Lecture 18 Discovering algorithms | |
| 19. | [W. February 14] |
| Lecture 19A The memory and pointers | |
| Lecture 19B Hand simulation with pointers | |
| Lecture 19C Type definitions and const pointers | |
| 20. | [Th. February 15] |
| Lecture 20A Areas of memory | |
| Lecture 20B Using the heap | |
| Lecture 20C Dangling pointers and memory faults | |
| 21. | [F. February 16] |
| Lecture 21A Parameter passing modes | |
| Lecture 21B Mental model of arrays | |
| 22. | [M. February 19] |
| Lecture 22A Arrays and functions | |
| Lecture 22B Creating and destroying arrays | |
| Lecture 22C Reallocating an array | |
| [W. February 21] | |
| Assignment 4 | |
| Assignment 3 due | |
| 23. | [Th. February 22] |
| Lecture 23A Modules | |
| Lecture 23B Standards for modules | |
| [F. February 23] | |
|
Quiz 3 Lectures 16, 17, 20A, 20B, 21A, 21B, |
|
| 24. | [M. February 26] |
| Lecture 24A Structures | |
| Lecture 24B Naming and documentation of structures | |
| Lecture 24C Arrays of structures | |
| 25. | [W. February 28] |
| Lecture 25A More on structures | |
| Lecture 25B Passing structures to functions | |
| Lecture 25C Constructors | |
| 26. | [Th. March 1] |
| Lecture 26A Lists | |
| Lecture 26B Linked lists | |
| [F. March 2] | |
| Assignment 5 | |
| Assignment 4 due | |
| [M. March 5–F. March 9] | |
| Spring break | |
| 27. | [M. March 12] |
| Lecture 27 Equations and algorithms on lists | |
| 28. | [W. March 14] |
| Lecture 28 Looping over linked lists | |
| [Th. March 15] | |
| Assignment 6 | |
| [F. March 16] | |
|
Quiz 4 Lectures 22A, 22B, 24A, 25A, 25B, 25C, 26A, 26B, 27. |
|
| [Sat. March 17] | |
| Assignment 5 due | |
| 29. | [M. March 19] |
| Lecture 29 Destructive functions on linked lists | |
| 30. | [W. March 21] |
| Lecture 30A Characters | |
| Lecture 30B Null-terminated strings | |
| 31. | [Th. March 22] |
| Lecture 31 Algorithms on null-terminated strings | |
| 32. | [F. March 23] |
| Lecture 32A Reading and writing strings and characters | |
| Lecture 32B Writing files | |
| Lecture 32C Reading files | |
| 33. | [M. March 26] |
| Lecture 33A Trees | |
| Lecture 33B Trees in C++ | |
| Lecture 33C Traversing trees | |
| 34. | [W. March 28] |
| Lecture 34A Elementary analysis of algorithms | |
| Lecture 34B Analysis examples | |
| Lecture 34C Profilers | |
| [Th. March 29] | |
| Assignment 7 | |
| Assignment 6 due | |
| [F. March 30] | |
| Holiday | |
| 35. | [M. April 2] |
| Lecture 35A Linear and Binary Search | |
| Lecture 35B Binary search trees | |
| 36. | [W. April 4] |
| Lecture 36 Insertion and removal for binary search trees | |
| 37. | [Th. April 5] |
| Lecture 37+38 Height-balanced binary search trees | |
| [F. April 6] | |
|
Quiz 5 Lectures 27, 28, 29, 30A, 30B, 31. |
|
| [M. April 9] | |
| Assignment 8 | |
| Assignment 7 due | |
| 37. | [W. April 11] |
| Lecture 37+38 More on height-balanced binary search trees | |
| 39. | [Th. April 12] |
| Lecture 39A Tables | |
| Lecture 39B Hash tables | |
| 40. | [F. April 13] |
| Lecture 40 Heaps | |
| 41. | [M. April 16] |
| Lecture 41A Sorting | |
| Lecture 41B Merge sort | |
| 42. | [W. April 18] |
| Lecture 42 Heap sort | |
| [Th. April 19] | |
| Review. | |
| [F. April 20] | |
|
Quiz 6 Lectures 33A, 33B, 33C, 34A, 35A, 35B, 36, 37+38, 39B, 40. |
|
| [M. April 23] | |
|
Review. |
|
| [Tu. April 24] | |
|
Today is treated like a Friday. Review. | |
| Assignment 8 due | |
| [W. May 2] | |
| Final exam, 8:00–10:30 | |