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 | 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 7) |
Program Correctness (Errors, Exceptions, Debugging)(Cont.), Testing Inner Classes, Event-Driven Programming (GUI Intro) | Chapters 2.1 → 2.7, Appendix A, C |
ProgramCorrectness.pdf
ExceptionCode.zip
InnerClasses.pdf InnerClassesCode.zip GUI.pdf GUICode.zip |
|
|
| Week #3 (Jun 14) |
Algorithmic Complexity, Linear Data Structures (Linked lists, Stacks, Queues), Generic Programming | Chapters 4, 5, 6, 9 | AlgorithmicComplexityI.pdf AlgorithmicComplexityII.pdf PNP.pdf CollectionAbstractions.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip LinkedListCode.zip Generics.pdf GenericsCode.zip |
|
|
| Week #4 (Jun 21) |
Hashing, Sets, Maps, Recursion, Trees, Binary Search Trees | Chapters 7, 8, 9 | Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip TreesBST.pdf BinaryTreeCode.zip PolymorphicListCode.zip |
|
|
| Week #5 (Jun 28) |
BST Cont. Heaps, Priority Queues, File I/O | Chapters 1,2, 10.8 Appendix A |
HeapsPriorityQueues.pdf JavaIO.pdf JavaIOCode.zip JavaScript.pdf JavaScriptCode.zip |
|
|
| Week #6 (Jul 5) |
Network Basics, 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 |
Networking.pdf JavaNetworkingCode.zip SimplifiedListImplementation.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProblemSpecificationDesignSEIII.pdf ProgramTestingSEIV.pdf ObjectOrientedDesignSEV.pdf UMLSEVI.pdf |
|
|
| Week #7 (Jul 12) |
Threads & Synchronization, Graphs |
Threads.pdf
ThreadsCode.zip
ProgressBar.zip
Synchronization.pdf
SynchronizationCode.zip
GraphTraversal.pdf
|
|
||
| Week #8 (Jul 19) |
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 26) |
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 2) |
Miscellaneous (Spanning Trees, Huffman, Advanced Trees, Regular Expressions, Advanced Concurrency are not part of the final exam), Review | GraphSpanningTree.pdf CompressionHuffman.pdf AdvancedTrees.pdf RegularExpressions.pdf AdvancedConcurrency.pdf FinalSummary.pdf |
|
||