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 | Supplemental Honors material |
|---|---|---|---|---|---|
| cmsc132 Schedule | |||||
| Week #1 (Jan 26) |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Comparable/Comparator Interface) | Chapters 1.2, 4.1 → 4.3, Appendix A | CourseIntro.pdf OOPAbstraction.pdf OOPAbstractionCode.zip JavaConstructs.pdf JavaConstructsCode.zip |
|
|
| Week #2 (Feb 2) |
Abstract Classes, Java Support for OOP, Testing, Program Correctness (Errors, Exceptions, Debugging) | Chapter 2.1 → 2.7, Appendix A | AbstractClasses.pdf JavaOOP.pdf JavaOOPCode.zip ProgramCorrectness.pdf |
|
|
| Week #3 (Feb 9) |
Testing, Program Correctness (Cont.), Inner Classes, Event-Driven Programming (GUI Intro) | Appendix C |
InnerClasses.pdf AnonymousClassesCode.zip GUI.pdf GUICode.zip |
|
|
| Week #4 (Feb 16) |
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 (Feb 23) |
Linear Data Structures (Cont.), Generic Programming, Hashing, Sets, Maps | Chapter 9 | LinkedListCode.zip Generics.pdf GenericsCode.zip Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip |
|
|
| Week #6 (Mar 2) |
Recursion, Trees, Binary Search Trees | Chapter 7, 8 | RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip TreesBST.pdf BinaryTreeCode.zip PolymorphicListCode.zip |
|
|
| Week #7 (Mar 9) |
Binary Search Trees (Cont.) | Chapter 8 |
|
JavaScript JavaScript Code | |
| Spring Break Week (March16→March20)-wedontprogram@we.will.be.at.the.beach.com | |||||
| Week #8 (Mar 23) |
File I/O, Heaps, Priority Queues | Appendix A | HeapsPriorityQueues.pdf JavaIO.pdf JavaIOCode.zip SimplifiedListImplementation.pdf |
|
|
| Week #9 (Mar 30) |
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 (Apr 6) |
Problem Specification & Design, Object-Oriented (OO) Design, Unified Modeling Language (UML) | Chapter 3, Appendix B |
ProgramTestingSEIV.pdf ObjectOrientedDesignSEV.pdf UMLSEVI.pdf |
|
|
| Week #11 (Apr 13) |
Threads & Synchronization | Threads.pdf ThreadsCode.zip ProgressBar.zip Synchronization.pdf SynchronizationCode.zip |
|
Advanced Concurrency | |
| Week #12 (Apr 20) |
Graphs, Graph Traversals, Shortest Path | Chapter 12 |
GraphTraversal.pdf
DijkstrasAlgorithm.pdf DijkstrasExample.pdf GraphImplementation.pdf PriorityQueueCode.zip |
|
SpanningTrees |
| Week #13 (Apr 27) |
Sorting, Algorithm Strategies, Design Patterns |
Chapter 10, 12 | Sorting.pdf AlgorithmStrategies.pdf DesignPatternsI.pdf PizzaDecoratorCode.zip |
|
|
| Week #14 (May 4) |
Design Patterns, Callbacks, Effective Java, Course Evaluations |
Callbacks.pdf DesignPatternsII.pdf VisitorCode.zip StateCode.zip EffectiveJavaI.pdf EffectiveJavaII.pdf |
Proj#5 Due (Wed/May 6) |
Advanced Trees.pdf |
|
| Week #15 (May 11) |
Effective Java, Miscellaneous, Final Exam Review | FinalSummary.pdf |
|
||