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. We also include the code examples presented in class. Notice these examples are not available from the cvs repository.
Jim Henson (University of Maryland College Park Alumnus)
| Week | Topics | Reading | Slides/Code | Work |
|---|---|---|---|---|
| Schedule subject to change. | ||||
| Week #1 (Aug 29) |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop, etc.). | Chapters 1.2, 4.1 → 4.3, Appendix A |
Lec1 (1p,
6p)
Lec2 (1p, 6p) JavaExamples01.zip |
|
| Week #2 (Sept 3) |
Program Correctness (Errors, Testing, Debugging, Exceptions), Java Support for OOP |
Chapters 2.1, 2.6, 2.8 |
Lec3 (1p,
6p)
Lec4 (1p, 6p) |
|
| Week #3 (Sept 10) |
Algorithm Complexity (Benchmarks, Big-O, Critical Sections), Java Collections | Chapters 2.8, 4, 5, 6 |
Lec5 (1p,
6p) Lec6 (1p, 6p) LinearStructuresCode.zip |
|
| Week #4 (Sept 17) |
Linear Data Structures (Linked lists, Stacks, Queues), Sets, Maps, Hashing |
Chapters 7, 9 |
Lec7 (1p,
6p) Lec8 (1p, 6p) Lec9 (1p, 6p) SetsMapsCode.zip |
|
| Week #5 (Sept 24) |
Recursion, Trees, Binary Search Trees | Chapters 8.1→8.5, 9.3→9.5 |
Lec10 (1p,
6p) Lec11 (1p, 6p) RecursiveAlgorithmsCode.zip PolymorphicListCode.zip |
|
| Week #6 (Oct 1) |
Heaps, Priority Queues, Compression, Huffman Trees | Chapters 8.6, 10.8 |
Lec12 (1p,
6p) Lec13 (1p, 6p) PriorityQueueCode.zip |
|
| Week #7 (Oct 8) |
Graph Traversals, Graph Implementations, Shortest Path, Minimum Spanning Trees | Chapter 12 |
Lec14 (1p,
6p) Lec15 (1p, 6p) Lec16 (1p, 6p) |
|
| Week #8 (Oct 15) |
GUIs, Java Support for GUIs, Inner Classes | Chapters 1.4→1.7, 3, Appendix C |
Lec17 (1p,
6p) Lec18 (1p, 6p) GUICode.zip GUITablesCode.zip GUIMenusFileChooserCode.zip |
|
| Week #9 (Oct 22) |
Software Development, Software Life Cycle, Software Process Models, Problem Specification & Design | Chapter 1 |
Lec19 (1p,
6p) Lec20 (1p, 6p) Lec21 (1p, 6p) |
|
| Week #10 (Oct 29) |
Program Testing, Object-Oriented (OO) Design, Unified Modeling Language (UML) | Chapter 3, Appendix B |
Lec22 (1p,
6p) Lec23 (1p, 6p) Lec24 (1p, 6p) Lec25 (1p, 6p) |
|
| Week #11 (Nov 5) |
Threads & Synchronization in Java, Networking |
Lec26 (1p,
6p) Lec27 (1p, 6p) Lec28 (1p, 6p) BagsMarkovTextGen (1p, 6p) |
|
|
| Week #12 (Nov 12) |
Networking Support in Java, Sorting, Algorithm Strategies |
Lec29 (1p,
6p) Lec30 (1p, 6p) Lec31 (1p, 6p) JavaNetworkingCode.zip |
|
|
| Week #13 (Nov 19) |
Design Patterns |
Lec32 (1p,
6p) Lec33 (1p, 6p) |
|
|
| Week #14 (Nov 26) |
Regular Expressions & Automata, Effective Java |
TerpIdol (1p,
6p) NetExamples.zip Lec34 (1p, 6p) Lec35 (1p, 6p) SimpleWebServer.zip |
|
|
| Week #15 (Dec 3) |
Effective Java II, Advanced Trees (132H only), Proteomics (just for fun) |
Lec36 (1p,
6p) Lec37 (1p, 6p) FinalSummary (1p, 6p) |
|
|
| Week #16 (Dec 10) |
Final Exam Review |
|
||