Coding standards | |
Introduction to Linux | |
Grading notes |
Part 1. C++ fundamentals, elementary algorithms and program development
|
|
1. | [M. January 7] |
Lecture 1A Introduction | |
Lecture 1B The swamp | |
2. | [W. January 9] |
Assignment 0 assigned | |
Lecture 2A Introduction to Linux | |
Linux reference | |
Lecture 2B Elementary C++ issues | |
Lecture 2C Numeric types and expressions | |
3. | [Th. January 10] |
Lecture 3A Variables | |
Lecture 3B Hand simulation | |
Lecture 3C Abbreviations for assignments | |
Lecture 3D Constants | |
Lecture 3E Choosing variable names | |
Lecture 3F Some uses of variables | |
4. | [F. January 11] |
Lecture 4A Functions | |
Lecture 4B Side-effects and ignoring the value of an expression | |
Lecture 4C Function libraries | |
Lecture 4D Input and output | |
Lecture 4E Writing to the standard output | |
Lecture 4F Reading from the standard input | |
5. | [M. January 14] |
Lecture 5A Defining functions | |
Lecture 5B What are functions good for? | |
Lecture 5C What are parameters and what are they good for? | |
Lecture 5D Programs and the main function | |
Lecture 5E The order of function definitions | |
Lecture 5F Standards for function definitions | |
6. | [W. January 16] |
Lecture 6A Mental model of functions 1: What does the function accomplish? | |
Lecture 6B Avoiding the swamp: function contracts | |
Lecture 6C Documenting a program | |
Lecture 6D Other comments | |
Lecture 6E Compound statements and scope | |
7. | [Th. January 17] |
Assignment 0 due | |
Assignment 1 assigned | |
Lecture 7A Boolean expressions | |
Lecture 7B Making decisions | |
Lecture 7C Mental model of boolean expressions | |
Lecture 7D Standards for boolean expressions | |
Lecture 7E Standards for if-statements | |
8. | [F. January 18] |
Lecture 8A While-loops | |
Lecture 8B Planning loops | |
Lecture 8C Loop invariants | |
Lecture 8D Things to watch out for | |
Lecture 8E Standards for loops | |
Lecture 8F Nested loops and nested loop emulation | |
[M. January 21] | |
Holiday | |
9. | [W. January 23] |
Lecture 9A For-loops | |
Lecture 9B Standards for for-loops | |
Lecture 9C Breaking out of a loop | |
Lecture 9D Elementary arrays | |
10. | [Th. January 24] |
Lecture 10 Loop algorithms 1: Scan algorithms | |
11. | [F. January 25] |
Assignment 1 due | |
Assignment 2 assigned | |
Lecture 10 Loop algorithms 2: Search algorithms | |
12. | [M. January 28] |
Exam 1 Lectures 3A, 3E, 4A, 4B, 5A, 6C, 7A, 7B, 7C, |
|
13. | [W. January 30] |
Lecture 12A Avoiding the swamp: Diagnosing and fixing errors | |
Lecture 12B Avoiding the swamp: Planning | |
Lecture 12C Avoiding the swamp: Successive refinement | |
Lecture 12D Avoiding the swamp: Using a debugger | |
Lecture 12E Avoiding the swamp: Tracing | |
14. | [Th. January 31] |
Lecture 13A Mental Model of Functions 2: How Function Calls are Performed by the Computer | |
Lecture 13B Recursion | |
15. | [F. February 1] |
Lecture 14A Understanding recursion | |
Lecture 14B Recursive scan algorithms | |
Lecture 14C Using equations | |
16. | [M. February 4] |
Assignment 2 due | |
Assignment 3 assigned | |
Lecture 15A Recursive search algorithms | |
Lecture 15B Tail recursion | |
17. | [W. February 6] |
Lecture 16A Duplicated recursive calls | |
Lecture 16B Discovering algorithms | |
Part 2. The memory and more C++
|
|
18. | [Th. February 7] |
Lecture 17A The memory, memory addresses and pointers | |
Lecture 17B Hand simulation with pointers | |
Lecture 17C Areas of memory | |
19. | [F. February 8] |
Lecture 18A Using the heap | |
Lecture 18B Dangling pointers and memory faults | |
Lecture 18C Memory leaks | |
Lecture 18D Type definitions and const pointers | |
20. | [M. February 11] |
Exam 2 Lectures 8A, 8B, 9A, 9C, 10, 11, 13B. |
|
21. | [W. February 13] |
Lecture 19 Parameter passing modes | |
22. | [Th. February 14] |
Lecture 20A Mental model of arrays | |
Lecture 20B Creating and destroying arrays | |
Lecture 20C Arrays and functions | |
Lecture 20D Pointer arithmetic | |
Lecture 20E Reallocating an array | |
23. | [F. February 15] |
Assignment 3 due | |
Assignment 4 assigned | |
Assignment 4 | |
Lecture 21A Modules | |
Lecture 21B Standards for modules | |
24. | [M. February 18] |
Lecture 22A Structures | |
Lecture 22B Constructors | |
Lecture 22C Pointers to structures | |
25. | [W. February 20] |
Lecture 23A Naming and documentating structures | |
Lecture 23B Forward and recursive structure type definitions | |
Lecture 23C Copying structures | |
Lecture 23D Passing structures to functions | |
Lecture 23E Arrays of structures | |
Part 3. Data structures and algorithms
|
|
26. | [Th. February 21] |
Lecture 24A Abstract data types | |
Lecture 24B Conceptual Lists | |
Lecture 24C Linked lists | |
Lecture 24D Implementation of linked lists | |
27. | [F. February 22] |
Assignment 5 assigned | |
Assignment 5 | |
[Sat. February 23] | |
Assignment 4 due | |
28. | [M. February 25] |
Exam 3 has been moved to February 27. | |
Lecture 25A Equations about lists | |
Lecture 25B Defining list functions by equations | |
29. | [W. February 27] |
Exam 3 Lectures 13B, 14A, 14B, 15A, 17A, 17B, 17C, 18A, 18B, 18C, 20A, 20B, 20C. |
|
30. | [Th. February 28] |
Lecture 26 More examples of functions on lists | |
31. | [F. March 1] |
Lecture 27A Destructive functions on linked lists | |
Lecture 27B Memory sharing | |
[M. March 4 – F. March 8] | |
Spring break | |
32. | [M. March 11] |
Assignment 5 due | |
Assignment 6 assigned | |
Assignment 6 | |
33. | [W. March 13] |
Lecture 28 Looping over linked lists | |
34. | [Th. March 14] |
Lecture 29A FIFO queues | |
Lecture 29B Linked implementation of FIFO queues | |
Lecture 29C Array implementation of FIFO queues | |
35. | [F. March 15] |
Lecture 30A Characters | |
Lecture 30B Null-terminated strings | |
36. | [M. March 18] |
Exam 4 Lectures 20A, 20B, 20C, 20D, 22A, 22B, 22C, 23C, 23D, 24B, 24C, 24D, 25A, 25B, 26, 27A, 27B, 28. |
|
37. | [W. March 20] |
Assignment 6 due | |
Assignment 7 assigned | |
Assignment 7 | |
38. | [Th. March 21] |
Lecture 31 Algorithms on null-terminated strings | |
39. | [F. March 22] |
Lecture 32A Reading and writing strings and characters | |
Lecture 32B Writing files | |
Lecture 32C Reading files | |
40. | [M. March 25] |
Lecture 33A Binary Trees | |
Lecture 33B Trees in C++ | |
Lecture 33C Nondestructive functions on trees | |
41. | [W. March 27] |
Lecture 34A Traversing trees | |
Lecture 34B Destructive functions on trees | |
42. | [Th. March 28] |
Lecture 35A Elementary analysis of algorithms | |
Lecture 35B Analysis examples | |
Lecture 35C Profilers | |
43. | [F. March 29] |
Lecture 36A Linear and Binary Search | |
Lecture 36B Binary search trees | |
44. | [M. April 1] |
Exam 5 Lectures 29A, 30A, 30B, 31, 33A, 33B, 33C, 34A, 34B, 35A. |
|
45. | [W. April 3] |
Lecture 37 Inserting and removing the smallest for binary search trees | |
46. | [Th. April 4] |
Assignment 7 due | |
Assignment 8 assigned | |
Assignment 8 | |
47. | [F. April 5] |
Lecture 38A Deletion from a binary search tree | |
Lecture 38B Height-balanced binary search trees | |
48. | [M. April 8] |
Lecture 39 Keeping a binary search tree height-balanced | |
49. | [W. April 10] |
Lecture 40A Tables | |
Lecture 40B Hash tables | |
50. | [Th. April 11] |
Lecture 41 Heaps and priority queues | |
51. | [F. April 12] |
Lecture 42A Sorting | |
Lecture 43 Heapsort | |
52. | [M. April 15] |
Exam 6 Lectures 36B, 37, 38B, 39, 40B, 41, |
|
53. | [W. April 17] |
Lecture 42B Merge Sort | |
Lecture 42C Implementation of Merge Sort for linked lists | |
54. | [Th. April 18] |
Review | |
[F. April 19] | |
Holiday | |
55. | [M. April 22] |
Assignment 8 due | |
Review | |
56. | [Tu. April 23] |
(Today is treated like a Friday) Review | |
[W. May 1] | |
Final exam for section 001: 11:00–1:30 Final exam for section 002: 2:00–4:30 | |