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 | Supplemental Honors material |
|---|---|---|---|---|---|
| cmsc132 Schedule | |||||
| Week #1 (Sep 2) |
Introduction to OOP (Abstraction, Encapsulation), Java Support for OOP | Chapters 1.2, 4.1 → 4.3, Appendix A | CourseIntro.pdf OOPAbstraction.pdf OOPAbstractionCode.zip |
|
|
| Week #2 (Sep 8) |
Java Language Features (Enumeration, Comparable/Comparator Interface), Abstract Classes, Java Support for OOP, Testing, Program Correctness (Errors, Exceptions, Debugging) | Chapter 2.1 → 2.7, Appendix A | JavaConstructs.pdf JavaConstructsCode.zip AbstractClasses.pdf JavaOOP.pdf JavaOOPCode.zip ProgramCorrectness.pdf |
|
|
| Week #3 (Sep 15) |
Testing, Program Correctness (Cont.), Inner Classes, Event-Driven Programming (GUI Intro) | Appendix C | InnerClasses.pdf GUI.pdf GUICode.zip |
|
|
| Week #4 (Sep 22) |
Algorithmic Complexity, Java Collections, Linear Data Structures (Linked lists, Stacks, Queues) | Chapters 4, 5, 6 |
AlgorithmicComplexity.pdf AlgorithmicComplexityII.pdf CollectionAbstractions.pdf LinearStructures.pdf LinearDataStructuresCode.zip |
|
|
| Week #5 (Sep 29) |
Linear Data Structures (Cont.), Generic Programming, Sets, Maps, Hashing | Chapter 9 | LinkedListCode.zip Generics.pdf GenericsCode.zip SetsMapsHashing.pdf SetsMapsCode.zip |
|
|
| Week #6 (Oct 6) |
Recursion, Trees, Binary Search Trees | Chapter 7, 8 | RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip TreesBST.pdf |
|
|
| Week #7 (Oct 13) |
Binary Search Trees (Cont.), Heaps, Priority Queues | Chapter 8 | HeapsPriorityQueues.pdf BinaryTreeCode.zip PolymorphicListCode.zip |
|
|
| Week #8 (Oct 20) |
File I/O | Appendix A | JavaIO.pdf JavaIOCode.zip SimplifiedListImplementation.pdf |
|
|
| Week #9 (Oct 27) |
Network Basics, Software Development, Software Life Cycle, Software Process Models | Chapters 1,2 | Networking.pdf JavaNetworkingCode.zip SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProblemSpecificationDesignSEIII.pdf |
|
|
| Week #10 (Nov 3) |
Problem Specification & Design, Object-Oriented (OO) Design, Unified Modeling Language (UML) | Chapter 3, Appendix B |
ProgramTestingSEIV.pdf ObjectOrientedDesignSEV.pdf UMLSEVI.pdf |
|
|
| Week #11 (Nov 10) |
Threads & Synchronization | Threads.pdf ThreadsCode.zip ProgressBar.zip Synchronization.pdf SynchronizationCode.zip |
|
Advanced Concurrency | |
| Week #12 (Nov 17) |
Graphs, Graph Traversals, Shortest Path | Chapter 12 |
GraphTraversal.pdf
DijkstrasAlgorithm.pdf GraphImplementation.pdf PriorityQueueCode.zip |
|
SpanningTrees |
| Week #13 (Nov 24) |
Sorting Thanksgiving Holiday (Thu/Nov 27 and Fri/Nov 28) |
Chapter 10, 12 | Sorting.pdf |
|
JavaScript JSCode |
| Week #14 (Dec 1) |
Algorithm Strategies, Design Patterns |
AlgorithmStrategies.pdf
DesignPatternsI.pdf
PizzaDecoratorCode.zip
DesignPatternsII.pdf VisitorCode.zip StateCode.zip |
|||
| Week #15 (Dec 8) |
Effective Java, Miscellaneous, Final Exam Review |
Callbacks.pdf EffectiveJavaI.pdf EffectiveJavaII.pdf AdvancedTrees.pdf (Only 132H) |
|
Search tree rotations for balancing | |