Lecture Notes for Computer Science 2530

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


Lectures
1. [M. August 20]
  Lecture 1A Introduction
  Lecture 1B The swamp
  
2. [W. August 22]
  Assignment 0 assigned
  Lecture 2A Introduction to Linux
  Linux reference
  Lecture 2B Elementary C++ issues
  Lecture 2C Numeric types and expressions
  
3. [Th. August 23]
  Lecture 3A Variables
  Lecture 3B Abbreviations for assignments
  Lecture 3C Hand simulation
  Lecture 3D Choosing variable names
  Lecture 3E Constants
  Lecture 3F Some uses of variables
  
4. [F. August 24]
  Lecture 4A Function libraries
  Lecture 4B Functions in general
  Lecture 4C Defining functions
  
5. [M. August 27]
  Lecture 5A Mental model of functions
  Lecture 5B Standards for function definitions
  
6. [W. August 29]
  Lecture 6A Avoiding the swamp: function contracts
  Lecture 6B Other comments
  Lecture 6C Statements and function calls
  Lecture 6D Programs and main
  Lecture 6E Compound statements and scope
  
7. [Th. August 30]
  Lecture 7A Input and output
  Lecture 7B Writing
  Lecture 7C Reading
  Lecture 7D Input, output and functions
  
8. [F. August 31]
  Assignment 0 due
  Assignment 1 assigned
  Lecture 8A Boolean expressions
  Lecture 8B Mental model of boolean expressions
  Lecture 8C Making decisions
  Lecture 8D Standards for boolean expressions
  Lecture 8E Standards for if-statements
  
[M. September 3]
 Holiday
  
9. [W. September 5]
  Lecture 9A While-loops
  Lecture 9B Nested loops and nested loop emulation
  Lecture 9C Planning loops
  Lecture 9D Standards for loops
  
10. [Th. September 6]
  Lecture 10A For-loops
  Lecture 10B Breaking out of a loop
  Lecture 10C Elementary arrays
  
[F. September 7]
  Exam 1
Lectures 3A, 3E, 4A, 4C, 6C, 6E, 7B, 7C, 8A, 8C.
  
11. [M. September 10]
  Assignment 1 due
  Assignment 2 assigned
  Lecture 11 Loop algorithms 1: Scan algorithms
  
[W. September 12–T. September 18]
 ECU closed due to Hurricane Florence
  
12. [W. September 19]
  Lecture 12A Loop algorithms 2: Search algorithms
  Read the following:
  Lecture 12B Avoiding the swamp: Successive refinement
  Lecture 13A Avoiding the swamp: Planning
  Lecture 13B Avoiding the swamp: Diagnosing and fixing errors
  Lecture 13C Avoiding the swamp: Tracing
  Lecture 14A Avoiding the swamp: Using a debugger
  
13. [Th. September 20]
  Lecture 14B Recursion
  
14. [F. September 21]
  Lecture 15 Understanding recursion
  
15. [M. September 24]
  Assignment 2 due
  Assignment 3 assigned
  Lecture 16A Recursive search algorithms
  Lecture 16B Tail recursion
  
16. [W. September 26]
  Lecture 17A Duplicated recursive calls
  Lecture 17B Discovering algorithms
  
17. [Th. September 27]
  Lecture 18A The memory and pointers
  Lecture 18B Hand simulation with pointers
  Lecture 18C Areas of memory
  
[F. September 28]
  Exam 2
Lectures 09A, 10A, 11, 12A, 14B.
  
18. [M. October 1]
  Lecture 19A Using the heap
  Lecture 19B Dangling pointers and memory faults
  
19. [W. October 3]
  Lecture 20A Type definitions and const pointers
  Lecture 20B Parameter passing modes
  
20. [Th. October 4]
  Lecture 21A Mental model of arrays
  Lecture 21B Creating and destroying arrays
  
21. [F. October 5]
  Lecture 22A Arrays and functions
  Lecture 22B Reallocating an array
  
