CMSC 132 - Object-Oriented Programming II

Summer 2007

 

Course Schedule

 

This schedule is tentative and subject to change.  The readings are from the 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.

 

Week Topics Reading Slides/Code Work
Week #1

Jun 4

Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop, etc.)Testing, Program Correctness (Errors, Exceptions,Debugging)

Chapters 1.2, 4.14.3, Appendix A,

2.1, 2.6

JavaConstructs.pdf

JavaExamples01.zip

 

ProgramTesting.pdf

 

ProgramCorrectness.pdf

Debugging.zip

Project #1 (Review) Out

(Wed/June 6)

Quiz #1 (Fri/June 8)

HW #1 Out (Mon/Jun 4)

HW #1 Due (Thu/June 7)

Week #2

Jun 11
 

Algorithm Complexity (Big-O, Critical Sections), Java Collections, Linear Data Structures (Linked lists, Stacks, Queues), Sets, Maps

Chapters 2.8, 4, 5, 6, 9

AlgorithmicComplexityI.pdf

DataStructures.pdf

LinearStructures.pdf

LinearStructuresCode.zip

SetsMapsGenerics.pdf

SetsMapsGenericsCode.zip

AlgorithmicComplexityII.pdf

Project #1 Due

(Wed/June 13)

 

Project #2 (Collections) Out (Wed/June 13)

 

Quiz #2 (Fri/June 15)

Week #3

Jun 18
 

Recursion, Generic Programming, Hashing, Hash Tables, Trees, Binary Search Trees

Chapters 7,

8.18.5, 9.39.5

RecursiveAlgorithms.pdf

RecursiveAlgorithmsCode.zip

Hashing.pdf

TreesBST.pdf

PolymorphicList.zip

Project #2 Due

(Wed/June 20)

Week #4

Jun 25

Heaps, Priority Queues, Compression, Huffman Trees, Graph Traversals, Graph Implementations, Shortest Path

Chapters 8.6, 10.8, 12

HeapsPriorityQueues.pdf

CompressionHuffman.pdf

GraphTraversal.pdf

GraphShortestPath.pdf

Project #3 (Binary Trees) Out

(Mon/June 25)

 

Midterm #1 (Mon/June 25)

Week #5

July 2
 

Minimum Spanning Trees

GUIs, Java Support for GUIs, Inner Classes

Appendix C, Chapter 1, 8

GraphSpanningTree.pdf

InnerClasses.pdf

GUI.pdf

GUICode.zip

Project #3 Due

(Tue/July 3)

 

Project #4 (Graphs) Out

(Tue/July 3)

Week #6

July 9
 

Software Development, Software Life Cycle, Software Process Models, Problem Specification & Design, Object-Oriented (OO) Design

Chapter 1,

Chapter 3

SoftwareDevelopment.pdf

SoftwareProcessModels.pdf

ProblemSpecificationDesign.pdf

ObjectOrientedDesignI.pdf

ObjectOrientedDesignII.pdf

Project #4 Due

(Wed/July 11)

 

Project #5 (GUI) Out

(Wed/July 11)

 

Quiz #3 (Fri/July 13)

Week #7

July 16

Unified Modeling Language (UML), Java Support for OOP

 

Chapter 3

Appendix B

 

UML.pdf

JavaOOP.pdf

BagsMarkovTextGen.pdf

Project #5 Due

(Wed/July 18)

 

Project #6 (Text Generation) Out (Wed/July 18)

 

Midterm #2 (Thu/July 19)

HW #2 Out (Thu/July 19)

Week #8

July 23

Threads & Synchronization in Java, Networking, Networking Support in Java

Online notes provided.

Threads.pdf

Synchronization.pdf

Networking.pdf

JavaNetworking.pdf

JavaNetworkingCode.zip

Project #6 Due

(Wed/July 25)

 

Project #7 (Design) Out

(Wed/July 25)

 

HW #2 Due (Thu/July 26)

HW #3 Out (Thu/July 26)

 

Quiz #4 (Fri/July 27)

Week #9

July 30

Sorting, Algorithm Strategies,

Design Patterns, Exceptions

Chapter 10, Chapter 2

Sorting.pdf

AlgorithmStrategies.pdf

DesignPatternsI.pdf

DesignPatternsII.pdf

ExceptionsEffectiveJava.pdf

DesignPatterns.zip

Project #7 Due

(Wed/Aug 1)

 

Project #8 (Networking) Out

(Wed/Aug 1)

 

HW #3 Due (Thu/Aug 2)

 

Week #10

Aug 6

Effective Java, Advanced Trees, Final Exam Review

Chapter 11

AdvancedTrees.pdf

FinalSummary.pdf

Quiz #5 (Mon/Aug 6)

Project #8 Due

(Wed/Aug 8)

 

Final Exam: Friday

Aug 10, 9:00 am-11:00 am