Course Information
Instructor: Gabriel KaptchukOffice: 307 Malone Hall
Email: gkaptchuk (at) jhu (dot) edu
Office Hours: TBD
Instructor: Joanne Selinski
Office: 225 Malone Hall
Email: joanne (at) cs (dot) jhu (dot) edu
Office Hours: TBD
TA: Erin Chen
Email: echen41 (at) jhu (dot) edu
Office Hours: TBD
CA: Eduardo Aguila
Email: eaguila6 (at) jhu (dot) edu
Office Hours: TBD
The course syllabus can be found here.
Don't forget to *see Piazza/Resources* for lecture notes, in-class worksheets, and other resources.
Textbook Reference: OpenDSA
Course Resources
EnvironmentSetupJavaCommandLineNotes
IntelliJSetup
GradescopeSubmissionNotes
cs226_checks.xml
Course Schedule
Schedule is pretty complete, but will be updated for assignment releases later.
Dates | Topics | Prep/Resources | Assignments |
---|---|---|---|
Mon 7/1 | Course Overview Java review; Interfaces Development Tools |
OpenDSA Ch 1,
(intro) Java Code Examples
OpenDSA Ch 4.1-4.3 & 5.1-5.5, Java Object-Oriented Tutorial OpenDSA Ch 3.1-3.2, see Piazza Resources/General, Checkstyle website |
Assignment 1 out, due Thu 7/4 |
Tue 7/2 | Abstract Data Types, Arrays, Generics Exceptions, Iterators |
OpenDSA Ch 4, Java Generics | Assignment 2 out, due Mon 7/8 |
Thur 7/4 | NO CLASS | ||
Fri 7/5 | Linked Array Implementation JUint Counting Calls |
Wikipedia on
Linked Lists, OpenDSA Ch 5.6-5.7,
(Recursion review OpenDSA Ch 10) overview, JUnit 4 website, OpenDSA Ch 3.9-3.13 |
Assignment 3 out (Pairs), due Thur 7/11 |
Mon 7/8 | Searching & Quadratic Sorting Asymptotic Complexity |
OpenDSA Ch 7, Ch 13.1-13.7 OpenDSA Ch 6, 8 |
|
Tue 7/9 | Stacks Queues & Deques |
OpenDSA Ch 9.8-9.11, wikipedia OpenDSA Ch 9.12-9.14, wikipedia |
Assignment 4 out, due Mon 7/15 |
Thur 7/11 | Lists Sets |
OpenDSA Ch 9.1-9.7 OpenDSA 6.2, wikipedia |
|
Fri 7/12 | Midterm 1 Trees; Binary Trees |
OpenDSA Ch 18.1, 12.1-12.8, Wikipedia tree, binary tree | |
Mon 7/15 | Priority Queues, Heaps More Priority Queues, HeapSort, Comparators |
OpenDSA Ch 12.16-12.17, Wikipedia
priority
queue, heap OpenDSA Ch 13.12, [Jb Website] |
Assignment 5 out, due Thur 7/18 |
Tue 7/16 | Maps and Binary Search Trees Balanced BSTs |
OpenDSA Ch 18.1, 12.1-12.8,
Wikipedia tree,
binary tree OpenDSA 26.1 |
|
Thur 7/18 | AVL Trees Treaps |
OpenDSA 26.2, wikipedia | Assignment 6 out, due Mon 7/22 |
Fri 7/19 | Divide & Conquer Sorting Lower bounds, linear sorting, stable sorting |
OpenDSA 13.9-13.11, Wikipedia mergesort, quicksort OpenDSA Ch 13.13-13.17 |
|
Mon 7/22 | Midterm 2 In class work time |
||
Tue 7/23 | Hashing and Hash Tables | OpenDSA Ch 15, wikipedia | Assignment 7 out (Pairs), due Sat 7/27 |
Thur 7/25 | Graph Concepts Graph Implementations |
OpenDSA Ch 19.1-19.4, wikipedia | |
Fri 7/26 | Shortest Path Problem, Dijkstras Algorithm In class Assignment 7 work |
OpenDSA 19.5, 19.8, wikipedia | Assignment 8 out, due Thur 8/1 |
Mon 7/29 | Minimum Spanning Tree Union Find |
OpenDSA 19.6-19.7, wikipedia
OpenDSA 6.2, 18.1-18.2, wikipedia |
|
Tue 7/30 | Test Processing, Huffman Codes Tries ORAM |
OpenDSA 12.18, wikipedia OpenDSA 12.19, wikipedia |
|
Thur 8/1 | Misc Review |
||
Fri 8/2 | Final Exam |