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.