Lecture Notes for Computer Science 2530

February
March
April
May
Reference
  Coding standards
  Introduction to Linux
  Grading notes


Lectures
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