# 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 ---