Labs
Monday/Tuesday labs are due on Thursday before your lab time.
Thursday/Friday labs are due on the following Monday before your lab time.
Number | Title | Concepts | Due Date |
---|---|---|---|
1 | Welcome to Java | Java, Eclipse | Thurs 6/25 |
2 | Loops and Conditionals | While loops, if-else statement | Thurs 6/25 |
3 | Objects | Objects, Box and Pointer Diagrams | Mon 6/29 |
4 | Arrays, Testing | Arrays, TDD, JUnit | Mon 6/29 |
5 | Collections | For Loops, Arrays, Collections | Thurs 6/29 |
6 | Inheritance | Inheritance, Polymorphism, Abstract Classes, Interfaces | Thurs 7/2 |
7 | Exceptions and Invariants | Exceptions, Try-catch suites, Invariants | Mon 7/6 |
8 | Iterators, Generics | Iterators, Iterables, Enhanced for-loop, Generic classes | Thurs 7/9 |
9 | Linked Lists, Runtime | Linked Lists, Asymptotics, Big-O | Thurs 7/9 |
10 | More Linked Lists | Destructive vs Non-destructive methods | Mon 7/13 |
11 | Linked Lists 3 | Encapsulation/Wrapper Classes | Thurs 7/16 |
12 | Hashing 1 | Hash Tables, HashMaps, Load Factors, Linear Probing | Thurs 7/16 |
13 | Hashing 2 | Hash functions for Arbitrary Objects, Memoization | Mon 7/20 |
14 | Trees 1 | Trees, Binary Trees | Mon 7/20 |
15 | Trees 2 | Depth-first Search, Breadth-first Search | Thurs 7/23 |
16 | BSTs | Binary Search Trees, Comparables, Insertion into a BST | Thurs 7/23 |
17 | TreeMap | Tree-based Maps, Deletion from a BST | Mon 7/27 |
18 | Balanced Searched Trees | AVL-Trees, 2-3-4 Trees, Tries | Thurs 7/30 |
19 | Priority Queues and Heaps | Array-based BSTs, Priority Queues, Binary Heaps, Heapify | Thurs 7/30 |
20 | Graphs | Graphs, Graph Representations, Topological Sorting | Mon 8/3 |
21 | Graph Algorithms and Applications | Dijkstra's Algorithm, Web Crawling, Garbage Collection | Thurs 8/6 |
22 | Comparison-based Sorts | Insertion Sort, Selection Sort, Heap Sort, Merge Sort, Quick Sort | Thurs 8/6 |
23 | Counting Sorts | Quickselect, Counting Sort, Radix Sort | Mon 8/10 |
Optional Lab 1 | Regex | TBD | Thurs 8/13 |
Optional Lab 2 | Additional Java | StringBuilder, Wildcards, Packages, JARs | Thurs 8/13 |
Optional Lab 3 | Additional Data Structures | Splay Trees, Disjoint Sets, Kruskal's Algorithm, Cuckoo Hashing | Fri 8/14 |
Projects
Number | Title | Category | Due Date |
---|---|---|---|
1 | Checkers61BL | Final | Tues 7/7 |
2 | Gitlet | Checkpoint 1 | Fri 7/17 |
Checkpoint 2 | Thurs 7/23 | ||
Final | Mon 7/27 | ||
3 | Sliding Block Puzzles | Checkpoint | Thurs 8/6 |
Final | Tues 8/11 |