| Week | Topics | Slides | Work | 
|---|---|---|---|
| Week #1 (Jan 25) | Course Intro, Classes Review, Abstraction/Encapsulation, Enumerated Types, Comparable, Memory Maps (lab) | CourseIntro.pdf (Mon) OOPAbstraction.pdf (Mon/Wed) OOPAbstractionCode.zip JavaConstructsI.pdf(Wed/Fri) JavaConstructsICode.zip For lecture videos see note at the top of this page Lab Code: Lab1Week1Code.zip | Eclipse installation P1 Out (Thu) | 
| Week #2 (Feb 1) | Inheritance, Recursive Algorithnms, Debugger, Memory Maps (lab) | InheritanceIntro.pdf (Mon) InheritanceIntroCode.zip Inheritance.pdf (Mon/Wed) InheritanceCode.zip RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip For lecture videos see note at the top of this page Lab Code: EclipseDebuggerCode.zip | P1 Due (Thu) P2 Out (Thu) | 
| Week #3 (Feb 8) | Abstract Classes, Testing, Correctness, Exceptions | AbstractClassesInheritance.pdf (Mon) AbstractClassesInheritanceCode.zip Exceptions.pdf (Wed/Fri) ExceptionsCode.zip TestingCorrectness.pdf(Fri) TestingCorrectnessCode.zip For lecture videos see note at the top of this page Lab Code: Lab1Week3Code.zip | Debugging Quiz (Wed) P2 Due (Thu) P3 Out (Thu) | 
| Week #4 (Feb 15) | Comparator Interface (Lab), Cloning, Constructor/Destructor, Initialization Blocks Levels of Copying, Nested Classes, OO Design Intro, UML (lab) | JavaConstructsII.pdf (Mon) JavaConstructsIICode.zip NestedClasses.pdf (Wed/Fri) NestedClassesCode.zip OODesign.pdf For lecture videos see note at the top of this page Lab Code: Lab1Week4Code.zip Lab Slides (see lab video): UMLIntro.pdf ReviewQuestionsCopyingNestedClassesDesign.pdf | P3a Due (Wed) P3 Due (Sun) | 
| Week #5 (Feb 22) | Lambda Expressions, Algorithmic Complexity I, Event-Driven Programming, JavaFX | LambdaExpressions.pdf (Mon) LambdaExpressionsCode.zip AlgorithmicComplexityI.pdf (Mon/Fri) AlgorithmicComplexityICode.zip GUIFX.pdf (Fri) GUIFX Code available at JavaFX For lecture videos see note at the top of this page | Exam #1 (Wed) P4 Out (Thu) | 
| Week #6 (Mar 1) | Generic Programming, Collections, Linear Data Structures, Dynamic System/State Design Patterns (Lab) | Generics.pdf (Mon) GenericsCode.zip Collections.pdf (Wed) LinearDataStructures.pdf (Wed/Fri) LinearDataStructuresCode.zip RestrictedAbstractions.pdf (Fri) Lab Code: StatePatternDynSystemsCode.zip Lab Slides (see lab video): StatePatternDynSystems.pdf For lecture videos see note at the top of this page | P5 Out (Thu) P4 Due (Sun) | 
| Week #7 (Mar 8) | File I/O, Singleton and Decorator Design Patterns | JavaIO.pdf (Mon/Wed) JavaIOCode.zip SingletonDecorator.pdf (Wed/Fri) SingletonDecoratorCode.zip For lecture videos see note at the top of this page | Quiz (Mon) P5a (Thu) P5 Due (Sun) | 
| Spring Break 2021 (Mar 14-Mar 21) | |||
| Week #8 (Mar 22) | Hashing, Sets/Maps, Extra/Dummy Node Approach (Lab), Network Basics (Lab) | Hashing.pdf (Mon/Wed) HashingCode.zip SetsMaps.pdf (Wed/Fri) SetsMapsCode.zip Lab Code:NetworkingCode.zip Lab Slides (see lab videos): SimplifiedListImplementation.pdf, Networking.pdf For lecture videos see note at the top of this page | Mid-Term Grades Due (Tue) | 
| Week #9 (Mar 29) | Algorithmic Complexity II, Trees | AlgorithmicComplexityII.pdf (Mon) Trees.pdf (Fri) LectureBinarySearchTreeCode.zip For lecture videos see note at the top of this page | Exam #2 (Wed) P6 Out (Thu) | 
| Week #10 (Apr 5) | Heaps, Priority Queues, Threads | HeapsPriorityQueues.pdf (Mon) For lecture videos see note at the top of this page ThreadsI.pdf (Wed) ThreadsICode.zip ThreadsII.pdf (Wed/Fri/Mon (Week11)) ThreadsIICode.zip Lab Code: RegExpDateCode.zip For lecture videos see note at the top of this page | P7 Out (Thu) P6 Due (Sun) | 
| Week #11 (Apr 12) | Threads, Marker/Observer/Design Patterns, Synchronization I | IteratorMarkerObserverPatterns.pdf (Mon) SynchronizationI.pdf (Mon/Wed/Fri) SynchronizationICode.zip For lecture videos see note at the top of this page | P7a Due (Thu) Quiz (Wed) | 
| Week #12 (Apr 19) | Synchronization II, Graphs Intro/Graph Traversals | SynchronizationII.pdf (Mon/Wed) SynchronizationIICode.zip GraphsTraversal.pdf (Wed/Fri) For lecture videos see note at the top of this page | P7 Due (Mon) P8 Out (Tue) | 
| Week #13 (Apr 26) | Dijkstra's Alg., Graph Implementation, Sorting | DijkstrasAlgorithm.pdf (Mon) DijkstrasExample.pdf PriorityQueueCode.zip GraphImplementation.pdf Sorting.pdf For lecture videos see note at the top of this page | P8a Due (Wed) P9 Out (Thu) P8 Due (Sun) | 
| Week #14 (May 3) | Algorithm Strategies, Effective Java, Software Development, Advanced Tree Structures | AlgorithmStrategies.pdf EffectiveJava.pdf SoftwareDevelopment.pdf For lecture videos see note at the top of this page | Quiz (Mon) P9a Due (Fri) | 
| Week #15 (May 10) | Final Exam Review | AdvancedTreeStructures.pdf All Slides/Examples For lecture videos see note at the top of this page | P9 Due (Mon) Last Day of Classes (Tue, May 11) Final Exam (Fri, May 14) |