CSC 520.501 -
Advanced Object Oriented Programming, Grim 307, Th 6-8:50 PM.
Dr. Dale
E. Parson
Fall, 2010 Office Hours:
M 11-12, Tu 4:15-5:45, W 11-12, Th 4:15-5:45,
and
by
appointment
First
day
handout (syllabus that is specific to this
semester).
Instructions for setting up and verifying your Java compile / test
environment in MS Word
and PDF format.
LECTURE NOTES AND HANDOUTS
Week 13 handout
on Object Closures, Metaclasses, and Java Data Objects (JDO)
Object-Oriented Databases.
Week 7
(October 14) Lecture Notes on UML diagramming techniques and
deployment issues.
Week 5
(September 30) Lecture Notes on Generic Classes and some
Inheritance Issues from Meyer Chapters 10 and 16.
Week 4
(September 23) Lecture Notes on Design by Contract, Java
Exceptions, Eventing, Finding the Classes, Design Patterns and the
Kitchen Sink!
Example code is at
/export/home/faculty/parson/JavaLang on
bill.kutztown.edu
Eclipse
UML Modeling handout for September 9, 2010.
Using
Interface
Inheritance
to
Structure
the
Data
Structures
Course gives
some initial examples of O-O in action.
Apprenticeship
in
Undergraduate
Java
Programming leaves off where we are picking
up. Students in CSC 520 serve as architects for this code base.
Algorithmic
Musical
Improvisation
from
2D
Board
Games is a customer-perspective
outline of our project framework.
Design
Patterns web site.
Refactoring
web site.
An introduction to CRC cards
(Class-Responsibility-Collaborator).
Practical UML: A hands on
introduction for developers.
UML under Eclipse tutorial.
Agile
processes and eXtreme Programming web sites.
Richard Gabriel's Patterns of Software
-- Tales from the Software Community.
Bertrand
Meyer's
homepage.
ASSIGNMENTS
Assignment
1 on modeling dependencies from the two MIDI packages to the
two GAME packages is due before class on September 23. It uses diagrams
from the September 9 Eclipse
UML Modeling handout.
Assignment
2 on writing the public method signatures and Javadoc
documentation and determining the UML Associations and/or Relationships
of class games2010rev5.scrabble.ScrabbleAI is due by 11:59 PM on
October 1.
Assignment
3 on writing an initial, modest implementation of class
ScrabbleAI is due by 11:59 PM on
October 22.
Assignment
4 on refactoring Assignment 3 and making different
ScrabbleAI classes available as dynamically loadable plugins is due by
11:59 PM on November 5.
Links to JAVA DOCUMENTATION and
download.
http://java.sun.com/javase/6/docs/api/index.html
documents the CLASS LIBRARY.
One-line summary of UNIX
commands
(thanks to Professor Schaper).
http://java.sun.com/javase/6/docs/
has all on-line docs.
The MIDI
Technical Fanatic's Brainwashing Center is the best site I know of
for MIDI tutorials
and documentation. It includes technical
specifications and a table of General
MIDI
Instrument
Patches
(voices).
http://java.sun.com/javase/downloads/index.jsp
has DOWNLOADS
for JDK 1.6 docs and tools (compiler,
etc. for Windows).
Download Java SE Development Kit (JDK)
6 -> Download -> Continue -> Continue,
then click the file, ignoring the "Sun
Download Manager."
After installing JDK 1.6,
go
to
Windows
Control
Panel
->
System
->
Advanced
->
Environment
Variables
and
set
system
variable
CLASSPATH
to
your
JavaLang
directory.
If
CLASSPATH
is
already
there,
append
a semicolon
followed by your JavaLang path to the string that is there.
Download site for FileZilla
file transfer utility for transferring files between bill and your PC,
or you can use whatever you already have.
Download
site for
Eclipse IDE/Debugger for Java (PITFALL: Use the Galileo Packages).
Use the "Eclipse IDE for Java
Developers," then update it as follows.
Download and unzip Eclipse.
Go into the Eclipse directory and run
the eclipse executable file.
Make sure that your Eclipse workspace is in a directory that
is completely different from any of your source code projects. Do not mix Eclipse's meta-data with your
programming projects!
Pitfall
#1: After you
successfully install and configure Eclipse, exit
Eclipse and reboot your PC. Problems that I have encountered may be due
to networking problems in Old Main, but I have had to do this step on
two machines after Eclipse went into a hung state, so you might as well
do this after setting up Eclipse.
Pitfall
#2: If you
remove a Java project such as JavaLang, a) do not check the box to
actually remove the Java files, and b) after removing the project,
exit Eclipse and go into the project directory with the Windows
Explorer and remove files .project and .classpath..
Pitfall
#3: Whenever you copy files from bill into a Java project
under Eclipse, make sure to right-click "Refresh" (F5) on your Java
project in Eclipse's "Package" panel.
We will go over Java
Projects, source
editing and debugging in class.
Additional Downloads for CSC 520
for Eclipse Modeling Plugins and Jython scripting language
Eclipse Modeling
Plugins
Help -> Install New Software
-> Work with All Available Sites,
checkbox for "Modeling" and all the components beneath it. Modeling is
a top-level checkbox. Click Next.
Eclipse should be able to
determine, download and install all packages
on which modeling depends. There are numerous packages.
Installing the modeling plug-in at
home takes 20 minutes
or so for the complete download etc.
There is also a Java -> UML
reverse engineering tool at http://javareveng.sourceforge.net/,
Eclipse
plugin
installed
from
http://javareveng.sourceforge.net/update/,
that
may
be
useful.
It
appears
not
to work with the lab's installed Eclipse. Never mind!
Jython Interpreter and Python/Jython
Eclipse Plugin (later in the semester)
Use the latest Jython
interpreter from here. Jython is a Python interpreter that extends
the JVM.
The
Pydev IDE/debugger for Eclipse is here.
Help
-> New Software -> Add site.
Add
http://pydev.org/updates as a site, click the boxes to add
packages.
Eclipse should require a restart.
http://www.gnu.org/software/make/manual/
has
the
gmake
manual.
http://cs.armstrong.edu/liang/intro7e/toc.html
has downloads from the Java course textbook.