The topics and readings are subject to change as the semester progresses, as are assignment due dates (though they are less likely to change). Exam dates will not change.
Reading assignments are from Dale, Joyce, and Weems, Object-Oriented Data Structures Using Java, third edition.
Lecture meetings are Tuesdays and Thursdays in Morrill I room N375 (the auditorium); Section 1 (Marc) meets 10:00-11:15 a.m., and Section 2 (John) meets 8:30-9:45 a.m.
Discussion meetings occur in LGRT room 223 on various times on Mondays, as listed on SPIRE. Discussion attendance is required and will form a portion of the final grade.
PART I: Overview, Abstract Data Types, and Stacks | ||||
---|---|---|---|---|
Date | Topic(s) | Readings | Assignments | |
Tue, Jan 20 | L01 | Course Overview: Administration, Software Engineering | 1.1 | |
Thu, Jan 22 | L02 | Course Overview: Java and Data Structures | 1.2-1.4 | |
Mon, Jan 26 | D01 | Introduction to Eclipse | ||
Tue, Jan 27 | SNOW DAY | |||
Thu, Jan 29 | L03 | Course Overview: Data Structures and Analysis | 1.5-1.7 | Project 0 due |
Mon, Feb 2 | End of Add/Drop period | |||
Mon, Feb 2 | D02 | SNOW DAY — homework assigned | ||
Tue, Feb 3 | SNOW DAY | |||
Thu, Feb 5 | L04 | StringLogs: Specifying, One Implementation | 2.1-2.4 | Project 1 due |
Mon, Feb 9 | D03 | SNOW DAY — Dog teams discussion as homework | D02 homework due | |
Tue, Feb 10 | L05 | StringLogs: Another Implementation, A Case Study | 2.5-2.8 | |
Thu, Feb 12 | L06 | Stacks: The Abstraction | 3.1-3.3 | Project 2 due |
Mon, Feb 16 | NO CLASS (Presidents' Day) | |||
Tue, Feb 17 | D04 | (Monday class schedule) — Sorting with Two Stacks | D03 homework due | |
Thu, Feb 19 | L07 | Stacks: Array
Implementation; Application: Well-Formed Expressions |
3.4-3.6 | |
Thu, Feb 19 | X01 | Unit Exam #1, 7-9 p.m., Marcus 131 | ||
Mon, Feb 23 | D05 | Stacks: Linked Implementation | 3.7 | |
Tue, Feb 24 | L08 | Stacks: Evaluating Expressions | 3.8 | Project 3 due |
PART II: Recursion, Queues, and Lists | ||||
Date | Topic(s) | Readings | Assignments | |
Thu, Feb 26 | L09 | Thinking Recursively | 4.1–4.4 | |
Mon, Mar 2 | D06 | Fibonacci Numbers | ||
Tue, Mar 3 | L10 | Thinking About Recursion | 4.5–4.7 | |
Thu, Mar 5 | LAST DAY TO DROP WITH W OR CHANGE TO PASS/FAIL | |||
Thu, Mar 5 | L11 | End of Recursion; Queues: The Abstraction | 5.1, 5.2 | Projects 4 and 5 due |
Mon, Mar 9 | D07 | Playing with Deques | ||
Tue, Mar 10 | L12 | Queues: Two Implementations | 5.3–5.6 | |
Thu, Mar 12 | L13 | Concurrency, Interference, and Synchronization | 5.7, 5.8 | Project 6 due |
Mon, Mar 23 | D08 | Binary Search | ||
Tue, Mar 24 | L14 | Lists: The Abstraction and Array Implementation | 6.1–6.4 | |
Wed, Mar 25 | X02 | Unit Exam #2, 7-9 p.m., Marcus 131 | ||
Thu, Mar 26 | L15 | Lists: Linked Implementation | 6.7 | |
Fri, Mar 27 | Project 7 due | |||
Mon, Mar 30 | D09 | Doubly-linked Lists | 7.2 | |
PART III: Yet More Data Structures, Sorting and Searching | ||||
Date | Topic(s) | Readings | Assignments | |
Tue, Mar 31 | L16 | Binary Search Trees | 8.1-8.4 | |
Thu, Apr 2 | L17 | Implementing Binary Search Trees | 8.5-8.9 | Project 8 due |
Mon, Apr 6 | D10 | Traversing Binary Trees | ||
Tue, Apr 7 | L18 | Using Binary Search Trees | 8.10 | |
Thu, Apr 9 | L19 | Heaps and Priority Queues | 9.1, 9.2 | Project 9 due |
Mon, Apr 13 | D11 | Unit Testing a Graph Package | ||
Tue, Apr 14 | L20 | Graphs | 9.3-9.5 | |
Thu, Apr 16 | L21 | Searching a Graph | 9.6 | Project 10 due |
Mon, Apr 20 | NO CLASS (Patriots' Day) | |||
Tue, Apr 21 | L22 | Sorting Algorithms | 10.1-10.3 | |
Wed, Apr 22 | D12 | Sorting and Lower Bounds | ||
Thu, Apr 23 | L23 | More Sorting, Searching, and Selecting | 10.4, 10.5 | |
Thu, Apr 23 | X03 | Unit Exam #3, 7-9 p.m., Marcus 131 | Project 11 due | |
Mon, Apr 27 | D13 | Hash Functions | ||
Tue, Apr 28 | L24 | Selecting, Hash Tables | ||
Thu, Apr 30 | D14 | (Monday class schedule) Evaluations | Project 12 due | |
Mon, May 4 | FINAL EXAM, 6:00-8:00
p.m., Totman Gym. Note the non-standard time! |