Course Schedule
This schedule is tentative and subject to change. 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.
| Week | Topics | Slides/Code | Work |
|---|---|---|---|
| CMSC132 (Secs 040x) Schedule | |||
| Week #1 (Aug 31) |
Course Intro, Introduction to OOP (Abstraction, Encapsulation), Abstract Classes |
CourseIntro.pdf OOPAbstration.pdf OOPAbstrationCode.zip AbsClassesModifiers.pdf AbsClassesModifiersCode.zip |
Eclipse installation |
| Week #2 (Sep 7) |
Java Language Features (Enumeration, Comparable/Comparator Interface)(I/II) | JavaConstructsI.pdf JavaConstructsICode.zip JavaConstructsII.pdf JavaConstructsIICode.zip | P1 Out (Wed) |
| Week #3 (Sep 14) |
Levels of Copying, Cloning, Constructor/Destructor, Initialization Blocks, OO Design Intro, Inner Classes, Event-Driven Programming (GUI) | OODesign.pdf InnerClasses.pdf InnerClassesCode.zip GUI.pdf GUICode.zip |
Q1 (Wed)
P1 Due (Thu) |
| Week #4 (Sep 21) |
Event-Driven Programming (cont.), Testing/Program Correctness (Errors, Exceptions, Debugging), Algorithmic Complexity I, (UML Lite (Lab)) | ProgramCorrectness.pdf ProgramCorrectnessCode.zip AlgorithmicComplexityI.pdf |
P2 Out (Mon) |
| Week #5 (Sep 28) |
Generic Programming, Collections, Linear Data Structures (Linked lists, Stacks, Queues), Intro to Hashing | Generics.pdf GenericsCode.zip Collections.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip |
P2 Due (Mon) Q2 (Wed) P3 Out (Fri) |
| Week #6 (Oct 5) |
Hashing and Sets/Maps, Algorithmic Complexity II | Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip AlgorithmicComplexityII.pdf |
Midterm #1 (Wed) |
| Week #7 (Oct 12) |
Effective Java, Recursion | EffectiveJava.pdf RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip | Q3 (Wed) |
| Week #8 (Oct 19) |
Trees, Polymorphic Lists/Trees | Trees.pdf LectureBinaryTreeCode.zip PolymorphicListsTrees.pdf LecturePolymorphicListCode.zip |
P3 Due (Mon) P4 Out (Fri) |
| Week #9 (Oct 26) |
Heaps/Priority Queues, File I/O, Network Basics, Software Life Cycle | HeapsPriorityQueues.pdf JavaIO.pdf JavaIOCode.zip SimplifiedListImplementation.pdf SoftwareDevelopmentSEI.pdf | |
| Week #10 (Nov 2) |
Software Process Models, Problem Specification & Design, Testing | SoftwareProcessModelsSEII.pdf ProbSpecificationSoftArchSEIII.pdf ProgramTestingSEIV.pdf |
P4 Due (Tue) P5 Out (Tue) Q4 (Wed) |
| Week #11 (Nov 9) |
Threads | ThreadsI.pdf ThreadsICode.zip ThreadsII.pdf ThreadsIICode.zip |
P5 Due (Tue) Midterm #2 (Fri) |
| Week #12 (Nov 16) |
Synchronization I/II, Graphs Intro. | SynchronizationI.pdf SynchronizationICode.zip SynchronizationII.pdf SynchronizationIICode.zip GraphsTraversal.pdf | P6 Out (Mon) |
| Week #13 (Nov 23) |
Graph Traversals, Shortest Paths, Dijkstras, Graph Implementation |
GraphImplementation.pdf DijkstrasAlgorithm.pdf PriorityQueueCode.zip DijkstrasExample.pdf | Thanksgiving Holiday |
| Week #14 (Nov 30) |
Algorithm Strategies, Design Patterns(I/II) |
Callbacks.pdf
AlgorithmStrategies.pdf
DesignPatternsI.pdf
PizzaDecoratorCode.zip
DesignPatternsII.pdf VisitorCode.zip StateCode.zip |
P6 Due (Tue) P7 Out (Mon) Q5 (Wed) |
| Week #15 (Dec 7) |
Sorting, Advanced Concurrency, Advanced Tree Structures, Final Exam Review |
Sorting.pdf AdvancedConcurrency.pdf AdvancedTreeStructures.pdf MiscReview.pdf |
P7 Due (Wed) Course Evaluations Last Day of Classes (Fri Dec 11) Final Exam (Tue Dec 15, 4pm - 6pm) |