Week 1
Getting started with Java. ADTs.
Week 2
More Java. Linked lists.
- [ASSIGNMENT: due via Slack direct message 1/14] Partner feedback
- [READING: by 1/16] Sections 2.5 and 2.6 (linked lists) of Koffman & Wolfgang
- [ASSIGNMENT: nothing to hand in, but do by 1/16] More Java practice
- [ASSIGNMENT: due 11:59PM 1/20] Implementing linked lists
- [READING: before class 1/21] Queues Microsyllabus. This reading has been assigned by our visitor. After reading it, please read Section 4.5 of your textbook ("Queue Abstract Data Type").
Week 3
Queues & stacks.
Week 4
Time complexity & Big-O. Interfaces and lists, arrays, stacks, queues...
Week 5
Midterm exam. Intro to IntelliJ's debugger.
Week 6
Midterm break. Recursion and Binary Search Trees
- [READING: by 2/15] Sections 5.1, 5.2, 5.3, 5.4 (recursion) and 6.1, 6.2, 6.3, 6.4, 6.5 (binary trees).
That's a total of about 65 pages. We will, of course, discuss highlights in class.
- If you wish to redo the exam as discussed in class on Feb 13,
here it is: the in-class exam.
I'll accept submissions, typed and on paper, up through 9:40AM, Friday, Feb 15.
See the Feb 13 class notes for details.
- [ASSIGNMENT: due 11:59PM 2/18] Searching
Week 7
Recursion, sorting
- [LAB/ASSIGNMENT: due 11:59PM 2/23] BSTs and recursion
- [READING: by 2/25] Sections 8.1, 8.2, 8.3, 8.4, 8.6, and 8.9 (sorting). 27 pages total.
- Take a look at Sorter.java. Compile it,
run it, play with it, take a look at its code.
Week 8
Sorting, priority queues
- [LAB/ASSIGNMENT: due 11:59PM 2/27] Sorting algorithms
- [READING: by 2/27] Section 6.6 (priority queues)
- [READING: by 3/1] Sections 7.2, 7.3, and 7.4 (hash tables)
Week 9
Hash tables, graphs
- [FINAL PROJECT: due 5:00PM 3/18] Final project
- [READING: by 3/6] Sections 10.1, 10.2, 10.3, and 10.4 (graphs). If you wish, you can also read 10.5
to get a deeper idea of the ways graphs get used.
- [TAKEHOME EXAM: due 9:50AM 3/11] Takehome exam