Updated 1/12/2004

Spring 2004 CIT130 Object Oriented Programming: Java 4 credits Prerequisite(s): CIT111/CIT501This course focuses on object-oriented programming and design using the Java programming language. Topics covered are: language-independent program design skills, basic language elements (control structures, arrays, strings). Object- Oriented design (classes, inheritance, polymorphisms), error and exception handling input/output, streams, introduction to data structures, commercial software libraries, graphical user interface components and multimedia.

Text: Computing with Java, Alternate 2nd ed by Gittleman, Scott/Jones, ISBN-57676-074-X

Reference:
Java 2 the Complete  Reference - 4th ed., by Naughton & Schildt Osborne Mcgraw Hill (reference text)

Instructor: Kenneth L Moore email kmoore@ccac.edu Office N457 http://web.acd.ccac.edu/~kmoore/

CIT130BC0110:00-11:40AMMWBoyceS587

CIT130: Object Oriented Programming:  Java

Date

 Topic

  WEEK 1

 I. OBJECT-BASED PROGRAMMING 
 
Review Basics: data types, expressions,  methods & parameter passing,  ( 2.1 - 2.6 )
 Relational operators, control structures (if-else) and (while), stepwise refinement,
 debugging, applications & applets (3.1 - 3.7)   

 Student Assignment 1: Java Basics 
 Key elements: Review problem includes methods & parameters, selection, iteration &
 formatting. 
 Example (a)  Loan Calculator Ex 3.21 (b) Weekly pay computation for multiple
 employees, with overtime

  WEEK 2

 Solving Problems with Java  
Javadoc  ( online documentation ); More control structures & types: (relational operators), nested control structures, for and   do-while, switch, iterative development cycle; Math &  String classes (  4.1 - 4.5, 5.1)
 
 Student Assignment: 2 Java Basics 
 Key elements: Review problem includes methods & parameters, selection, iteration,
 formatting and proper documentation with Javadoc.
 Example (a) Car Payments Ex 4.23 ,  (b) GCD Ex. 4.18 (c) Guessing Game

WEEK 3

 Classes & Objects- Intro to OO design, classes & objects in Java, object composition
 (5.2 - 5.5)

 Student Assignment  3: Class Design.  
 Key elements:  Larger class design includes proper documentation with  Javadoc, multiple overloaded constructors, accessor and mutator methods. A test program exercises the services of the designed class. 
 Examples: (a) Fraction class  Ex. 5.23 (b) Warehouse class Ex. 5.16, 5.17, 5,21 

  WEEK 4

 Event Driven Programming  (6.1 - 6.7)<![endif]>  
 Window components, listeners, Button & TextField; Border & Grid Layouts (7.1, 7.2, 7.4) 

 Student Assignment 4: Events 
 Key elements: Applet uses components, layouts & event handling. 
 Examples: (a) GUI Calculator -  Ex 7.20 or  (b) Country Capitals Ex 7.24

 Short Quiz 1

WEEK 5

 Array Processing : common algorithms, sorting & searching ( 8.1 - 8.4)  
 Multi-dimensional arrays & problem solving ( 8.5 - 8.7 )  
 
 Student Assignment 5: Arrays 
 Key Elements: Problem handles 2 dimensional arrays, requires decomposition into
 multiple methods.
 Examples:  (a) Conway's Game of Life  or (b) Process sales for multiple stores Ex. 8.24 

WEEK 6

 Command line arguments (11.1);
 Introduction to Exception Handling (11.2)
 User Interfaces - more widgets: CheckBox, Choice, List and TextArea (7.3, 7.5)  

 Student Assignment 6: Exceptions & More GUI Components
 Key Elements: Exception handling is demonstrated; use other widgets 
 Examples: a) Add exception handling to HW 5  &  b) Add additional components to HW 4

WEEK 7

II.  OBJECT ORIENTED PROGRAMMING 
Inheritance - sub classing, polymorphism, abstract classes, modifiers & access, hierarchies, design using cases & scenarios  (9.1-9.5)

Student Assignment 7: Inheritance
Key elements: Demonstrate inheritance, ability to modify relatively complex case study using a class hierarchy.. 
Example: Modify a ATM-Bank application which has CheckingAccount and SavingsAccount classes  to provide a MoneyMarket account capability or other similar feature.

 WEEK 8

Review
Exam 1

 WEEK 9

Handling windows - applet vs standalone apps GUI (10.1-10.2);
Text File I/O ; binary and object I/O  (11.3-11.4) 

Student Assignment 8 Files
Key elements: Demonstrates file I/O. May be executed from the command line or be a GUI implementation.  
Example: Write a file utility -  (a) multiple file concatenation, (b) file splitting (c) file comparison (d) file search for target text

WEEK 10

III.  ADVANCED PROGRAMMING WITH OBJECTS 
Vectors & Enumeration(13.4)
Advanced user interfaces - Swing components (12.1 - 12.4)

Student Assignment 9: Data Handling ( part 1/2 )
Key Elements: First part of a multi-class  application, where each has its designated responsibilities and is properly documented;  inputs data via  a  GUI data entry form. Input data is validated with exception handling, stored in an array of objects, displayed and written to a file. 

WEEK 11

Linked Lists,  Stacks & Queues ( 13.2, 13.3)
Introduction to Collections: interfaces & classes, lists ( 14.1, 14.2 )

WEEK 12

Short Quiz 2

Collection algorithms ( 14.5 )

Student Assignment 10: Data Handling  ( part 2/2 )
Key Elements:  Data storage in part 1 of the assignment is modified to use collections. Program provides the ability to add, remove, search for and display selected data using standard  API library methods.

WEEK 13

Threads & multimedia (animation , images & sound) ( 15.1-15.4 ) 
Introduction to Networking ( 15.5 )  

WEEK 14

TBA - 

Optional If time permits: Java Database Connectivity - JDBC Drivers
Internet Programming Ch 3 - packaged with text  

Note:  Ideally, this is integrated with HW 9 and HW 10 )

WEEK 15

Review; project completion

WEEK 16

Exam 2