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