Weiter | Weiter | Weiter | Weiter | Kommentar

all-inOne, section 2.

2.  General Information

Course Title:

4003-707 Advanced Java Programming

Instructor:

Dr. Hans-Peter Bischof (hpb@cs.rit.edu)

Office:
70-3005

Telephone:
(585) 475-5568

Office Hours:
Monday: 14:00-15:00, Wednesday: 14:00-15:00,
and by appointment

2.1.  Syllabus

You may find the syllabus here.

2.2.  Course Goals

This is not a ``programming'' course, per se. Programming is a means to an end, not an end in and of itself.

2.3.  Web Resources

Sun's Java Sites
JDK 1.5
Java API
Java Tools
Java Documents
Exercises
Coding Standard

2.4.  Texts

There is an almost infinite number of (not necessarily good) books about Java and even more about the World Wide Web. The following books I found quite useful, however.

Bruce Eckel        mindview.net/Books                                      Thinking in Java
Java Tutorial      java.sun.com/docs/books/tutorial/index.html             Java
Online Courses     java.sun.com/developer/onlineTraining/ Online Courses
Mughal/Rasmussen   0-201-59614-8                                           A Programmers Guide to Certification
Kalin              0-13-019859-5                                           Object Oriented Programming in Java
Flanagan           1-56592-262-X                                           Java in a Nutshell (2nd Edition)
Flanagan           1-56592-371-5                                           Java Examples in a Nutshell
Useful is also The Java Language Specification:
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

The following books were written by the Java developers themselves and are relatively useful. Second editions are available or in the making, more or less face-lifted for Java 1.[23]:

Arnold/Gosling            0-201-31006-6   The Java Programming Language (2nd Ed.)
Campione/Walrath          0-201-31007-4   The Java Tutorial (2nd Ed.)
Chan                      0-201-37967-8   The Java Developers Almanach (1998 Ed.)
Chan/Lee                  0-201-63458-9   The Java Class Libraries: An Annotated Reference
Chan/Lee/Kramer           0-201-31002-3   The Java Class Libraries (2nd Ed.) Vol. 1
Chan/Lee                  0-201-31003-1   The Java Class Libraries (2nd Ed.) Vol. 2
Gosling/Joy/Steele        0-201-63451-1   The Java Language Specification
Gosling/Yellin et al.     3-8273-1040-7   Java API Volume 1: Basic Packages
Gosling/Yellin et al.     3-8273-1084-9   Java API Volume 2: Window Toolkit and Applets
Hamilton/Cattell/Fisher   0-201-30995-5   JDBC -- Database Access with Java
Kanerva                   0-201-63456-2   The Java FAQ: Frequently Asked Questions
Lea                       0-201-69581-2   Concurrent Programming in Java
Liang/Sterns              0-201-32577-2   Java Native Interface
Lindholm/Yellin           0-201-63452-X   The Java Virtual Machine Specification
Sowizral/Rushforth        et.al.          0-201-32576-4 The Java 3D API Specification
Sridharan                 0-13-749136-0   Advanced Java Networkin

If you would like to take a Java exam to become a Sun Certified Programmer for the Java 2 Platform, here is an example: http://www.ii.uib.no/~khalid/pgjc/jcbook/engine.html

2.5.  Tentative Schedule

1.    java basics
2.    inheritance
3.    exceptions, collections
4.    collections
5.    threads
6.    threads
7.    swing/event
8.    event/applet/io
9.    networking
10.   reflection

2.6.  Grading

The course consists of the activities shown below, which are weighted as indicated to compute the final grade:

Component   Weight
-------------------
Homeworks   30%
Quizzes     50%
Final       20%

Note: each quiz counts 1/3 of 70%

Note: each quiz counts 1/3 of 70%

Note: The homework are helpful for the quizzes and exams.

Quiz 1:   Thursday/Week 4
Quiz 2:   Thursday/Week 8
Quiz 3:   Thursday/Week final

2.7.  Environment

2.8.  Homeworks

The homeworks and are done in teams of two. The team has to meet with a grader. Each team members must be able to explain the solution to her/him. The grade for each project is based on the correctness, you explanation, and the quality of the code. The instructor will hand out sign up sheets during lecture. The grades can differ for each student.

A solution must be submitted by each student for the first homework.

You will find a description of paired programming here.

2.9.  Other Things

Course organization

Academic Honesty

--
Code of Conduct
--
You may help each other freely to complete homeworks as the purpose of the homeworks is to increase your understanding.
--
This does not mean that someone else can do your homework for you. Any homework you submit must contain your significant intellectual contribution.
--
The corollary is that you may not do someone else's work for them either. A willing supplier of the material is as guilty of academic dishonesty as the receiver.
--
Any help you receive from someone must be acknowledged in the work submitted. Failure to acknowledge the source of a significant idea or approach is considered plagiarism and not allowed.

Academic dishonesty is dealt with severely:

--
You will receive a grade of F for the course.
--
A note describing the details of your case will become part of your academic record.
--
Repeated offenses or more serious violations may result in your being suspended or
--
Violations of the Code of Conduct... can also result in suspension, expulsion and even criminal charges.

2.10.  Introduction to Object-Oriented Design

2.11.  Object-Oriented Ingrediences

2.12.  Object

Objects are the things you think about first in designing a program and they are also the units of code that are eventually derived from the process. In between, each object is made into a generic class of object and even more generic classes are defined so that objects can share models and reuse the class definitions in their code. Each object is an instance of a particular class or subclass with the class's own methods or procedures and data variables. An object is what actually runs in the computer.

2.13.  Class

A class consists of all objects with like state which know exactly the same methods, i.e., a class knows the structure of its objects and contains the methods to manipulate the structure. An object is called an instance of a class.

Given a class, one normally creates objects. Objects are created dynamically with the prefix operator new which in turn calls a constructor method to initialize the instance variables. Uninitialized instance variables are zeroed.

Methods mostly access the instance variables of the receiver. If methods return their receiving objects, method calls (messages) can be cascaded.

The class is one of the defining ideas of object-oriented programming. Among the important ideas about classes are:

2.14.  Encapsulation

Encapsulation is the inclusion within a program object of all the resources need for the object to function -- basically, the methods and the data. Other objects adhere to use the object without having to be concerned with how the object accomplishes it. The idea is "don't tell me how you do it; just do it." An object can be thought of as a self-contained atom. The object interface consists of public methods and instance data.

2.15.  Methods

A method is a programmed procedure that is defined as part of a class and included in any object of that class. A class (and thus an object) can have more than one method. A method in an object can only have access to the data known to that object, which ensures data integrity among the set of objects in an application. A method can be re-used in multiple objects.

Question: What is the difference between class and object

2.16.  Inheritance

Inheritance is the concept that when a class of objects is defined, any subclass that is defined can inherit the definitions of one or more general classes. This means for the programmer that an object in a subclass need not carry its own definition of data and methods that are generic to the class (or classes) of which it is a part. This not only speeds up program development; it also ensures an inherent validity to the defined subclass object (what works and is consistent about the class will also work for the subclass)

2.17.  Polymorphism

Polymorphism (from the Greek meaning "having multiple forms") is the characteristic of being able to assign a different meaning to a particular symbol or "operator" in different contexts.

2.18.  Object-Oriented Programming Keywords

Object

Class

Encapsulation

Methods

Encapsulation

Methods

Inheritance

Polymorphism

Reuse


Weiter | Weiter | Weiter | Weiter | Kommentar


Created by unroff, java2html & & hp-tools. © by csfac. All Rights Reserved (2010).
It is not allowed to print these pages on a CAST printer.
Last modified 01/April/10