Syllabus for
SW 408
– Visual Programming with Java, V1.0 
School of Engineering
Graduate Course Catalog 2000-2001 :
An introduction to Java programming for experienced programmers.
Object-oriented programming, using Java, Packages, Multi-threading,
Classes, Inheritance, Exceptions, Interfaces, and the Abstract Window
Toolkit. The HTML and Java Model, Java Basics, Java code basics, data
types, and flow of control. (Prerequisite: Significant programming
experience or CS 132) 
Note: This course may be substituted for SW 403 in order
to meet the requirements for core courses. 
Textbook:
Java, Java, Java –
Object-Oriented Problem Solving ,
Ralph Morelli, Prentice Hall, ISBN 0-13-011332-8. 
Computer Usage:
 Students MUST have access to
a computer with a Java compiler. Metrowerks CodeWarrior Academic Pro
for Windows 95, 98, NT is strongly suggested and will be used in
class. E-mail access is required. 
Course Notes: Handouts
/diskettes/e-mail
When: Fall Semester, Monday, 6:30- 9:20, Thursday,
6:30-9:20, Saturday 9AM – 12PM 
Where: Bannow Science Center, Room 257 
Who: Mr. Marquis (Saturday) Dr. D. Lyon (Monday and
Thursday) 
Phone:
(203)641-6293
Fax: (203)877-4187
E- mail:
maynard_marquis_99@yahoo.com,
lyon@docjava.com 
Office Hours:
Monday, Wednesday or Thursday; 6 pm - 6:30
pm in class room (Dr. Lyon) 
Monday, Wednesday or
Thursday; 5 pm - 6:00 pm in Mc108 (Dr. Lyon) 
Or by appointment (Dr. Lyon).
Saturday, 8:30 – 9:00 AM in classroom
(Mr. Marquis) 
Part 1: Join the list!
This course is to be conducted in a partly on-line manner. Plan to
spend a little time each day getting your e-mail. All students are
required to have e-mail access and to join the class list.
To join the class list:
Point your web browser to:
http://www.docjava.com/java/The_Docjava_Java_Page.html
Then subscribe yourself...also add yourself to the notification
list 
 
Course Learning Goals:
1 – To teach how to write
computer code in Java. 
2 – To provide the
means to leverage object-oriented programming. 
3 - To prepare the
student for advanced courses in Java. 
Student Activities:
Learning  a new computer language is
very much a hands-on activity, which cannot be learned from lectures
or textbook reading alone. It does require those lectures and
textbooks, but the real learning results from the laboratory trials
and the homework assignments. To achieve the course objectives, the
student must have good class attendance and participation, conduct
the computer programming tasks during the laboratory periods as well
as the assigned homework. Homework assignments and laboratory trials
are due at the beginning of the class following the assignments. They
are to be placed in an envelope containing the student’s name.
The contents of the envelope will be a diskette and a paper copy of
the requested Java source code. 
Course Requirements:
The schedule of activities and
topics to be covered each week are outlined below. Each week will
begin with responses to questions and a brief review on the previous
week’s topics. The first week will begin with administrative
announcements and a review of this syllabus. 
Week 1
 - Introduction to Java and
Object-Oriented Programming 
1 - Java Introduction
including the Java & HTML Models 
2 - O-O Design including
Encapsulation, Inheritance, Polymorphism, Objects, Classes, and Class
Hierarchy. 
3 - Java Syntax and
syntax example 
4 - Java Packages,
Application structure, Class structure, and Method structure.
5 - O-O Example showing
encapsulation, inheritance, polymorphism, modularity, and
extendibility. (And using syntax, application structure, class
structure, and method structure). 
Goals:
To define the characteristics of O-O
design and show an O-O example the first day. To provide an
understanding of class hierarchy. To introduce those portions of Java
Basics necessary to show the O-O example. 
Outcome: The student
will be able to understand and write simple Java programs, which
illustrate the concepts of O-O design. Outcome:
Students can write and run hello
world.
 
Students can set up a small class hierarchy,
with mammals,
humans, students and professors.
 
Students can display a class hierarchy
graphically using the
code warrior IDE.
 
Week 2
 - Java Basics 
These are topics having
equivalents in other languages and should be familiar to the
students. They will be introduced in this week. Some will be covered
in greater detail later in the course. 
1 - Reserved Words, Case
Sensitivity 
2 - Primitive Data Types
(a word on Class String) 
3 - Operators 
4 - Control Structures
5 - Methods (structure,
overloading, special methods: main and constructor) 
Goals: To introduce basic elements of the Java language,
which permit the development of algorithms within a program. To
understand the use of methods and the passing of variables.
Outcome: The student
will be able to introduce modularity into his Java program by the use
of methods. He or she will also be able to introduce mathematical
relationships and selection criterion. 
Weeks 3, 4, 5
 - Important Java Concepts
