University of LaVerne-Athens Campus
Department of Science, Computer Science and Mathematics
Winter 2004
Semester
Hours: 4
Pre-requisites: None
Requirement: E-Commerce,
B.S.
Instructor: Nicholas Harkiolakis, Ph.D.
Associate Professor,
Chair, Dept. of Science, Computer Science and
Mathematics
Class
Sessions: Wednesday 18:00 – 22:00
Location: Main
Computer Lab
Office
Hours: Monday – Wednesday 9:00 – 3:00 by appointment
e-mail: nhark@laverne.edu.gr
Message
phone: 210-6898850
Course Description:
Covers the principles of object-oriented
programming language using Java. Includes classes, methods, graphical user
interface (GUI), multimedia, Java database connectivity (JDBC), and
Web-application development.
Learning Objectives:
·
To introduce a software development environment.
·
To familiarize the student with programming concepts and algorithm
development.
·
To apply programming for the solution of real life problems.
Course Requirements:
·
Class attendance and
participation
·
Weekly homework
assignments
·
In class assignments
Default Assumptions
1.
Unfinished lab activities will always be added to homework
2.
All homework and projects are due on the next scheduled Wednesday session
Objects
First With Java
Barnes and Kolling, Prentice
Hall, 2003
Simply
Java Programmng
Deitel, Prentice Hall, 2003
Weekly Schedule
Week I. January
7, 2004
Theoretical Topics:
Introduction to classes
What is an object?
Creating Objects
Calling methods
Parameters
Data types
Multiple instances
Return values
Technical Topics:
Introducing computers, the Internet and Java
programming with GUI elements.
Lab Activities:
Moving shapes application
Welcome application
Inventory application
Homework:
Develop a simple calculator with addition,
subtraction, multiplication and division operations.
Week II. January
14, 2004
Theoretical Topics:
Class definitions. Fields, Constructors and methods.
Passing data via parameters.
Assignments.
Accessor methods.
Mutator methods. Local variables.
Technical Topics:
Variables, memory concepts, event programming.
Algorithms and pseudocode
Program control statements – if, if .. else, switch
Message dialogs and logical operators.
Lab Activities:
Dental payment application
Wage calculator application
Security panel application
GUI development for the simple calculator
Homework:
Enhance the calculator with error
correction/prevention code
Week III. January
21, 2004
Theoretical Topics:
Abstraction and modularization
Object interaction
Class diagrams versus object diagrams.
Primitive types and object types
Multiple constructors
Method calls
Technical Topics:
Debugging
Repetition statements – while, do ..while, for
Lab Activities:
Car payment application
Class average application
Interest calculator application
Homework:
Enhance the calculator with a Statistics module
Week IV January
28, 2004
Theoretical Topics:
Grouping objects in collections
Numbering with collections
Processing collections
Fixed – size collections
Technical Topics:
Methods
Event handling
Scope and conversion of primitive types
Lab Activities:
Enhancing the wage calculator application
Enhancing the interest calculator application
Fundraiser application
Introduction to Coderally
Homework:
Develop your own racecar for Coderally.
Week V. February
4, 2004
Theoretical Topics:
Behavior.
Interfaces and implementations
Packages and import
Using maps for associations
Public versus private
Class variables and constants
Technical Topics:
Documentation.
Tokenizing strings
The Random class
Arrays
Lab Activities:
Craps game application
Flag quiz application
Student grades application
Introduction to Mindstorm Robotics invention
Homework:
Program the Mindstorm robot to follow a closed dark
line
Week VI. February
11, 2004
Theoretical Topics:
Well-behaved objects
Unit testing
Test automation
Modularization and interfaces
Commenting and style
Technical Topics:
Building classes and objects
Lab Activities:
Microwave oven application
Practice with Mindstorm robot
Homework:
Refine both Coderally racecar and Mindstorm robot
Enhance the calculator application with menu drive
controls
Week VII. February
18, 2004
Theoretical Topics:
Designing classes
Introduction to coupling and cohesion
Code duplication
Extensions
Coupling
Responsibility-driven design
Cohesion and refactoring
Technical Topics:
Collections, ArrayList and Iterators
Universal
Modeling Language (UML)
Lab Activities:
Shipping hub application
Homework:
Analyze and represent a real life scenario using UML
diagrams
Week VIII. February
25, 2004
Theoretical Topics:
Inheritance
Subtyping
Polymorphic collections
Technical Topics:
The Object class
Inheritance and graphics
Mouse, keyboard input and event handling
Lab Activities:
Screen saver application
“Cat and Mouse” painter application
Typing skills developer application
Homework:
Enhance the calculator application with a Geometry module
Week IX. March
3, 2004
Theoretical Topics:
Overriding
Dynamic method lookup
Super call in methods
Method polymorphism
Protected access
Technical Topics:
Exception handling
Lab Activities:
Enhanced car payment application
Homework:
Add a paint module to the calculator application
Week X. March
10, 2004
Theoretical Topics:
Abstraction techniques
Abstract classes and methods
Multiple inheritance
Interfaces
Technical Topics:
Sequential-access files
Lab Activities:
Ticket information application
Introduction to Tomcat server
Introduction to Cloudscape Object Relational DBMS
Homework:
Create a Cloudscape Database and execute simple
queries
Week XI. March
17, 2004
Theoretical Topics:
Handling errors
Defensive programming
Exception-throwing principles
Exception handling and error recovery
Technical Topics:
Database programming
Command line arguments
Java Speech API
Lab Activities:
ATM application
Phone book application
Homework:
Develop a GUI interface to access Cloudscape.
Week XII. March
24, 2004
Theoretical Topics:
Designing applications
Analysis and design
Prototyping
Design patterns
Technical Topics:
Web application development
Client tier
Information tier
Middle tier
Lab Activities:
Bookstore application.
Method of Evaluation
· Class Attendance and Participation: 20%
· Calculator assignments: 40%
· Coderally assignment: 20%
The winner gets an extra 10% towards his/hers final
grade
· Robocode assignment 20%
The winner gets an extra 10% towards his/hers final
grade
Plagiarism
Policy
Students are
responsible for performing academic tasks in such a way that honesty in not in
question. Please refer to the Academic
Honesty Policy in the University Catalog for the full detailed policy on this
matter.
Attendance
Policy
Attendance is
Compulsory. Contact instructor for any absence. Final student grade will be reduced by 10%
for every absence made above three. Course must be dropped if missing more than
five class sessions
Class
Participation
Students are
expected to follow the professor’s guidelines for working classroom
assignments.
Make-up
and late assignments
Students are
expected to manage their time appropriately so as to submit their assignments on
time. Late assignments will receive no credit. Exceptions to this rule will be
considered on an individual basis.
This
course may be modified, verbally or in writing, at any time during the term at
the discretion of the instructor or department