Course Schedule
This schedule is tentative and subject to change. The readings are from the recommended 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. To import the examples follow the instructions provided at Importing Examples.
| Week | Topics | Reading | Slides/Code | Work | |
|---|---|---|---|---|---|
| cmsc132 Schedule | |||||
| Week #1 (May 31) |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop), Abstract Classes, Java Support for OOP | Chapters 1.2, 4.1→4.3, Appendix A |
CourseIntro.pdf
OOPAbstraction.pdf OOPAbstractionCode.zip JavaConstructs.pdf JavaConstructsCode.zip AbstractClasses.pdf JavaOOP.pdf JavaOOPCode.zip |
|
|
| Week #2 (Jun 6) |
Inner Classes, Program Correctness (Errors, Exceptions, Debugging)(Cont.), Testing, Event-Driven Programming (GUI Intro) | Chapters 2.1 → 2.7, Appendix A, C |
InnerClasses.pdf InnerClassesCode.zip GUI.pdf GUICode.zip ProgramCorrectness.pdf ExceptionCode.zip |
|
|
| Week #3 (Jun 13) |
Algorithmic Complexity, Linear Data Structures (Linked lists, Stacks, Queues), Generic Programming, Hashing | Chapters 4, 5, 6, 9 | AlgorithmicComplexityI.pdf AlgorithmicComplexityII.pdf CollectionAbstractions.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip LinkedListCode.zip Generics.pdf GenericsCode.zip Hashing.pdf HashingCode.zip |
|
|
| Week #4 (Jun 20) |
Sets, Maps, Recursion, Trees, Binary Search Trees | Chapters 7, 8, 9 | SetsMaps.pdf SetsMapsCode.zip RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip TreesBST.pdf BinaryTreeCode.zip PolymorphicListCode.zip |
|
|
| Week #5 (Jun 27) |
BST Cont., File I/O, Heaps, Priority Queues | Chapters 1,2, 10.8 Appendix A |
JavaIO.pdf JavaIOCode.zip HeapsPriorityQueues.pdf |
|
|
| Week #6 (Jul 4) |
Network Basics, Software Life Cycle, Software Process Models, Problem Specification & Design | Chapters 1,2,3, Appendix B |
Networking.pdf JavaNetworkingCode.zip SimplifiedListImplementation.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProblemSpecificationDesignSEIII.pdf |
|
|
| Week #7 (Jul 11) |
Testing, Object-Oriented (OO) Design, Threads & Synchronization | ProgramTestingSEIV.pdf ObjectOrientedDesignSEV.pdf Threads.pdf ThreadsCode.zip ProgressBar.zip Synchronization.pdf SynchronizationCode.zip |
|
||
| Week #8 (Jul 18) |
Graphs, Graph Traversals, Shortest Path, Algorithm Strategies, Sorting | Chapter 12.1→12.6 |
GraphTraversal.pdf
DijkstrasAlgorithm.pdf
DijkstrasExample.pdf
GraphImplementation.pdf
PriorityQueueCode.zip
AlgorithmStrategies.pdf
Sorting.pdf
|
|
|
| Week #9 (Jul 25) |
Design Patterns, Effective Java, Course Evaluations | Chapter 10 |
Callbacks.pdf DesignPatternsI.pdf PizzaDecoratorCode.zip DesignPatternsII.pdf VisitorCode.zip StateCode.zip EffectiveJavaI.pdf EffectiveJavaII.pdf AdvancedConcurrency.pdf (Not part of final exam) |
|
|
| Week #10 (Aug 1) |
Miscellaneous (Spanning Trees, Huffman, Advanced Trees, Regular Expressions, are not part of the final exam) Review | GraphSpanningTree.pdf CompressionHuffman.pdf AdvancedTrees.pdf RegularExpressions.pdf FinalSummary.pdf |
|
||