Course Schedule
This schedule is tentative and subject to change. The readings are from the course textbook(Koffman/Wolfgang). Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Reading | Slides/Code | Work |
|---|---|---|---|---|
| Week #1 Jun 4 |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop, etc.)Testing, Program Correctness (Errors, Exceptions,Debugging) |
Chapters 1.2, 4.1→4.3, Appendix A, 2.1, 2.6 |
|
Project #1
(Review) Out
(Wed/June 6) Quiz #1 (Fri/June 8) HW #1 Out (Mon/Jun 4) HW #1 Due (Thu/June 7) |
|
Week #2 Jun 11 |
Algorithm Complexity (Big-O, Critical Sections), Java Collections, Linear Data Structures (Linked lists, Stacks, Queues), Sets, Maps |
Chapters 2.8, 4, 5, 6, 9 |
Project #1 Due (Wed/June 13)
Project #2 (Collections) Out (Wed/June 13)
Quiz #2 (Fri/June 15) |
|
|
Week #3 Jun 18 |
Recursion, Generic Programming, Hashing, Hash Tables, Trees, Binary Search Trees |
Chapters 7, 8.1→8.5, 9.3→9.5 |
Project #2 Due (Wed/June 20) |
|
|
Week #4 Jun 25 |
Heaps, Priority Queues, Compression, Huffman Trees, Graph Traversals, Graph Implementations, Shortest Path |
Chapters 8.6, 10.8, 12 |
Project #3 (Binary Trees) Out (Mon/June 25)
Midterm #1 (Mon/June 25) |
|
|
Week #5 July 2 |
Minimum Spanning Trees GUIs, Java Support for GUIs, Inner Classes |
Appendix C, Chapter 1, 8 |
Project #3 Due (Tue/July 3)
Project #4 (Graphs) Out (Tue/July 3) |
|
|
Week #6 July 9 |
Software Development, Software Life Cycle, Software Process Models, Problem Specification & Design, Object-Oriented (OO) Design |
Chapter 1, Chapter 3 |
Project #4 Due (Wed/July 11)
Project #5 (GUI) Out (Wed/July 11)
Quiz #3 (Fri/July 13) |
|
|
Week #7 July 16 |
Unified Modeling Language (UML), Java Support for OOP
|
Chapter 3 Appendix B
|
Project #5 Due (Wed/July 18)
Project #6 (Text Generation) Out (Wed/July 18)
Midterm #2 (Thu/July 19) HW #2 Out (Thu/July 19) |
|
|
Week #8 July 23 |
Threads & Synchronization in Java, Networking, Networking Support in Java |
Online notes provided. |
Project #6 Due (Wed/July 25)
Project #7 (Design) Out (Wed/July 25)
HW #2 Due (Thu/July 26) HW #3 Out (Thu/July 26)
Quiz #4 (Fri/July 27) |
|
|
Week #9 July 30 |
Sorting, Algorithm Strategies,
Design Patterns, Exceptions |
Chapter 10, Chapter 2 |
Project #7 Due (Wed/Aug 1)
Project #8 (Networking) Out (Wed/Aug 1)
HW #3 Due (Thu/Aug 2)
|
|
|
Week #10 Aug 6 |
Effective Java, Advanced Trees, Final Exam Review |
Chapter 11 |
Quiz #5 (Mon/Aug 6) Project #8 Due (Wed/Aug 8)
Aug 10, 9:00 am-11:00 am
|