[M. October 8–T. October 9]
 Fall break
  
22. [W. October 10]
  Assignment 3 due
  Assignment 4 assigned
  Lecture 23B Pointer arithmetic
  Lecture 24A Modules
  Read the following:
  Lecture 23A Finding the largest value in an array
  Lecture 24B Standards for modules
  
23. [Th. October 11]
  Lecture 25A Structures
  Lecture 25B Constructors
  
[F. October 12]
  Exam 3
Lectures 14B, 15, 18A, 18B, 18C, 19A, 20A, 21A, 21B, 22A.
  
24. [M. October 15]
  Lecture 26A Naming and documentating structures
  Lecture 26B More on structures
  Lecture 26C Passing structures to functions
  Lecture 26D Arrays of structures
  
25. [W. October 17]
  Lecture 27A Lists
  Lecture 27B Linked lists
  
26. [Th. October 18]
  Lecture 28A Implementation of linked lists
  Lecture 28B Equations on conceptual lists
  
27. [F. October 19]
  Lecture 29 Equations and algorithms on lists
  
[Sat. October 20]
  Assignment 4 due
  Assignment 5 assigned
  
28. [M. October 22]
  Lecture 30 Memory sharing
  
29. [W. October 24]
  Lecture 31 Looping over linked lists
  
30. [Th. October 25]
  Lecture 32 Destructive functions on linked lists
  
31. [F. October 26]
  Lecture 33A FIFO queues
  Lecture 33B Linked implementation of FIFO queues
  Lecture 33C Array implementation of FIFO queues
  
32. [M. October 29]
  Lecture 34 Characters
  
[Tu. October 30]
  Assignment 5 due
  Assignment 6 assigned
  
33. [W. October 31]
  Lecture 35 Null-terminated strings
  
34. [Th. November 1]
  Lecture 36 Algorithms on null-terminated strings
  
[F. November 2]
  Exam 4
Lectures 25A, 25B, 26B, 26C, 27A, 27B, 28A, 29, 31, 32.
  
35. [M. November 5]
  Assignment 6 due
  Assignment 7 assigned
  Lecture 37A Reading and writing strings and characters
  Lecture 37B Writing files
  Lecture 37C Reading files
  
36. [W. November 7]
  Lecture 38A Trees
  Lecture 38B Trees in C++
  Lecture 38C Nondestructive functions on trees
  
37. [Th. November 8]
  Lecture 39A Destructive functions on trees
  Lecture 39B Traversing trees
  Lecture 39C Elementary analysis of algorithms
  
38. [F. November 9]
  Lecture 40A Analysis examples
  Lecture 40B Linear and Binary Search
  Lecture 40C Profilers
  
39. [M. November 12]
  Lecture 41A Binary search trees
  Lecture 41B Inserting and removing the smallest for binary search trees
  
40. [W. November 14]
  Lecture 42A Deletion from a binary search tree
  Lecture 42B Height-balanced binary search trees
  
41. [Th. November 15]
  Assignment 7 due
  Assignment 8 assigned
  Lecture 43 Keeping a binary search tree height-balanced
  
[F. November 16]
  Exam 5
Lectures 33A, 34, 35, 36, 38A, 38B, 38C, 39A, 39B, 39C.
  
42. [M. November 19]
  Lecture 44A Tables
  Lecture 44B Hash tables
  
[W. November 21–F. November 23]
 Thanksgiving break
  
43. [M. November 26]
  Lecture 45 Heaps
  
44. [W. November 28]
  Lecture 46A Sorting
  Lecture 47 Heap sort
  
[Th. November 29]
 Review.
  
[F. November 30]
  Exam 6
Lectures 41A, 41B, 42A, 42B, 43, 44B, 45,
  
[Sat. December 1]
  Assignment 8 due
  
[M. December 3]
 Review.
  
[F. December 7]
 Final exam, 2:00–4:30