Course Outline - SRH Introductory Java
======================================

Jason Burks -- jason.burks\@noaa.gov

Eric Holweg -- eric.holweg\@noaa.gov

\*\*\* PRIOR TO FIRST CLASS \*\*\*

> NETBEANS 6.0 must be installed on student's computer.
>
> JDK 6u3 with NetBeans IDE 6.0 Bundle available from SRH Java
> Sharepoint Site

+---------------------+----------------------+----------------------+
| W                   | Course Overvie       | **[REA               |
| EEK 1 -- 15 Jan 08  | w {#course-overview} | DINGS]{.underline}** |
| {#week-1-15-jan-08} | ---------------      |                      |
| ------------------- |                      | Chapter 1            |
|                     | -   Class            |                      |
| JB                  |     organization &   | [Netbeans            |
|                     |     structure        | Overview](http:      |
|                     |                      | //www.netbeans.org/d |
|                     | -   Importance of    | ownload/flash/netbea |
|                     |     Java             | ns_55/nb_overview/Ne |
|                     |                      | tBeansOverview.html) |
|                     | -   Java & AWIPS     |                      |
|                     |                      | [Netbeans Quickstart |
|                     | -   Assignment Goals | Guide](http:/        |
|                     |                      | /www.netbeans.org/kb |
|                     | > Teach Object       | /55/quickstart.html) |
|                     | > Oriented Prgm      |                      |
|                     | >                    | **[HOM               |
|                     | > Create GIS program | EWORK]{.underline}** |
|                     |                      |                      |
|                     | Ch                   | Familiarization with |
|                     | apter 1 {#chapter-1} | IDE                  |
|                     | ---------            |                      |
|                     |                      |                      |
|                     | -   Java             |                      |
|                     |     Fundamentals     |                      |
|                     |                      |                      |
|                     | -   Bytecode         |                      |
|                     |                      |                      |
|                     | -   Object Oriented  |                      |
|                     |     Overview         |                      |
|                     |                      |                      |
|                     | -   Basic Java       |                      |
|                     |     Syntax           |                      |
|                     |                      |                      |
|                     | -   Keywords &       |                      |
|                     |     Identifiers      |                      |
|                     |                      |                      |
|                     | -   if statements &  |                      |
|                     |     for loops        |                      |
|                     |                      |                      |
|                     |  {#section-2}        |                      |
|                     |                      |                      |
|                     | Introducti           |                      |
|                     | on to the IDE {#intr |                      |
|                     | oduction-to-the-ide} |                      |
|                     | ---                  |                      |
|                     | -------------------- |                      |
|                     |                      |                      |
|                     | -   Creating         |                      |
|                     |     projects and     |                      |
|                     |     classes          |                      |
|                     |                      |                      |
|                     | -   Compiling        |                      |
|                     |     programs         |                      |
|                     |                      |                      |
|                     | -   Examples of code |                      |
|                     |     completion       |                      |
|                     |                      |                      |
|                     | -   Examples of      |                      |
|                     |     commenting code  |                      |
|                     |                      |                      |
|                     | -   Code             |                      |
|                     |     reformatting     |                      |
|                     |                      |                      |
|                     | -   Using IDE to     |                      |
|                     |     search through   |                      |
|                     |     code             |                      |
|                     |                      |                      |
|                     | -   Brace tracing    |                      |
|                     |                      |                      |
|                     | -   Fix Imports      |                      |
|                     |     function         |                      |
|                     |                      |                      |
|                     | -   Create Class     |                      |
|                     |     using IDE        |                      |
|                     |     template         |                      |
+=====================+======================+======================+
| W                   | Ch                   | **[REA               |
| EEK 2 -- 22 Jan 08  | apter 2 {#chapter-2} | DINGS]{.underline}** |
| {#week-2-22-jan-08} | ---------            |                      |
| ------------------- |                      | Chapter 2            |
|                     | -   Primitive Types  |                      |
| EH                  |                      | Chapter 3            |
|                     | -   Literals         |                      |
|                     |                      | **[HOM               |
|                     | -   Operators        | EWORK]{.underline}** |
|                     |                      |                      |
|                     | -   Variables        | Layout needs for a   |
|                     |                      | GIS point            |
|                     | > Assignment         |                      |
|                     | >                    | GIS line             |
|                     | > Initialization     |                      |
|                     | > (Dynamic)          | GIS polygon          |
|                     | >                    |                      |
|                     | > Scope              | Think of the object  |
|                     | >                    | relationships        |
|                     | > Type Conversion &  |                      |
|                     | > Casting            |                      |
|                     |                      |                      |
|                     |  {#section}          |                      |
|                     |                      |                      |
|                     | Ch                   |                      |
|                     | apter 3 {#chapter-3} |                      |
|                     | ---------            |                      |
|                     |                      |                      |
|                     | -   **if** -- **else |                      |
|                     |     if** -- **else** |                      |
|                     |                      |                      |
|                     | -   **switch**       |                      |
|                     |                      |                      |
|                     | -   **for** loop     |                      |
|                     |                      |                      |
|                     | -   **while** loop   |                      |
|                     |                      |                      |
|                     | -   **do-while**     |                      |
|                     |     loop             |                      |
|                     |                      |                      |
|                     | -   **break** &      |                      |
|                     |     **continue**     |                      |
+---------------------+----------------------+----------------------+
| W                   | Ch                   | **[REA               |
| EEK 3 -- 29 Jan 08  | apter 4 {#chapter-4} | DINGS]{.underline}** |
| {#week-3-29-jan-08} | ---------            |                      |
| ------------------- |                      | Chapter 4            |
|                     | -   The Jargon:      |                      |
| JB                  |                      | **[HOM               |
|                     | > Class, Method,     | EWORK]{.underline}** |
|                     | > Object, Instance   |                      |
|                     | > Vars               | Create Objects       |
|                     |                      |                      |
|                     | -   Generalized      | Point                |
|                     |     Class            |                      |
|                     |                      | Line                 |
|                     | > Defining a class   |                      |
|                     | >                    | Polygon              |
|                     | > Variables within a |                      |
|                     | > class              |                      |
|                     | >                    |                      |
|                     | > The dot operator   |                      |
|                     | > (.)                |                      |
|                     | >                    |                      |
|                     | > Using **this**     |                      |
|                     | > keyword            |                      |
|                     | >                    |                      |
|                     | > Constructors       |                      |
|                     | > (**new**)          |                      |
|                     | >                    |                      |
|                     | > Methods            |                      |
|                     |                      |                      |
|                     | -   Parameterized    |                      |
|                     |     Methods &        |                      |
|                     |     Constructors     |                      |
+---------------------+----------------------+----------------------+
| WEEK 4 -- 5 Feb 08  | Chapt                | **[REA               |
|  {#week-4-5-feb-08} | er 4  {#chapter-4-1} | DINGS]{.underline}** |
| ------------------  | ---------            |                      |
|                     |                      | Chapter 4 (Review)   |
| EH                  | -   Review Material  |                      |
|                     |     & Questions      | Chapter 5 (5.1-5.8)  |
|                     |                      |                      |
|                     | -   Garbage          | **[HOM               |
|                     |     Collection       | EWORK]{.underline}** |
|                     |                      |                      |
|                     |  {#section-1}        | Iterating over       |
|                     |                      | polygons             |
|                     | Ch                   |                      |
|                     | apter 5 {#chapter-5} |                      |
|                     | ---------            |                      |
|                     |                      |                      |
|                     | -   Arrays           |                      |
|                     |                      |                      |
|                     | > Using array        |                      |
|                     | > methods            |                      |
|                     | >                    |                      |
|                     | > **length()**       |                      |
|                     |                      |                      |
|                     | -   for loop         |                      |
|                     |     (Collections     |                      |
|                     |     Framework)       |                      |
|                     |                      |                      |
|                     | > **for-each**       |                      |
|                     | >                    |                      |
|                     | > optimized **for**  |                      |
|                     | > loop               |                      |
|                     |                      |                      |
|                     | -   Strings          |                      |
|                     |                      |                      |
|                     | > Using string       |                      |
|                     | > methods            |                      |
|                     | >                    |                      |
|                     | > **length()**       |                      |
|                     | >                    |                      |
|                     | > **charAt(int       |                      |
|                     | > index)**           |                      |
|                     | >                    |                      |
|                     | > **indexOf(String   |                      |
|                     | > str)**             |                      |
|                     | >                    |                      |
|                     | > **equals(String    |                      |
|                     | > str)**             |                      |
+---------------------+----------------------+----------------------+
| W                   | Ch                   | **[REA               |
| EEK 5 -- 12 Feb 08  | apter 6 {#chapter-6} | DINGS]{.underline}** |
| {#week-5-12-feb-08} | ---------            |                      |
| ------------------- |                      | Chapter 6 (6.1-6.5,  |
|                     | -   Encapsulation    | 6.7-6.8)             |
| EH                  |                      |                      |
|                     | > Access Control to  | **[HOM               |
|                     | > Class Members      | EWORK]{.underline}** |
|                     | >                    |                      |
|                     | > **public**,        | TBD                  |
|                     | > **private**,       |                      |
|                     | > **protected**      |                      |
|                     |                      |                      |
|                     | -   Passing Objects  |                      |
|                     |     to methods       |                      |
|                     |                      |                      |
|                     | -   Returning        |                      |
|                     |     Objects from     |                      |
|                     |     methods          |                      |
|                     |                      |                      |
|                     | -   Method           |                      |
|                     |     Overloading      |                      |
|                     |                      |                      |
|                     | -   Constructor      |                      |
|                     |     Overloading      |                      |
|                     |                      |                      |
|                     | -   **static**       |                      |
|                     |                      |                      |
|                     | > variables,         |                      |
|                     | > methods, blocks    |                      |
|                     |                      |                      |
|                     | -   Nested and Inner |                      |
|                     |     classes          |                      |
+---------------------+----------------------+----------------------+
| W                   | Ch                   | **[REA               |
| EEK 6 -- 19 Feb 08  | apter 7 {#chapter-7} | DINGS]{.underline}** |
| {#week-6-19-feb-08} | ---------            |                      |
| ------------------- |                      | Chapter 7            |
|                     | Inheritance          |                      |
| JB                  |                      | **[HOM               |
|                     | -   Member Access    | EWORK]{.underline}** |
|                     |                      |                      |
|                     | -   Constructors &   | TBD                  |
|                     |     inheritance      |                      |
|                     |                      |                      |
|                     | > Superclass         |                      |
|                     | > Constructors --    |                      |
|                     | > **super()**        |                      |
|                     | >                    |                      |
|                     | > Access Superclass  |                      |
|                     | > Members **--       |                      |
|                     | > super**            |                      |
|                     |                      |                      |
|                     | -   Inheritance      |                      |
|                     |     Example          |                      |
|                     |                      |                      |
|                     | -   Method           |                      |
|                     |     Overriding       |                      |
|                     |                      |                      |
|                     | -   The Object Class |                      |
|                     |     -- superclass of |                      |
|                     |     all others       |                      |
|                     |                      |                      |
|                     | -   Introduction to  |                      |
|                     |     Abstract Classes |                      |
|                     |                      |                      |
|                     | -   Using **final**  |                      |
+---------------------+----------------------+----------------------+

**\
**

+----------------------+----------------------+----------------------+
|  WEEK 7 -- 26 Feb 08 | Observer Des         | **[REA               |
|  {#week-7-26-feb-08} | ign Patterns {#obser | DINGS]{.underline}** |
| -------------------  | ver-design-patterns} |                      |
|                      | ----                 | Chapter 8            |
| JB                   | -------------------- |                      |
|                      |                      | **[HOM               |
|                      | Ch                   | EWORK]{.underline}** |
|                      | apter 8 {#chapter-8} |                      |
|                      | ---------            | Use GEOTOOLS         |
|                      |                      |                      |
|                      | -   Packages         |                      |
|                      |                      |                      |
|                      | > Defining packages  |                      |
|                      | >                    |                      |
|                      | > Using packages     |                      |
|                      | >                    |                      |
|                      | > Importing packages |                      |
|                      |                      |                      |
|                      | -   Interfaces       |                      |
|                      |                      |                      |
|                      | > Implementing       |                      |
|                      | >                    |                      |
|                      | > Extending          |                      |
|                      |                      |                      |
|                      | -   Adding Libraries |                      |
+======================+======================+======================+
| WEEK 8 -- 04 Mar 08  | Review {#review}     | **[REA               |
|  {#week-8-04-mar-08} | ------               | DINGS]{.underline}** |
| -------------------  |                      |                      |
|                      | Composite Desi       | TBD                  |
| JB                   | gn Patterns {#compos |                      |
|                      | ite-design-patterns} | **[HOM               |
|                      | -----                | EWORK]{.underline}** |
|                      | -------------------- |                      |
|                      |                      | TBD                  |
|                      | Conc                 |                      |
|                      | ept Tie Together {#c |                      |
|                      | oncept-tie-together} |                      |
|                      | -------------------- |                      |
+----------------------+----------------------+----------------------+
| WEEK 9 -- 11 Mar 08  | Ch                   | **[REA               |
|  {#week-9-11-mar-08} | apter 9 {#chapter-9} | DINGS]{.underline}** |
| -------------------  | ---------            |                      |
|                      |                      | Chapter 9            |
| EH                   | -   Exception        |                      |
|                      |     Hierarchy        | Chapter 10           |
|                      |                      | (10.1-10.11)         |
|                      | -   **try**,         |                      |
|                      |     **catch**,       | **[HOM               |
|                      |     **throw**,       | EWORK]{.underline}** |
|                      |     **throws**,      |                      |
|                      |     **finally**      | TBD                  |
|                      |                      |                      |
|                      | -   Uncaught         |                      |
|                      |     Exceptions       |                      |
|                      |                      |                      |
|                      | -   Throwing         |                      |
|                      |     Exceptions       |                      |
|                      |                      |                      |
|                      | -   Catching         |                      |
|                      |     Exceptions       |                      |
|                      |                      |                      |
|                      | -   Stack Traces     |                      |
|                      |                      |                      |
|                      | -   Creating         |                      |
|                      |     Exception        |                      |
|                      |     Subclasses       |                      |
|                      |                      |                      |
|                      |  {#section-3}        |                      |
|                      |                      |                      |
|                      | Chap                 |                      |
|                      | ter 10 {#chapter-10} |                      |
|                      | ----------           |                      |
|                      |                      |                      |
|                      | -   Byte & Character |                      |
|                      |     Streams          |                      |
|                      |                      |                      |
|                      | -   Reading from     |                      |
|                      |                      |                      |
|                      | > STDIN              |                      |
|                      | >                    |                      |
|                      | > File               |                      |
|                      |                      |                      |
|                      | -   Writing to file  |                      |
|                      |                      |                      |
|                      | -   Random Access    |                      |
|                      |     Read/Write       |                      |
|                      |                      |                      |
|                      | -   Network reading  |                      |
+----------------------+----------------------+----------------------+
| W                    | Chapte               | **[REA               |
| EEK 10 -- 18 Mar 08  | r 10 {#chapter-10-1} | DINGS]{.underline}** |
| {#week-10-18-mar-08} | ----------           |                      |
| -------------------- |                      | Chapter 10 (10.12)   |
|                      | -   Java Type        |                      |
| EH                   |     Wrappers (10.12, | Chapter 11 (11.1,    |
|                      |     12.6)            | 11.2)                |
|                      |                      |                      |
|                      |  {#section-4}        | Chapter 12 (12.6)    |
|                      |                      |                      |
|                      | Chap                 | Chapter 13 (13.1,    |
|                      | ter 11 {#chapter-11} | 13.2)                |
|                      | ----------           |                      |
|                      |                      | Appendix B (655-663) |
|                      | -   Multithreading   |                      |
|                      |     Fundamentals     | **[HOM               |
|                      |                      | EWORK]{.underline}** |
|                      |  {#section-5}        |                      |
|                      |                      | TBD                  |
|                      | Chapt                |                      |
|                      | er 13  {#chapter-13} |                      |
|                      | ----------           |                      |
|                      |                      |                      |
|                      | -   Benefits of      |                      |
|                      |     Generics         |                      |
|                      |                      |                      |
|                      |  {#section-6}        |                      |
|                      |                      |                      |
|                      | J                    |                      |
|                      | ava's Documentation  |                      |
|                      | Comments {#javas-doc |                      |
|                      | umentation-comments} |                      |
|                      | ---------            |                      |
|                      | -------------------- |                      |
|                      |                      |                      |
|                      | Collec               |                      |
|                      | tions Framework {#co |                      |
|                      | llections-framework} |                      |
|                      | -                    |                      |
|                      | -------------------- |                      |
+----------------------+----------------------+----------------------+

Additional Class Instructions:
------------------------------

None at present time.