CS 201: Data Structures
The assigned reading before class should be done before each class, and post a question or comment about it to Moodle. My goal in assigning these readings is to help get your brain primed for some of the content before class, and so these readings are (mostly) short. Nonetheless, there is other material we will cover in class, which you will also find in the textbook. Those additional sections, are listed in the "Topics and textbook reference" column.
# | Date | Assigned reading before class | Topics and textbook reference | Assignments due midnight following class |
---|---|---|---|---|
1 | Introduction, Java | Getting started (Tues) | ||
2 | From Python to Java, from beginning through | Java | Java lab 1 | |
“Assignment, Parameters, and Casting” | ||||
3 | From Python to Java, “Defining Classes,” | Inheritance (1.1-1.3), | Java lab 2 | |
section from “Class Structure” through | interfaces, lists (2.1-2.3) | |||
“Defining Equality” | ||||
4 | Sections 2.1 and 2.2 | lists, Efficiency of algorithms (2.4) | Lunar lander p1 | |
5 | Section 2.4 through to the end of page 81 | Efficiency of algorithms (2.4) | Lunar lander p2 | |
6 | Section 2.5 through to halfway down page 90 | Lists (2.5-2.8) | Inheritance | |
7 | Section 2.5, p. 90 halfway through end of section | Lists (2.5-2.8) | Complexity | |
8 | Sections 3.1, 3.2 (just the first case | Stacks (3.1-3.4) | Encryption p1 | |
study on palindromes) | ||||
9 | Section 4.1 | Queues (4.1-4.5) | Encryption p2 | |
10 | Exam 1 | |||
11 | Section 5.1 | Recursion / searching (5.1-5.5) | Encryption p3 | |
12 | Section 5.6 through p. 285 | Searching / backtracking (5.6) | Encryption p4 | |
(skip implementation) | ||||
13 | Sections 7.1 and 7.2 | Sets and Maps (7.1-7.2) | Recursive queue p1 | |
14 | Sections 6.2 and 6.4 (through p. 322) | Trees and traversal (6.1-6.4) | Recursive queue p2 | |
15 | Section 6.4, p. 323-328 | Binary Search trees (6.4) | Peer evaluations | |
BREAK | ||||
16 | Section 7.3 through half of p. 374 | Hash tables | Search engine 1 | |
17 | Section 7.3, pp. 374-379 | Hash tables | Search engine 2 | |
18 | No reading currently planned! | Hash tables | Search engine 3 | |
19 | Section 6.5 though p. 337 | Heaps and priority queues | Hash tables 1 | |
20 | Exam 2 | |||
21 | Sections 8.2 and 8.4 | Sorting (8.1-8.5) | Hash tables 2 | |
22 | Section 8.7 | Sorting (8.7-8.8) | Hash tables 3 | |
23 | Section 8.9 | Sorting (8.8-8.9) | ||
24 | Section 9.1 | Sorting (8.9) / AVL Trees (9.1) | Heaps | |
25 | Section 9.2 through the top of p. 481 | AVL Trees (9.2) / 2-3 trees (9.4) | ||
26 | Sections 10 (prologue) and 10.1 | Graphs (10.1-10.3) | Sorting | |
27 | Section 10.4 through end of p. 568 | Implement graphs (10.1-10.3) | ||
28 | Section 10.5 | Traversing graphs (10.4-10.5) | AVL trees or graphs | |
Peer evaluations | ||||
EW | Exam 3 |