|
| CSCI 2530 course web page | |
| Coding standards | |
| Introduction to Linux |
|
|
|
| 1. | [M. January 13] |
| Syllabus | |
| Lecture 1A Critical issues from the syllabus | |
| Lecture 1C Who should study computer science? | |
| Lecture 1D What you should already know | |
| Lecture 1E Course philosophy | |
| Lecture 1F Two themes | |
| Lecture 1G Things not to use in C++ | |
|
|
|
| 2. | [W. January 15] |
| Lecture 2A Programming languages | |
| Lecture 2B Compilers and develoment environments | |
| Lecture 2C Standards | |
| Lecture 2D Programming language syntax and layout | |
| Lecture 2E Values and types | |
| Lecture 2F Expressions | |
| Lecture 2G Functions | |
| Lecture 2H Conversions | |
| Assignment 0 assigned | |
| 3. | [Th. January 16] |
| Lecture 3A Function libraries | |
| Lecture 3B Statements | |
| Lecture 3C Compound statements | |
| Lecture 3D Input and output | |
| Lecture 3E Writing to the standard output | |
| 4. | [F. January 17] |
| Lecture 4A Reading from the standard input | |
| Lecture 4B Variables | |
| Lecture 4C Assignment statements | |
| Lecture 4D Variable Initialization | |
| Lecture 4E Abbreviations for assignment statements | |
| Lecture 4F Compound statements and scope | |
| [M. January 20] | |
| Holiday | |
| 5. | [W. January 22] |
| Lecture 5A Defining functions | |
| Lecture 5B Side effects, pure functions and void functions | |
| Lecture 5C Return statements | |
| Lecture 5D Calling your functions | |
| Lecture 5E Where do parameters come from? | |
| Lecture 5F Treat parameters as constants | |
| Assignment 0 due | |
| 6. | [Th. January 23] |
| Lecture 6A Programs and the main function | |
| Lecture 6B The order of function definitions | |
| Lecture 6C Large software and programming principles | |
| Lecture 6D Hand simulation | |
| Lecture 6E Type checking | |
| Assignment 1 assigned | |
| 7. | [F. January 24] |
| Lecture 7A Tracing | |
| Lecture 7B Mental model of functions 1: What does the function accomplish? | |
| Lecture 7C Function contracts | |
| Lecture 7D Choosing function, parameter and variable names | |
| 8. | [M. January 27] |
| Lecture 8A Boolean expressions | |
| Lecture 8B Mental model of boolean expressions | |
| Lecture 8C Booleans are values | |
| Lecture 8D Making decisions | |
| Lecture 8E Pitfalls with if-statements | |
| Lecture 8F Standards for if-statements | |
| 9. | [W. January 29] |
| Lecture 9A Repetition | |
| Lecture 9B While-loops | |
| Lecture 9C Checking loops | |
| 10. | [Th. January 30] |
| Lecture 10A Planning while-loops | |
| Lecture 10B Loop invariants | |
| Assignment 1 due | |
| 11. | [F. January 31] |
| Lecture 11A For-loops | |
| Lecture 11B Planning for-loops | |
| Lecture 11C Additional features of for-loops | |
| Lecture 11D Standards for loops | |
| [M. February 3] | |
|
Exam 1 Lectures
|
|
|
|
|
| 12. | [W. February 5] |
| Lecture 12A Scan algorithms | |
| Lecture 12B Filtered scans | |
| 13. | [Th. February 6] |
| Lecture 13A Elementary arrays | |
| Lecture 13B Scan algorithms on arrays | |
| Assignment 2 assigned | |
| 14. | [F. February 7] |
| Lecture 14A Search algorithms | |
| Lecture 14B More on search algorithms | |
| 15. | [M. February 10] |
| Lecture 15A Mental model of functions 2: how function calls are performed by the Computer | |
| Lecture 15B Recursion | |
| 16. | [W. February 12] |
| Lecture 16A Understanding recursion | |
| Lecture 16B Example: computing powers | |
| Lecture 16C Top-down design | |
| 17. | [Th. February 13] |
| Lecture 17A Making sure that a recursive function stops | |
| Lecture 17B Recursive scan algorithms | |
| 18. | [F. February 14] |
| Lecture 18A Recursive search algorithms | |
| Lecture 18B Tail recursion | |
| Lecture 18C Duplicated recursive calls | |
| Assignment 2 due | |
| Assignment 3 assigned | |
| 19. | [M. February 17] |
| Lecture 19A Detecting, diagnosing and fixing errors | |
| Lecture 19B Testing | |
| Lecture 19C Localizing errors and successive refinement | |
| Lecture 19D The memory and memory addresses | |
| Lecture 19E Pointers and operations on pointers | |
|
|
|
| 20. | [W. February 19] |
| Lecture 20A Hand simulation with pointers | |
| Lecture 20B Areas of memory | |
| Lecture 20C Allocating and deallocating memory in the heap | |
| 21. | [Th. February 20] |
| Lecture 21A Ownership of memory and memory faults | |
| Lecture 21B Dangling pointers | |
| Lecture 21C Finding and fixing causes of memory faults | |
| Lecture 21D Using a debugger | |
| Lecture 21E Memory leaks | |
| 22. | [F. February 21] |
| Lecture 22A Arrays | |
| Lecture 22B Creating arrays | |
| Lecture 22C Deleting arrays | |
| Lecture 22D Chunks are not automatically copied | |
| [M. February 24] | |
|
Exam 2 Lectures
|
|
| 23. | [W. February 26] |
| Lecture 23A Array bounds | |
| Lecture 23B Passing arrays to functions | |
| Lecture 23C Logical and physical size | |
| Lecture 23D Example | |
| Lecture 23E Returning an array from a function | |
| [Th. February 27] | |
| Assignment 3 due | |
| Assignment 4 assigned | |
| Assignment 4 | |
| 24. | [F. February 28] |
| Lecture 24A Physical parameter passing modes | |
| Lecture 24B Logical parameter passing modes | |
| 25. | [M. March 2] |
| Lecture 25A Type definitions | |
| Lecture 25B Modules | |
| Lecture 25C Linkage | |
|
|
|
| 26. | [W. March 4] |
| Lecture 26A Null-terminated strings | |
| Lecture 26B Standard operations on null-terminated strings | |
| 27. | [Th. March 5] |
| Lecture 27A Algorithms on null-terminated strings | |
| Lecture 27B Reading and writing strings | |
| 28. | [F. March 6] |
| Lecture 28A Structures | |
| Lecture 28B Creating structured values | |
| Lecture 28C Referring to fields in structures | |
| Lecture 28D Copying structures | |
| Lecture 28E Constructors | |
| Lecture 28F More on constructors | |
| Assignment 4 due | |
| [M. March 9 – F. March 13] | |
|
Spring break Note. Dates below (in red) have been adjusted to reflect the extra week off due to coronavirus. Although you are not required to, I recommend that you begin on assignment 5 as soon as feasible. | |
| [M. March 16] | |
| Assignment 5 assigned | |
| Lecture 29C Forward and recursive structure type definitions | |
| Lecture 29D Naming and documentating structure types | |
| 30. | [M. March 23] |
| Lecture 30A Abstract data types | |
| Lecture 30B Conceptual Lists | |
| Lecture 30C Linked lists | |
| Lecture 30D Implementation of linked lists | |
| 31. | [W. March 25] |
| Lecture 31A Equations about lists | |
| Lecture 31B Using equations to derive algorithms | |
| Lecture 31C Another example using equations | |
| Lecture 31D Summary and Another Example | |
| 32. | [Th. March 26] |
| Lecture 32A Example: produce a modified list | |
| Lecture 32B Example: select the even members of a list | |
| Lecture 32C Example: is one list a prefix of another? | |
| 33. | [F. March 27] |
| Lecture 33A Looping over linked lists | |
| Lecture 33B Example: sum of the numbers in a list | |
| Lecture 33C Example: reversing a list | |
| Lecture 33D Summary and Caution | |
| [M. March 30] | |
|
Exam 3 Lectures
|
|
| 34. | [W. April 1] |
| Assignment 5 due | |
| Assignment 6 assigned | |
| Lecture 34A Destructive functions on linked lists | |
| Lecture 34B Example: Sort a linked list | |
| Lecture 34C Example: Remove a value from a linked list | |
| Lecture 34D Example: Modify the items in a linked list | |
| Lecture 34E Memory sharing | |
| 35. | [Th. April 2] |
| Lecture 35A Logarithms | |
| Lecture 35B Comparison of common functions | |
| Lecture 36A Elementary analysis of algorithms | |
| 36. | [F. April 3] |
| Lecture 36B Examples algorithms | |
| Lecture 36C Linear and binary search | |
| 38. | [M. April 6] |
| Lecture 38A Binary Trees | |
| Lecture 38B Trees in C++ | |
| Lecture 38C Nondestructive functions on trees | |
| 39. | [W. April 8] |
| Lecture 39A Traversing trees | |
| Lecture 39B Destructive functions on trees | |
| 40. | [Th. April 9] |
| Assignment 7 assigned | |
| Lecture 40A Binary search trees | |
| Lecture 40B Lookup and insertion | |
| Lecture 40C Removing the smallest value from a binary search tree | |
| [F. April 10] | |
| Holiday | |
| Assignment 6 due | |
| [M. April 13] | |
|
Exam 4 Lectures
|
|
| 41. | [W. April 15] |
| Lecture 41A Deletion from a binary search tree | |
| Lecture 41B Height-balanced binary search trees | |
| 42. | [Th. April 16] |
| Lecture 42A Doing rotations to keep a binary search tree height-balanced | |
| Lecture 42B Getting the height of a node and full implementation | |
| Lecture 42C Review of how to do rotations | |
| 43. | [F. April 17] |
| Lecture 43A Tables | |
| Lecture 43B Hash functions | |
| Lecture 43C Hash tables | |
| 44. | [M. April 20] |
| Lecture 44A Heaps and priority queues | |
| Lecture 44B Representing a heap as an array | |
| Lecture 44C Inserting into a heap | |
| Lecture 44D Removal from a heap | |
| Lecture 44E The cost of heap operations | |
| 45. | [W. April 22] |
| Lecture 45A Sorting a linked list using Insertion Sort | |
| Lecture 45B The cost of Insertion Sort | |
| 46. | [Th. April 23] |
| Assignment 7 due | |
| Lecture 45C Merge Sort | |
| Lecture 45D Analysis of Merge Sort | |
| Lecture 45E Implementation of Merge Sort for linked lists | |
| Lecture 45F Summary and Optimality of Merge Sort | |
| [F. April 24] | |
|
Exam 5 Lectures
|
|
| 47. | [M. April 27] |
| Lecture 46A Heap Sort | |
| Lecture 46B Building an Initial Heap | |
| Lecture 46C Sorting using heaps | |
| 48. | [T. April 28] |
| Lecture 46D Analysis of Heap Sort | |
| [F. May 1] | |
| Final exam for section 002: 2:00–4:30 | |
| [W. May 6] | |
| Final exam for section 001: 11:00–1:30 | |