Course Highlights
Target Population: This course is an intended for students,
professionals, and marketing people interested in learning some of the
more advanced features of Java. This
is a required course for the Computer Careers AAS Information Systems
programming degree and Web Programming Certificate.
Here's what you'll learn by taking this course:
-
How to use the NetBeans and Matisse programming tools to
create GUI (Graphical User Interface, Window-like) programs using
the Java 2-D graphics library and Swing components.
-
Advanced OO (Object Oriented) concepts including
inheritance and polymorphism to create abstract classes and interfaces.
-
I/O & Networking techniques (input/output)
including streams and thread for networked programs and software
that will utilize the multi-core chips.
-
Utilizing databases for dynamic programs using JDBC
as well as advanced data structures such as linked lists.
This course uses up-to-date teaching techniques allowing
you to learn by reading, listening, experimenting, and writing your
own code. Each module has specific learning activities designed to help
you learn in an interesting and fun manner.
This course is part of the
Web Programming Certificate
and the
AAS Information Systems
programming degree
program at South
Central College.
(A more detailed list of
learning objectives
is given below.)
Course Details
Java II - COMP2305 - Fall Semester
2006
Section 01 Online via WebCT.
http://southcentral.edu/students/
Credits - 3 credits (1 lecture - 2 lab)
Required Text: Introduction to Java by
Liang, 6th Edition, Pearson/Prentice Hall,
ISBN 0-13-222158-6.
Required Software: The
TextPad
code
editor.
The
JDK 6.0 with NetBeans 5.5
available for free from Sun
Microsystems.
It is recommended that you have at least one flash drive to store you
work and class information. (Please back up your data on a regular basis!)
For more information contact:
Peter K. Johnson
, Instructor
email:
peter.johnson@southcentral.edu
phone: 507 389-7337
Prerequisites
-
Minimum typing speed of 35 wpm.
You can test your typing speed at
http://typingtest.com
-
Successful completion of Java I - CC2816 (with a C grade
or higher), or a working knowledge of C++ or C#, or a working
knowledge of variables, methods, and classes/objects.
Note: Prerequisites ensure that you are at the correct
learning level for the course. Please feel free to contact the instructor
to help you determine your expertise level if you have not completed the
prerequisite courses.
Learning Objectives
1. Demonstrate the relationship between objects and classes.
-- Describe in a paragraph the difference between an object and a class using
at least one real-world example.
-- Modify an existing program with methods into a program that contains an object
and uses it to create a class and use it.
-- Write a program that contains an object but will not run on its own.
-- Write a program that creates and uses a class from an object.
-- Create an class that accesses an objects data and methods.
-- Create a program that utilizes a constructor to initialize startup variables
when a class is created.
-- Demonstrate the scope of a variable in the context of a class.
-- Use the keyword 'this' as part of a class showing the current instance of
a variable.
2. Write a program that uses inheritance to create new classes
-- Write a program that demonstrates the relationship of superclass
and subclass.
-- Write a program that overrides methods from its parent class.
-- Write a program that demonstrates polymorphism and dynamic binding.
-- Demonstrate the use of the instanceof operator.
3. Use UML graphical notations to describe classes and objects.
-- Write a paragraph describing the difference between a flow chart
and a UML diagram.
-- Draw a diagram of a program that utilizes a class using UML (Unified
Modeling Language)
-- Draw a UML diagram of a class showing the class name, public and
private properties, and public and private methods.
4. Use the Java API as part of the development cycle.
-- Create a shortcut on your production machine to the API (Application
Programmer Interface) in JavaDocs
-- Describe what a package is in the Java language.
-- Describe at least five packages from the API and tell how they
would be useful in writing a program.
-- Use the API to look up and create a Frame class in a window.
-- Use the API to determine some of the methods that are available
for the String class.
5. Write a program that utilizes frames and layout managers.
-- Describe the Java graphics API (Application Program Interface).
-- Use frames and panels in a program.
-- Demonstrate how layout managers control the layout of components.
-- Utilize the paintComponent method in a program.
6. Incorporate graphics in a Java program.
-- Use the Color, Font, and FontMetrics classes to customize the
appearance of your programs.
-- Use the Graphics class to draw lines and rectangles.
-- Use the Graphics class to draw ovals and arcs.
-- Use the Graphics class to display a clock or pie-chart.
7. Utilize event-driven programming concepts.
-- Draw a diagram showing the relationship between registration,
listening, and event handling.
-- Describe the difference between an event and an event source.
-- List at least four user actions, the source object for each action,
and the event type generated.
-- List at least four events, the interface used for that event,
and the method or handlers for that event.
-- Write a program that handles window events.
-- Debug an event-driven program.
-- Write a program that uses multiple listeners for a single source.
8. Create a GUI (graphical user interface) using Swing components.
-- List at least 10 of the Swing user-interface components and the
suggested prefix for each one.
-- Describe the difference between Swing components and AWT.
-- Write a program that utilizes at least 6 components.
-- Write a program that displays images using the ImageIcon class.
-- Use borders to visually group user-interface components.
-- Utilize a message dialog box in a program.
-- Create multiple windows in an application.
-- Implement the listener interface for the Swing components.
9. Use advanced graphics techniques such as Event adapters.
-- Utilize a programming environment such as Matisse
-- Write a program
that handles mouse events and keystrokes.
-- Model dynamic behavior using sequence and statechart diagrams.
-- Write a program that uses standard event adapters.
-- Write a program that incorporates anonymous event adapters.
10. Create an applet that will run in a Web page.
-- Describe how a Web browser controls and executes applets.
-- Write a program that uses the four main methods (init, start,
stop, and destroy) showing when they are triggered.
-- Incorporate an applet in a web page.
-- Pass parameters into an applet.
-- Write a Java program that will run as an application as well as
an applet.
11. Incorporate exception handling in your program design.
-- Draw a diagram showing the basic concept of Java's exception handling.
-- List the different types of exception types.
-- Use the keyword 'throws' to claim an exception in a method.
-- Write a method that utilizes try, catch, and throw to handle exceptions.
-- Use the keyword 'finally' in a try-catch block.
-- Describe when to use, and when not to use exception handling in
your programs.
12. Demonstrate the use of multithreading in a Java program.
-- Describe what a Java thread is.
-- Write threads by extending the Thread class.
-- Write threads by implementing the Runnable interface in cases
of multiple inheritance.
-- Demonstrate controlling threads in a program.
-- Use thread synchronization to avoid resource conflicts.
-- Use the timer class to control animation.
13. Use streams and other I/O techniques to communicate with
your Java programs.
-- Draw a graphic representation of input and output streams.
-- Write a program that uses a byte stream.
-- Write a program that uses a character stream.
-- Write a program that reads and writes to external files using
the File class.
-- Use JFileChooser to display open and save file dialog boxes in
a program.
-- Use text input and output to the console.
-- Write a program that serializes (and deserializes) objects.
-- Use the RandomAccessFile class to read and write from a file.
-- Write a program that parses text files using the StringTokenizer
class.
-- List at least four classes from the InputStream interface.
-- List at least four classes from the OutputStream interface.
14. Write a Java program that utilizes a database using JDBC.
-- Write five different SQL statements that will be used to extract
a dataset from a database file.
-- Write a Java applet that connects to a database file using JDBC.
-- Use the PreparedStatement object to create a parameterized SQL
statement.
-- Handle null values in a result set.
-- Write a program that displays the metadata of a database file.
15. Write a Java program that utilizes client/server technologies.
-- Draw a picture showing the relationship between client/server,
sockets, and I/O streams.
-- Write a program that gets input from the user on one computer
(client) and calculates the results on another computer (server).
-- Write a program that will handle multiple client requests using
multithreading.
-- Create a client/server applet that retrieves and displays web
pages.
-- Write a Java application that allows two people to play tic-tac-toe.
16. Use data structures in a Java program
(Linked Lists)
-- Write a Node class
--Write a Single Linked List class
-- Create a linked list using the LinkedList class.
--Draw a diagram showing the difference between a single linked list,
a double linked list, a circular list, and a binary tree.
-- Give real-world examples showing how a programmer would use arrays,
arrayLists, vectors, linked lists, circular list, and binary trees.
17. Use data structures in a Java program (hash tables and
sets)
-- Compare the difference between arrays and collections.
-- Diagram an instance of a Collection created from the Java Collection
Framework.
-- Create a hash set filled with strings.
-- Write a program that demonstrates the differences between a tree
set and a hash set.
Grading
A 97-100%
A- 90-96
B+ 97-89
B 84-86
B- 80-83
C+ 77-79
C 74-76
C- 70-73
D+ 67-69
D 64-66
D- 60-63
F Below 60%
The grading for this course is performance-based. You will not be
graded a curve. This means that your grade is based on the work you
do and not on what grade others in the class receive.
As your instructor I am the record-keeper of your points. I do not “give
you a grade”; I only keep track of the scores you receive.
You will earn your grade by demonstrating your knowledge of the learning
objectives listed at the bottom of each learning activity page. Complete
the work according to the specifications and you will receive points
accordingly.
One hint: This is a project and participation-based
course. For example, most projects are worth 25 points while a quiz
in the same module might only be worth only 10 points. This focuses
your efforts on demonstrating your knowledge in applying your
learning,
not just knowing the facts or memorized information. (It also makes
the things you learn in this course much more useful in the real
world!)
Course Policies
Be responsible for your own actions.
Respect due dates - No late projects, papers, or quizzes will
be accepted unless you have made prior arrangements in writing with
the instructor and have a valid and documented reason. All late projects
that are accepted will automatically drop one letter grade.
Quizzes - Make-up quizzes must be done on or before the next
class session. 10% will automatically be taken off the total available
points on all make-up exams.
Incomplete - An incomplete is granted due to serious extenuating
circumstances (e.g. a death in the immediate family, hospitalization,
etc.) near the end of the semester when the majority of the coursework
has been successfully completed. An incomplete will not be granted
for failing work.
Cheating - All graded projects must be your own work only. Cheating
or plagiarism is a serious breach of academic ethics and could lead
to sanctions including expulsion from college. When taking tests, protect
your answers from others. If cheating is discovered, all participants
will be penalized.
Special Needs -
If you have a disability and need accommodations to participate in
the course activities, please contact your instructor as soon as possible.
This information will be made available in an alternative format, such
as Braille, large print, or cassette tape, upon request.
Student contributions - Students are expected to:
-- Participate in course discussions and actively participate within
their team.
-- Complete all projects on or before the deadline.
-- Read all assigned material before class or chat sessions.
The Bottom Line -
I am here to help you learn and understand the material presented
in this course. Please let me know if you do not understand any concepts
or projects in this class. Feel free to clarify any questions you may
have during class, at my office, or via email. I am also open to any
suggestions you may have that would make this course more interesting
and/or useful.
Peter K. Johnson