Richard G Baldwin (512) 223-4758, NRG Room 4238, baldwin@austin.cc.tx.us, http://www2.austin.cc.tx.us/baldwin/

Austin Community College

Advanced Java Programming

CIS 2523

This is the Syllabus for classroom sections and Open Campus (PCM) sections taught by Professor Baldwin.

Syllabus and Study Guide

Spring 2000

Revised 1/22/00

The official web page for this course is http://www2.austin.cc.tx.us/baldwin/Cis2523Spring2000.htm

Instructor: Richard G. Baldwin

Office Hours: See the online OH link next to my name on the ACC Course Schedule Web page   Other times by appointment. Call the above number or E-mail at any time.

Course Description: Continued study in the use of the Java programming language for writing complex and sophisticated stand-alone applications and internet Applets.  (See prerequisite below).

Course Goals: To learn to write, test, and debug advanced-level Object-Oriented programs using Java.

Prerequisite: CIS2513 or CIS2103.1K, Intermediate Java Programming (the course number was changed to CIS2513 in the Fall of 1998), or departmental approval. If you are not already an accomplished Java programmer, you may find it difficult to succeed in this course.

Who Should Enroll in this Course: Please review the companion document to this one entitled Who Should Enroll?

Transfers:  Although it is technically possible for a student to transfer from one section to another section of the same course, this process has caused many problems in the past, and is to be discouraged unless the reasons for the transfer are compelling.  Beginning in the Fall semester of 1998, students desiring to transfer between CIS/CSC courses must first obtain permission from an Assistant Dean for CIS/CSC who will initiate the paperwork.

Requirements: All students must successfully complete the exams on the schedule described below and meet the attendance requirements described below.

Examinations: Exams for this course are to be taken at home and submitted to the instructor in accordance with a companion document entitled Instructions for Downloading and Submitting Exams

Because the exams are take-home exams, the amount of work required to complete an exam, and the range of material covered by each exam may be greater than you might ordinarily expect to be the case with a classroom exam.

All students must successfully complete three exams by the deadlines specified below. You can complete and submit the exams ahead of the deadline if you wish but I usually save them and grade them all at the same time.

Exams will be made available for downloading via the web very early in the semester.  You should check the official web page for this course (see the URL given above) on a daily basis so that you will know when the exams are available.

All exams are "open-book" exams. You may use any books, notes, diskettes, or other material that you have available. However, you are instructed not to obtain assistance from anyone else in completing an exam.

Schedule: See the published schedule for the beginning and ending dates of the semester.

All students must complete and submit the first exam not later than 7:30 PM on March 8, 2000.
All students must complete and submit the second exam not later than 7:30 PM on April 12, 2000.
All students must complete and submit the third exam not later than 7:30 PM on May 10, 2000.

The word "submit" means received by and physically in the hands of the instructor.  Submit early. Don't procrastinate and let a last minute problem cause you to miss a deadline.

Because you will have the exams available to work on during most of the semester, there will be no grace period and no makeup possibility.  Barring a genuine emergency (such as an extended stay in the hospital) failure to submit an exam by the deadline will result in a maximum allowable score on the exam of zero.

Programming Assignments: Your exams are your programming assignments. These assignments will take the form of questions for you to answer or programs for you to write or a combination of the two.

You are free to use whatever Java compiler you choose subject to the conditions described later regarding submittal of exams. ACC will provide JDK 1.1.x and JDK 1.2.x running under Windows 95 in the CIS laboratory at the Northridge campus. You are welcome and encouraged to make use of that facility.

The final version of the programs which you submit for exams, must include source code and class files compatible with the version of the JavaSoft JDK installed in the NRG laboratory on the due date of the exam. More specific instructions are provided in a companion document entitled Instructions for Downloading and Submitting Exams.

Grading: Your attandance in class will determine 25% of your final grade. The number of points that you will receive for attendance will range from zero to 100 based on your percentage attandance in class. Credit for attandance will be based on your entering your name on a signup sheet during each class period.

Each of the three exams will determine 25% of your final grade. The number of points that you will receive for each exam will range from zero to 100.

Your final grade will be based on the average of your attendance grade and the three exam grades.

Depending on the final scores of all the students taking the course, it is possible that a curve may be applied to the final grades before they are submitted for recording.

Grading Scale: Letter grades will be assigned as follows:
90 - 100 A

80 - 89  B
70 - 79  C
60 - 69  D
 0 - 59  F

Incomplete: A grade of "I" will be assigned at the discretion of the instructor only for extreme emergencies. The instructor will not consider assigning an "I" if the student is not current or if the circumstances are not compelling.

Withdrawal: A grade of "W" will be automatically assigned if the student initiates a withdrawal through the Admissions and Records office, in accordance with the requirements of that office.

