# CS223 Data Structures
## General
- [Syllabus](./H1NP00-Hyl)
- [Canvas course site](https://hanover.instructure.com/)
## References
- [VSCode Keyboard shortcut reference (MacOS)](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf)
- [VSCode Keyboard shortcut reference (Windows)](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf)
## Week 1
- Mon: [First day stuff](https://hackmd.io/@lamarche/BkG0kBPS1l)
- Reading for Tue night: 1.3, 2.1 - 2.11, 2.15, 2.16
- Homework Assignment 1 (due next Mon)
- Wed: [C++ basics](https://hackmd.io/@lamarche/By8YGSwB1l)
- Reading for Thu night: 3.1, 3.3 - 3.8
- Thu: [Lab 0 Linux Basics](https://hackmd.io/@lamarche/SJVMzHPBkg)
- Fri: [More C++ basics](https://hackmd.io/@lamarche/HkgqXrDH1l)
- Reading for Sun night: 4.1 - 4.4, 4.7, 4.9, 4.11 - 4.13, 5.1 - 5.5, 5.8 - 5.11
## Week 2
- Mon: [Conditionals, Loops](https://hackmd.io/@lamarche/r15RN548ye)
- Homework 2 (due next ~~Mon~~ Tue)
- Reading for Tue night: 6.1 - 6.8
- Wed: [Functions](https://hackmd.io/@lamarche/BJzZ794Ikg)
- Reading due Thu night:
- Book section 3.10: Random Numbers
- Work through [Learning the Shell](https://linuxcommand.org/lc3_learning_the_shell.php) sections 1 - 5, 7 - 8. You can work the steps out in your GitHub codespace, or the one we created on week 1.
- Thu: [Lab 1](https://hackmd.io/@lamarche/SJmtFCZSyl)
- Fri: More Functions and Random Numbers
- Reading due Tue night: 6.10 - 6.15
## Week 3
- Mon: **No class (MLK Jr Day)**
- Homework 3 (due next Mon)
- Wed: [More Functions and Shell](https://hackmd.io/@lamarche/SyrBCtAv1x)
- Thu: [Lab 2](https://hackmd.io/@lamarche/rysVaRWr1l)
- Reading due Thu night: 8.1 - 8.6
- Fri: [Global variables, references, overloading](https://hackmd.io/@lamarche/ryHHKcNLJx)
- Reading due Sun night: 8.7 - 8.10
## Week 4
- Mon: [Arrays](https://hackmd.io/@lamarche/ryPKpq4Iyl)
- Homework 4 (due next Mon)
- Homework 5 (due next Wed)
- Wed: [Multi-Dim Arrays](https://hackmd.io/@lamarche/rJdl4H-d1g)
- Reading due Thu: 12.5, 12.7, 13.1 - 13.3
- Thu: [Lab 3](https://hackmd.io/@lamarche/ryL060-Hye)
- Fri: [Strings and Streams](https://hackmd.io/@lamarche/Sk9lyoNIke)
## Week 5
- Monday: [Working with files](https://hackmd.io/@lamarche/ByvGi_9Okg)
- Homework 6 (due next Mon)
- Reading due Tue night: 10.1 - 10.6 Pointers
- Wed: [Pointers](https://hackmd.io/@lamarche/Hy7sZXDI1l)
- Thu: **No lab meeting**
- Reading due Thu night: 10.7 - 10.10 Dynamic Memory
- Fri: [Working with dynamic memory](https://hackmd.io/@lamarche/HyKkmmw8kl)
## Week 6
- Mon: [More Pointers and Dynamic Memory](https://hackmd.io/@lamarche/HJBq_YwYkg)
- [Study guide](https://hackmd.io/@lamarche/rkOZEmP81e)
- Wed: **Exam 1**
- Thu: [Lab 4: Dynamic arrays](https://hackmd.io/@lamarche/SyhWDXwL1l)
- Reading due Thu night: 7.1 - 7.7
- Fri: [Classes](https://hackmd.io/@lamarche/rJtFUXPI1e)
- Reading due Sun night: 7.8 - 7.9, 7.11 - 7.12
## Week 7
- Mon: [More Classes](https://hackmd.io/@lamarche/Sysjn6eq1l)
- Homework 7 (due Friday)
- Reading due Tue night: 11.2 - 11.9
- Wed: [Copy Constructors and Operator Overloading](https://hackmd.io/@lamarche/SJwV5QwLyx)
- Thu: [Lab 5: Images](https://hackmd.io/@lamarche/ryCdjXPIJl)
- Reading due Thu night: 10.11, 10.12, 11.1
- Fri: [Pointers and classes](https://hackmd.io/@lamarche/r1LbpXPIyl)
- Examples:
- [Class example: OrdNum](https://hackmd.io/@lamarche/rJB2CXPIJl)
- [Class example: Fraction](https://hackmd.io/@lamarche/SJOPTXPL1x)
---
## Winter Break
- Have fun! I expect full reports of the fun had!
---
## Week 8
- Mon: [Linked lists](https://hackmd.io/@lamarche/HyS9zvdLJl)
- Homework 8 (due Thursday)
- Reading due Tue night: 18.1, 18.2
- Wed: No Class Meeting
- Thu: [Lab 6: Doubly-linked lists](https://hackmd.io/@lamarche/S1uU7Du8ke)
- Reading due Thu night: 16.1
- Fri: [More linked lists, exceptions](https://hackmd.io/@lamarche/rkLP4D_Iye)
## Week 9
- Mon: Activity (Homework 9.5) (due this Friday at beginning of class)
- Reading Due Tue night: 16.2, 16.3
- Homework 9 (due Wednesday night)
- Wed: [Templates](https://hackmd.io/@lamarche/SJRL0Zynkx)
- Thu: [Lab 6: Doubly-linked lists](https://hackmd.io/@lamarche/S1uU7Du8ke) continued
- Homework 10 (due next Monday)
- Reading due Thu night: 19.1, 19.2, 19.3
- Fri: Template wrap-up
## Week 10
- Mon: Exam review
- Wed: Exam 2 ([Study guide](https://hackmd.io/@lamarche/rkmetPOI1x))
- Thu: **No lab meeting**
- Reading due Thu night: 19.4, 19.5, 19.6
- Friday: [Stacks and Queues](https://hackmd.io/@lamarche/B1rbDwd81g)
- Homework 11 (due next Wednesday)
## Week 11
- Mon: Stacks and Queues wrap-up
- Reading due Tuesday night: 14.1 - 14.4, 14.9
- Wed: Recursion
- [Practice Problems](https://hackmd.io/@lamarche/rk51lj-6yx)
- Thu: [Lab 7](https://hackmd.io/@lamarche/B1Va5PuIyx)
- Reading due Thursday night: 18.4
- Fri: **No Class (Enjoy the day!)**
- Reading due Sunday night: 20.1, 20.2 up to Searching the Binary Search Tree
## Week 12
- Mon: Binary trees, binary search trees
- Reading due Tuesday night: 20.2 from Remove an Element through end of 20.2
- Wed: More on binary trees
- Thu: [Lab 8](https://hackmd.io/@lamarche/HJQeCvuL1l)
- Reading due Thursday night: [Unit Testing](https://aws.amazon.com/what-is/unit-testing/)
- Homework 12 (Recursion) (due Thursday)
- Fri: Binary trees wrap-up
- Homework 13 (Recursive lists) (due Sunday)
## Week 13
- Mon: [Unit testing](https://hackmd.io/@lamarche/rkUB7O_U1l)
- Homework 14 (Binary trees) (due Friday)
- Wed: Final Exam Review
- Thu: **No lab meeting**
- Fri: **No Class** (Enjoy the nice weather, or start studying)
- [Final study guide](https://hackmd.io/@lamarche/H1HAm_dI1l)
---
### The End
---