1 - Modifier Visibility,
Class Scope 
2 - Modifier Abstract
(Classes & Methods) 
3 - Interfaces
(Implementing in classes and extending other interfaces, more
inheritance & polymorphism). 
4 - Inner Classes (and
again class scope) 
5 – Reserved Word
“this” 
6 - Modifier Static
(variables and methods) 
Goals:
To provide the student with the Java
concepts that give object-oriented programming its modularity and
extendibility benefits. 
Outcome:
The student  will be able to
control the scope of a variable or method. He will be able to use the
concept of Abstract Methods and Interfaces to amplify and further
demonstrate O-O inheritance and polymorphism. 
Week 6
 - Primitive Data Types and Wrapper
Classes 
Arrays and Vectors
1 – More
information on Primitive Data Types 
2 – Methods in
their Wrapper Classes, pp. 100-104, 
3 - Casting, pp. 275
4 – Arrays –
their construction, passing variables, pp. 407-67 
5 – Vector Class
and its methods, pp. 446-447 
Goals:
To provide the student with the
means to manipulate data within his or her program, converting from
one data type to another. To also provide the student with a means of
grouping the data into the containers, arrays and vectors.
Outcome: The student
will be able to write Java programs containing large amounts of data
in an efficient manner. He will also be able to increase and
demonstrate the efficiency, in terms of lines-of-code, of O-O
programming using the containers. 
Week 7
 - Strings and Processing
1 – String Class
2 – String
constructors 
3 – String methods
4 –
StringBufferClass 
5 –
StringTokenizerClass 
Goals:
To provide the student with the
means to work with text-type data in Java programs. 
Outcome: The student
will be able to create, read, and parse text using Java programs.
Week 8
 – Graphical User Interface
Components and Listeners 
1 – GUI Components:
Frames, Labels, Buttons, List, CheckBox, RadioButton, ComboBox, Menu
2 – Event
Listeners: WindowListener, ActionListener, ItemListener,
ListSelectionListener, ChangeListener, MouseListener,
MouseMotionListener, and KeyListener 
Goals:
To give the student the components
necessary to create computer screen displays and to respond to events
occurring on the screen. 
Outcome: The student
will be able to place GUI components onto a computer screen and to
respond to events such as a mouse click or the push of a button.
Week 9
 – Midterm Exam 
Week 10
 – Review Midterm Exam and GUI
Container Layouts 
1 – Container
Layouts: FlowLayout, BorderLayout, GridLayout, BoxLayout, CardLayout,
and GridBagLayout 
2 – Layouts using
CodeWarrior 
Goals:
To provide the means of arranging
and manipulating GUI components in desired patterns on the computer
screen. 
Outcome:
The student will be able to design
functional and aesthetic displays on the computer screen using Java
classes and using CodeWarrior. 
Week 11
 - Graphics and Drawings 
1 – Color control
2 – Font control
3 – Drawings:
Lines, Rectangles, Ovals, Arcs, Polygons, PolyLines 
Goals:
To provide the means to control
color and font characteristics on the screen display and to draw
basic geometric shapes. 
Outcome:
The student will be able to add
color to the screen display, to control the type and size of text
characters, and to draw shapes on the screen. 
Week 12
 - Exceptions 
1 – The try block
2 – throw and
throws 
3 – The catch block
4 – The finally
block 
Goals:
To expose and explain Java exception
handling to the students. 
Outcome: The student
will be able to create exception handling in Java programs, and he or
she will be able to respond to requests for exception handling when
using someone else’s code. 
Week 13
 - File I\O, input & output
streams 
1 – Class hierarchy
of java.io 
2 – Input Stream,
OutputStream 
3 – Reader, Writer,
OutputStreamWriter 
4 – Class File
Goals:
To teach  the student
 the
techniques used in Java to transfer data to and from computer files.
Outcome:
The student will be able to create
files and read from computer files using Java. In particular, he or
she will be able to create or read from files in the ASCI text
format. 
Week 14
 - Multi-threading 
1 – Class Thread
2 – Priorities and
Scheduling 
3 - Synchronization
4 – Runnable
Interface 
Goals:
To expose the student to concurrent
programming and give him the tools to design multithreaded programs.
Outcome:
The student will be able to use the
Thread class and Runnable interface to design, write, and synchronize
multithreaded Java programs. 
Week 15
 – Final Exam 
Morelli Chapter 12,
Recursive Problem Solving and Chapter16, Data Structures, are not
peculiar to Java and will only be covered as time permits. Some of
the Data Structures, Arrays and Vectors, are covered in Week 6.
Morelli Chapter 4, Applets, is not essential in a fundamental course
and will not be covered. Chapter 15, Sockets and Networking, will not
be covered in this course, and is relegated to an advanced course.
Additional References:
1 – Sun’s
Application Programming Interface, available in CodeWarrior.
2 – Java How to Program , Deitel & Deitel, Prentice Hall, Third Edition,
1999. 
3 – The Java Class Libraries , Chan and Lee, Addison Wesley (c) 1997. 
4 – Java Source Book ,
Ed Anuff, The John Wiley and Sons, Inc., First Edition, 1996.
5 – The Java Programming Language , K. Arnold & J. Gosling, Addison Wesley, Second
Edition. 
Grading Policy:
Homework and Laboratory
Trials: 1/3 
Midterm Exam : 1/3
Final Exam : 1/3
Assignments are due at
the beginning of class. Assignments handed in during class lose 5
points, after class 10 points. Late submittals lose 10 points per day
including weekends and holidays. Missing a test results in a zero
unless a written excuse is presented. 
		Mapping: Syllabus to Textbook	
 