Although the instructor has the prerogative to withdraw students for lack of progress, he is under no obligation to do so. It is the responsibility of the student and not the responsibility of the instructor to initiate all withdrawal proceedings. If the student fails to complete the work and also fails to properly withdraw, a grade of A, B, C, D, or F will be assigned in accordance with the work which was completed.

Materials and Facilities

Primary Teaching Vehicle: Baldwin’s Advanced Java Tutorial available at http://www.geocities.com/Athens/7077/scoop/onjava.html. You will also need a good Java reference book.  I recommend Java in a Nutshell, by Flanagan as a reference book.

Recommended Supplementary Texts (in no particular order):

For the very serious advanced Java student, I also recommend the following supplementary texts:

There are, of course, dozens of other good books on advanced Java topics that are too numerous to list here.

Downloading Online Material at ACC Labs: Note that although you will be allowed to download these online materials in the ACC labs, you are specifically prohibited from printing them using ACC facilities.

Software: It should not be necessary for you to purchase any software in order to successfully complete this course.

As a student, you have access to the CIS labs at the various ACC campuses.  You should find Java software available at NRG, CYP, RGC, RVS and PIN and possibly other campuses as well.

Assuming that you have private access to a computer with an operating system that supports the latest version of the Java Virtual Machine, all of the Java software that you will need can be downloaded for free from JavaSoft at http://java.sun.com/products/jdk/1.1/ and http://java.sun.com/products/jdk/1.2/. As of 3/31/99, the following statement appears on the JavaSoft web site: " NOTE: The Java® Development Kit (JDKTM) 1.2.1 has been renamed to Java 2 SDK, Standard Edition, v 1.2.1. However, the product name on these web pages and in the downloaded product documentation does not yet reflect this change. "

Lesson 6 in Baldwin's Tutorial also lists various sources of shareware and freeware that can be helpful in learning to program using Java. In addition, Baldwin has provided a set of links to more than 500 high-quality Java resources. You can access those links from the main page of Baldwin's Java Tutorials.

Topics to be Covered

A visit to http://www2.austin.cc.tx.us/baldwin/ will indicate the wide range of topics available for coverage in this course.

The following is the list of topics that I plan to cover during this semester (although this may be too much to cover during a single semester).  These topics are not cast in concrete.  I am willing to substitute other advanced Java topics for some of these topics if a majority of the students in the class request that I do so. Note: The numbers associated with these topics key directly to Baldwin's online Java tutorial lessons at http://www.geocities.com/athens/7077/scoop/onjava.html.

200 Implementing the Model-View-Controller Paradigm using Observer and Observable 

500 JavaBeans, An Overview 
502 JavaBeans, A Skeleton Bean Program 
506 JavaBeans, Introspection 
508 JavaBeans, Properties of Beans, Simple and Indexed 
510 JavaBeans, Properties of Beans, Bound Properties 
512 JavaBeans, Properties of Beans, Constrained Properties 

550 Network Programming - General Information 
552 Network Programming - The InetAddress Class 
560 Network Programming - Sockets 
562 Network Programming - Server Sockets 
564 Network Programming - Datagram Clients 
566 Network Programming - Datagram Servers 
568 Network Programming - Stubs, Skeletons, and Remote Objects

660 JDBC, Introduction to JDBC and Database Access

680 Servlets, Introduction to Servlets
682 Servlets, Forms, and Databases
684 Servlets, Server-Side Includes
686 Servlets, They Can Remember
688 Servlets and the JDBC ResultSetMetaData Interface
690 Servlets, Originating Email in Servlets
691 Servlets, Session Tracking Using Hidden Fields
693 Servlets, Session Tracking Using Cookies
694 Servlets, Session Tracking Using the Session Tracking API
695 Servlets, Session Tracking Using Basic Authentication

600 RMI, Introduction to Remote Method Invocation
601 RMI with Multiple Objects of the Same Type Having Multiple Methods
603 RMI, Passing and Returning Remote and Ordinary Objects

700 Security, A Very Brief Introduction
702 Security, Overview of Security in JDK 1.2
710 Security, Introduction to Message Digests
711 Security, Passphrase Protected Message Digests
712 Security, Message Digest Streams
715 Security, Policy Files in JDK 1.2
720 Security, Introduction to Key Pairs and Digital Signatures
725 Security, Digital Certificates

620 CORBA, Introduction to Common Object Request Broker Architecture
624 CORBA, Java IDL, Under the Hood
632 CORBA, Using Stringified Object References in Java
636 CORBA, Passing References to Remote Objects -- Callback Methods
644 CORBA, Passing Parameters to Remote Methods

820 Programming with HTML, XML, and SGML
823 XML Document Processing using a SAX-Based XML Parser
826 XML to Objects and Objects to XML with SAX
829 XML, A Simple XML Editor using SAX
832 XML, An Online Testing System using XML and SAX

 

-end-

File: Cis2523SylSpring2000.htm