You may find the syllabus here.
This is not a ``programming'' course, per se. Programming is a means to an end, not an end in and of itself.
Sun's Java Sites
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 NutshellUseful is also The Java Language Specification:
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.:
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
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
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
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.
Academic dishonesty is dealt with severely:
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.
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:
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.
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
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)
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.