Object Oriented Programming
Spring 2001


Marc L. Smith 
Ph.D., Computer Science 
School of Electrical Engineering and Computer Science 
University of Central Florida 
Orlando, FL 32816-2362

email: mlsmith@cs.ucf.edu

Meeting Times and Place: W 19:00 to 21:45 in CL1 104
Office Hours:W 17:30 to 18:30; R 19:00 to 21:00; CSB 207
    Object-Oriented Software Development Using Java
        Xiaoping Jia, Addison-Wesley, 2000.
    The Java Programming Language, Third Edition
        Ken Arnold, James Gosling, David Holmes, Addison-Wesley, 2000
    Thinking in Java, 2nd Edition,
        Bruce Eckel, Prentice Hall, 2000
        also on-line at http://www.eckelobjects.com/
    The Java Tutorial Second Edition: Object-Oriented Programming for the Internet
        Mary Campione, Kathy Walrath, Addison-Wesley, 1998
        also on-line at http://java.sun.com/docs/books/tutorial/index.html
Design Patterns:  Elements of Reusable Object-Oriented Software
        Gamma, Helm, Johnson & Vlissides, Addison-Wesley, 1995

Free Software IDE:

JBuilder 4 -- http://www.borland.com/jbuilder/foundation/ (you need this)

JBuilder4 Documentation and Samples link (but don't forget this)

    I strongly recommend you get JBuilder 4 Foundation. It's free and it's very nice.
    I hope all of you can run this at home, rather than in the labs.
    JBuilder also can be configured to create Spotlets, Java programs that run on Palms.

2 Tests: about 30% of grade
3 Programming Assignments: about 30% of grade
Final Exam: about 40% of grade

Assignments policy:
(!) Late projects will not be accepted.
(!) Don't forget to put your names on the assignments

Resources: Overheads, Java Tutorial, Java at Sun, Java Madness (help with JBuilder)

Tentative Syllabus
1 (1.10)
Course requirements; Guiding Principles; Object versus Process Oriented 

Why and What: OO Thinking; Basic vocabulary and concepts; 

J 1,2
S 1-42
2 (1.17)
Encapsulation; Polymorphism; Inheritance; Classes; Objects ; 
J 1,3

S 42-78

3 (1.24)
Elements of Java
JBuilder4 Demo 
As promised, here's sample Java code for Vectors and Iterators
J 3

S 79-102

4 (1.31)
Classes; Objects; The Java Language / Culture

As promised, here's the .zip file for Program 1's user interface; it's a the whole JBuilder project, so download it, unzip it, and open the .jpr file in JBuilder.

J 3

S 103-103

5 (2.07)
Program 1 due 
We reviewed object-oriented principles, and built an example JApplet in JBuilder, called helpme, that demonstrates many concepts required in the first programming assignment.  Download helpme.zip and take a look.
J 3

S 103-103

6 (2.14)
Here's a solution to Program 1.  Understanding this program is important review for the first test.
Program 2 assigned.
Review for Test 1.  Click here for review topics.
J 3

S 103-153

7 (2.21)
Test 1 
8 (2.28)
Program 1 graded
Test 1 graded
Added a change to Program 2, a new abstract class in our shapes hierarchy, to override toString() method for printing/debugging convenience.  Make sure you implement the new requirements!
Reviewed concepts from Ch. 3 in preparation for Ch. 4!
(Withdrawal:  Friday, March 2, 2001 -- after this class)
J 3 (Review)

S  154 - 168

9 (3.07)
Program 2 due

Begin Ch. 4 topics.

 J 4

S 169 - 184

10 (3.14)
Spring Break!
11 (3.21)
Program 2 really due! 
Here's a solution to Program 2
We spent a lot of time discussing the difference between deep and shallow copying, the cloneable interface (which is a marker interface), and the clone() method.  Equality versus equivalence.  We discussed threads, and the two ways to use threads in a Java program, by extending the Thread class and overriding the run() method, or by implementing the Runnable interface.  We also discussed the I/O framework from chapter 6, including reading from and writing to files.
  J 4,6
S 185 - 213
12 (3.28)
Program 2 graded
Program 3 assigned
Review for Test 2.  Click here for review topics.
13 (4.04)
Test 2
Here's a sample Java application that reads integers from one file and writes the out to another file.  This sample should help you do file I/O in Program 3.
14 (4.11)
Test 2 graded
15 (4.18)
Program 3 due
Review for Final Exam:  we drew pictures depicting the heap from program 3, as objects were created, cloned, modified, and compared using = =, .equals(), and .hashCode().

As promised, here are the solution keys to Test 1 and Test 2.
Here's a solution to Program 3.

*** Here is a list of promises for the Final Exam ***

16 (4.25)
Program 3 graded
Final Exam Wednesday, April 25, 19:00-21:45

Note 1: Assignment deadlines must be adhered.
Note 2: Notes and support material will be on-line. Visit the course web site regularly: http://www.cs.ucf.edu/courses/cop3930-OOP/Smith

Marc L. Smith, mlsmith@cs.ucf.edu -- Last Updated April 24, 2001