Lecture Notes
Computer Science 2530

September
October
November
December
Reference
  Coding standards
  Introduction to Linux
  Grading notes


Lectures
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