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 (Jan 25) |
Course Intro, Introduction to OOP (Abstraction, Encapsulation), Abstract Classes |
CourseIntro.pdf OOPAbstration.pdf OOPAbstrationCode.zip AbsClassesModifiers.pdf AbsClassesModifiersCode.zip |
Eclipse installation |
| Week #2 (Feb 1) |
Java Language Features (Enumeration, Comparable/Comparator Interface)(I/II), Levels of Copying, Cloning, Constructor/Destructor, Initialization Blocks | JavaConstructsI.pdf JavaConstructsICode.zip JavaConstructsII.pdf JavaConstructsIICode.zip | P1 Out (Wed) |
| Week #3 (Feb 8) |
OO Design Intro, Inner Classes | OODesign.pdf InnerClasses.pdf InnerClassesCode.zip |
Q1 (Wed) P1 Due (Thu) |
| Week #4 (Feb 15) |
Event-Driven Programming, GUI, Algorithmic Complexity I, Snow Day Monday | GUI.pdf GUICode.zip AlgorithmicComplexityI.pdf |
P1 Due (Wed) P2 Out (Wed) |
| Week #5 (Feb 22) |
Testing/Program Correctness, Generic Programming, Collections, Linear Data Structures (Linked lists, Stacks, Queues) | ProgramCorrectness.pdf ProgramCorrectnessCode.zip Generics.pdf GenericsCode.zip Collections.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip |
Q2 (Wed) P2 Due (Fri) P3 Out (Fri) |
| Week #6 (Feb 29) |
Hashing and Sets/Maps, Algorithmic Complexity II | Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip AlgorithmicComplexityII.pdf |
Midterm #1 (Wed) |
| Week #7 (Mar 7) |
Recursion | RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip JSIntro.pdf JSIntroCode.zip |
P3 Due (Wed) |
| Spring Break 2016 (Mar 14-Mar 18) | |||
| Week #8 (Mar 21) |
Trees, Polymorphic Lists/Trees, Simplified List Implementation | Trees.pdf LectureBinaryTreeCode.zip PolymorphicListsTrees.pdf LecturePolymorphicListCode.zip | P4 Out (Thu) |
| Week #9 (Mar 28) |
Heaps/Priority Queues, File I/O, Network Basics | HeapsPriorityQueues.pdf JavaIO.pdf JavaIOCode.zip |
Q3 (Wed) |
| Week #10 (Apr 4) |
Effective Java, Software Life Cycle, Software Process Models, Problem Specification & Design, Testing | EffectiveJava.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProbSpecificationSoftArchSEIII.pdf ProgramTestingSEIV.pdf |
P4 Due (Tue) P5 Out (Tue) |
| Week #11 (Apr 11) |
Threads | ThreadsI.pdf ThreadsICode.zip ThreadsII.pdf ThreadsIICode.zip | Midterm #2 (Fri) |
| Week #12 (Apr 18) |
Synchronization I/II, Graphs Intro. | SynchronizationI.pdf SynchronizationICode.zip SynchronizationII.pdf SynchronizationIICode.zip GraphsTraversal.pdf |
P6 Out (Mon)
P5 Due (Wed) |
| Week #13 (Apr 25) |
Graph Traversals, Shortest Paths, Dijkstras, Graph Implementation |
GraphImplementation.pdf DijkstrasAlgorithm.pdf PriorityQueueCode.zip DijkstrasExample.pdf |
P6 Due (Fri) Q4 (Wed) P7 Out (Fri) |
| Week #14 (May 2) |
Sorting, Algorithm Strategies, Design Patterns(I/II) |
Callbacks.pdf
AlgorithmStrategies.pdf
DesignPatternsI.pdf
PizzaDecoratorCode.zip
DesignPatternsII.pdf VisitorCode.zip StateCode.zip Sorting.pdf |
|
| Week #15 (May 9) |
Final Exam Review | MiscReview.pdf JavaWebToyWebServer.zip |
P7 Due (Mon) Course Evaluations Last Day of Classes (Tue May 10) Final Exam (Fri May 13, 4pm - 6pm) |