Course Overview:
This course covers the Java language and its use in producing stand-alone programs called applications. This course or its equivalent is a prerequisite for the companion courses Programming with Java AWT and Programming Java Applets which, respectively, cover windowing and applets. Lab time is included. The course is not hardware or operating system-specific.
Goals:
Provided students meet the prerequisites, at the end of the course they should have a good understanding of the following:
1. The goals of Java
2. How Java is/is not like C and C++.
3. The advantages of Java over C and C++.
4. How to survive and thrive without an overt pointer type.
5. The basic principles of OOP such as data hiding, encapsulation, inheritance, and polymorphism.
6. Error handling via exceptions.
7. What's available in the Java Class Library.
Who This Course Is Appropriate For:
Programmers and technical managers who are seriously interested in evaluating, and possibly using, Java for any purpose. Also, engineers and scientists currently using a procedural language, who want to reap many of the benefits of C/C++ without paying the significantly high price that programming in those languages extracts.
Prerequisites:
Knowledge of at least one procedural high-level language such as Fortran, Basic, or Pascal is assumed.
Familiarity with C, C++, SmallTalk, or some other OOP language is a definite advantage but is not required. (See Course Length above.)
Those claiming fluency in C++ are expected to have a good working knowledge of the following topics: all the statements and operators, pointers and references, dynamic memory usage via new and delete, function inlining, function overloading, basic class design, operator overloading, single inheritance, virtual functions, and exception handling.
Those claiming fluency in some other OO-language are expected to have a good working knowledge of the following topics: basic class design, single inheritance, and exception handling.
Those claiming fluency in C are expected to have a good working knowledge of the following topics: all the statements and operators, pointers, dynamic memory usage via malloc and free, argument passing and return value handling, arrays, string handling, the new-style way of declaring and defining functions, and all aspects of structures.
Those claiming fluency in some procedural language are expected to have a good working knowledge of the following topics: variables, arrays, looping, operator precedence, type conversion, string processing, I/O, passing arguments to, and returning values from, a procedure, number system theory, bit manipulation, data representation, and group items (called records or structures in some languages).
Materials:
Each buyer will receive one or both of the following materials, depending on purchase:
Programming in Java– This manuscript was written specifically for teaching. It serves as a useful reference once the course has been completed.
Source Code – An electronic version of all of the source code shown in the text of this course.
Detailed Topics:
The main topics covered are:
- Basic Language Elements
- Looping and Testing
- Methods
- References, Strings, and Arrays
- Classes
- Inheritance
- Exception handling
- Input and Output
- Packages
- Interfaces