Week	No.	Topic	Morelli Pages
			
Week 1		Introduction to Java and
Object-Oriented Programming	
	1	Java Intro	
	2	O-O Design, Encapsulation, Inheritance,
Polymorphism,Objects,Classes, Class Hierarchy	7-10, 58,60
	3	Java Syntax	23, 34
	4	Java Packages, Application Structure,
Class Structure, Method Structure	22-24, 61,63,69,70,74
	5	O-O Example	
 
Week 2		Java Basics	
	1	Reserved Words(Keywords), Case
Sensitivity	25,94
	2	Primitive Data Types	94
	3	Operators	232-240
	4	Control Structures	137-145,
286-302
	5	Methods	118-136
 
Weeks 3,4,5		Important Java
Concepts	
	1	Modifier Visibility, Class
Scope	69,71,72,75
	2	Modifier Abstract (Classes and
methods)	205211
	3	Interfaces	178179
	4	Inner Classes	486-488
	5	Reserved Word "this"	186211
			
Week 6 		Primitive Data Types and Wrapper
Classes	
		Arrays and Vectors	
	1	More information on Primitive Data
Types	80,81,94-96
	2	Methods in their Wrapper
Classes	97-104
	3	Casting	259260275
	4	Arrays	407-467
	5	Vector Class	446-447
 
Week 7		Strings and Processing	345
	1	String Class	
	2	String Constuctors	
	3	String methods	
	4	StringBufferClass	
	5	StringTokenizerClass	
 
Week 8		Graphical User Interface
Components and Listeners	470
	1	GUI Components	
	2	Event Listeners	
 
Week 10 		GUI Container
Layouts	470
	1	Container Layouts	
	2	Layouts using CodeWarrior	
 
 
 
 
Week 11		Graphics and Drawings	533
	1	Color Control	
	2	Font Control	
	3	Drawings	
 
Week 12		Exceptions	599
	1	The try block	
	2	throw and throws	
	3	The catch block	
	4	The finally block	
 
Week 13 		File I/O, input & output
streams	763
	1	Class hierarchy of java.io	
	2	InputStream, OutputStream	
	3	Reader, Writer,
OuputStreamWriter	
	4	Class File	
 
Week 14		Multi-threading	702
	1	Class Thread	
	2	Priorities and Scheduling	
	3	Synchronization	
	4	Runnable Interface	
 
		Mapping: Syllabus to Textbook	
Week	No.	Topic	Morelli Pages
			
Week 1		Introduction to Java and Object-Oriented Programming	
	1	Java Intro	
	2	O-O Design, Encapsulation, Inheritance, Polymorphism,Objects,Classes, Class Hierarchy	7-10, 58,60
	3	Java Syntax	23, 34
	4	Java Packages, Application Structure, Class Structure, Method Structure	22-24, 61,63,69,70,74
	5	O-O Example	
Week 2		Java Basics	
	1	Reserved Words(Keywords), Case Sensitivity	25,94
	2	Primitive Data Types	94
	3	Operators	232-240
	4	Control Structures	137-145, 286-302
	5	Methods	118-136
Weeks 3,4,5		Important Java Concepts	
	1	Modifier Visibility, Class Scope	69,71,72,75
	2	Modifier Abstract (Classes and methods)	205211
	3	Interfaces	178179
	4	Inner Classes	486-488
	5	Reserved Word "this"	186211
			
Week 6 		Primitive Data Types and Wrapper Classes	
		Arrays and Vectors	
	1	More information on Primitive Data Types	80,81,94-96
	2	Methods in their Wrapper Classes	97-104
	3	Casting	259260275
	4	Arrays	407-467
	5	Vector Class	446-447
Week 7		Strings and Processing	345
	1	String Class	
	2	String Constuctors	
	3	String methods	
	4	StringBufferClass	
	5	StringTokenizerClass	
Week 8		Graphical User Interface Components and Listeners	470
	1	GUI Components	
	2	Event Listeners	
Week 10 		GUI Container Layouts	470
	1	Container Layouts	
	2	Layouts using CodeWarrior	
Week 11		Graphics and Drawings	533
	1	Color Control	
	2	Font Control	
	3	Drawings	
Week 12		Exceptions	599
	1	The try block	
	2	throw and throws	
	3	The catch block	
	4	The finally block	
Week 13 		File I/O, input & output streams	763
	1	Class hierarchy of java.io	
	2	InputStream, OutputStream	
	3	Reader, Writer, OuputStreamWriter	
	4	Class File	
Week 14		Multi-threading	702
	1	Class Thread	
	2	Priorities and Scheduling	
	3	Synchronization	
	4	Runnable Interface