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.
Jim Henson (University of Maryland College Park
Alumnus)
| Week | Topics | Reading | Slides/Code | Work | |
|---|---|---|---|---|---|
| cmsc132 Schedule | |||||
| Week #1 (Jun 1) |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop), Abstract Classes, Java Support for OOP, Program Correctness | 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 ProgramCorrectness.pdf |
|
|
| Week #2 (Jun 8) |
Program Correctness (Errors, Exceptions, Debugging)(Cont.), Testing Inner Classes, Event-Driven Programming (GUI Intro) | Chapters 2.1 → 2.7, Appendix A, C |
InnerClasses.pdf AnonymousClassesCode.zip GUI.pdf GUICode.zip |
|
|
| Week #3 (Jun 15) |
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 22) |
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 29) |
BST Cont. Heaps, Priority Queues, File I/O, Network Basics, Software Development | Chapters 1,2, 10.8 Appendix A |
HeapsPriorityQueues.pdf JavaIO.pdf JavaIOCode.zip Networking.pdf JavaNetworkingCode.zip |
|
|
| Week #6 (Jul 6) |
Software Life Cycle, Software Process Models, Problem Specification & Design, Object-Oriented (OO) Design, Unified Modeling Language (UML Class Diagrams) | Chapters 1,2,3, Appendix B | SimplifiedListImplementation.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProblemSpecificationDesignSEIII.pdf ProgramTestingSEIV.pdf ObjectOrientedDesignSEV.pdf UMLSEVI.pdf |
|
|
| Week #7 (Jul 13) |
Threads & Synchronization, Graphs |
Threads.pdf
ThreadsCode.zip
ProgressBar.zip
Synchronization.pdf
SynchronizationCode.zip
GraphTraversal.pdf
|
|
||
| Week #8 (Jul 20) |
Graphs, Graph Traversals, Shortest Path, Algorithm Strategies | Chapter 12.1→12.6 |
DijkstrasAlgorithm.pdf
DijkstrasExample.pdf
GraphImplementation.pdf
PriorityQueueCode.zip
AlgorithmStrategies.pdf
|
|
|
| Week #9 (Jul 27) |
Sorting, Design Patterns, Effective Java, Course Evaluations | Chapter 10 |
Sorting.pdf Callbacks.pdf DesignPatternsI.pdf PizzaDecoratorCode.zip DesignPatternsII.pdf VisitorCode.zip StateCode.zip EffectiveJavaI.pdf EffectiveJavaII.pdf |
|
|
| Week #10 (Aug 3) |
Miscellaneous (Huffman, Spanning, and Advanced Trees are not part of the final exam), Review | AdvancedTrees.pdf GraphSpanningTree.pdf CompressionHuffman.pdf FinalSummary.pdf |
|
||