Syllabus: WBIT 2311 Program and Problem Solving II - Cheryl Garvin - Summer 2009

rangesatanskingdomΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

75 εμφανίσεις

Close this window


Syllabus: WBIT 2311 Program and
Problem Solving II
-

Cheryl Garvin
-

Summer 2009



Course Description














Course
Description



The emphasis of this course i
s on advanced programming
techniques in Java including GUI's, software reuse through
component libraries, recursion, event
-
driven programming,
database processing, file processing, and exception handling.
Students are able to create event
-
driven, graphical

programs or
text
-
based programs solving practical problems incorporating
databases and external files.








Prerequisites














Prerequisites



WBIT 1310 Programming and Problem Solving I, WBIT
2300 Discrete Math for IT.








Course Objec
tives/Outcomes/Goals














Course
Outcomes



Upon successful completion of this course, students will be able
to:

1.

Implement event
-
driven GUI programs in Java

2.

Use Java’s exception handling mechanism



Write simple multithreaded programs

4.

Access external information from a Java program
(databases and files)

5.

Use Java collections framework

6.

Test and debug Java programs

7.

Build well engineered and maintainable Java

programs to
meet business organizational needs




















Course
Outlines



1.

GUI – Event Driven



Error Handling / Exceptions

3.

Basic multithreading







4.

Files/DB Access

5.

Data Structures (stacks, queues, links, linked list)

6.

Algorithm Development

7.

Testing and Debugging

8.

Libraries


Textbook Information














Title



Introduction to Java Programming with JBuilder, 3/E





















Author



Y. Daniel Liang




















Publisher



Prentice Hall




















Edition/Year



3RD/2004




















ISBN



0
-
13
-
143049
-
1




















Type



Required resource































Optional References

















Java in a Nutshell

David Flanagan

O'Reilly and Associates

4TH/2002

0
-
59
-
600283
-
1


Beginning Java 2

Ivor Horton

Wrox

2000

0
-
76
-
454365
-
2








Java 2: A Beginner's Guide

Herb Schildt

Mc Graw
-
Hill Osborne Media

1ST/2000

0
-
007
-
212742
-
2


Instructor Information

















Instructor Information

Name:

Chery
Garvin

Email:

Use Vista email

Land Phone:

714
-
243
-
8814

Cell Phone:

714
-
478
-
9404









Instructor Contact Policy














Instructor
Contact
Policy



E
-
mail or phone are both acceptable methods for communication
with me. I check email every mo
rning, Monday through
Saturday. Follow
-
up to unanswered e
-
mail is welcomed, as there
are instances in which messages get “lost.â€
• <BR

You are welcome to use the discussion board for questions,
however, if you need a quick answer, please use e
-
mail or ph
one.
If I cannot answer the phone at the time of your call, please leave
a message and I will contact you as soon as possible. Please leave
your phone number and a brief summary of your issue.

I can be reached by telephone at 714
-
243
-
8814 or 714
-
478
-
9404,
and through Vista email.








Policy on Changes to the Syllabus













Policy on
Changes
to the
Syllabus



The professor reserves the right to change the syllabus and class
schedule, including assignments and tests with prior notice give
to th
e class.








Class Cancellation Policy














Class
Cancellation
Policy



While class cancellation does not apply to an asynchronous
online course, should instructional delays occur due to server
or connection problems or other unforeseen circ
umstances, we
will endeavor to remain on schedule. Such remedies may
include adjustments to due dates, online discussion or tutoring
sessions, etc.








Attendance/Participation














Attendance/Participati
on



All students enrolled in the Web
BSIT
Program must verify their enrollment via
WebCT Vista.

Enrollment verification information is
provided to the Financial Aid Office of your
home institution. To verify your enrollment
you must log
-
in to each of your WebCT
Vista courses by 5:00 PM on the

first dya of
course instruction.

Consistent participation is required.
Activities include, e
-
mail correspondence,
discussion threads and study groups,
assignment submissions, etc.

http://www.we
bbsit.org/StudentPortal/enroll.
asp








Withdrawal














Withdrawal



Withdrawal policy varies by institution. In general, students
who stop attending class without doing the necessary
withdrawal paperwork will receive an automatic grade of
â
€˜F’. Students who withdraw after midterm will receive an
automatic grade of ‘WF’. Withdrawal policy and
procedures are published in the Academic Catalog of your
consortium institution.








No
-
Show














No
-
Show



Students must log into

each of their WebCT Vista courses by
5pm of the day classes begin (Academic Calendar) to confirm
their attendance. Remember, you are taking an online course and
participation in the course is the only way the instructor can "see"






you.

If you fail to log i
nto your courses by 5pm of the day classes
begin, or fail to complete course activities within a tow
-
week
period at any time during the semester, the instructor will
conseder your lack of activity as an indication of your intention
not to continue in the c
ourse. At this point, the instructor may
choose to remove you from group activities or interactions.
Failure to participate without officially withdrawing from the
course will result in a grade of F.


The special circumstances of taking a WebBSIT course de
mand
regular and consistent participation. Be sure to pace yourself
throughout the semester making sure your responses to
communications and assignments are timely. If you are not able
to participate in any assigned class activities, contact your
instructo
r immediately.

A registered student, who has failed to attend class (in person or
by electronic equivalent) by the final payment deadline for the
term, is considered a “no show.â€
 The “no show”
student will be administratively withdrawn and will not

be
reinstated. The “no showâ€
• student is obligated to pay for all
registration in effect at the end of drop
-
add even though he or she
did not attend.


Academic Honesty














Academic
Honesty



Unless otherwise indicated, all assignment
s, projects,
examinations, etc are individual assessments and evidence of
excessive collaboration between students will be treated as
cheating. Note that representing the work of another is
considered cheating. The usual penalty for cheating is an 'F' in
t
he course.

Any student guilty of a dishonest academic activity such as (but
not limited to ) copying sections from another student's paper or
plagiarizing from another source such as a website will receive
an F in this course.

For further information on Ac
ademic Dishonesty review that
section of Academic Catalog of your consortium institution.








Technology Requirements














Technology
Requirements



Technology Requirements

Computers located in on
-
campus labs or libraries
cannot

be
used as t
he primary computer resource for taking online
classes. You will need the reasonably small suite of
hardware and software listed below

Required Hardware:



Computer: A personal computer with Windows XP
or higher, or a MacIntosh with OS 10.4 and software
emul
ation for Windows i.e. Parallels, Fusion PC, or
other Windows XP emulator.



Sound: A sound card with speakers or headphones.



Monitor: A VGA (or equivalent) or better monitor.

Strongly Recommended Hardware:



Printer connected to the computer



CD
-
ROM drive



Microphone

Internet Connectivity:



Internet access. For a dial
-
up connection, at least a
56k modem is recommended. Slower dial
-
up
connections will affect course performance. High
speed Internet connectivity (cable or DSL) is
strongly recommended.

Required

Software:



Microsoft Office XP or beyond, including: Word,
Excel, Access, PowerPoint



Web Browser: A JavaScript enabled Web browser.
These include Netscape 7.1, Internet Explorer 6.0 or
newer versions of either. (Note: Internet Service
Providers [ISP] with

proprietary browsers such as
Prodigy or some versions of AOL, may have
difficulty with JavaScript
-
based activities. Contact
the ISP to determine if the browser will work with
JavaScript.)



Virus protection software



Flash Player



Animations (Tutorials) us
ed in this course require the






installation of the cross
-
platform Flash Player.

o

Download Flash Player 8 for Windows or
Macintosh


Assessment Policies/ Overview of Grading/ Grading Scale














Quizzes



Each unit contains a quiz to be taken online. Your quiz average
will be
20%

of your total grade for this course. Check the course
Calendar to determine the time to take the quiz. You are
permitted (but not required) to take each quiz
t
wo times

with the
resulting
average

as your grade. Failure to complete a quiz
during the designated time period will result in a grade of zero.
Do not wait until the last minute to attempt your quiz.




















Assignments



Each unit has an a
ssignment that must be completed and
submitted to your instructor. For each assignment, you are to
submit the zipped project file. The assignments in this course are
15%

of your total grade. Check the course Calendar to determine
when your assignments are
due.




















Midterm Exam



The midterm exam is
30%

of your grade for this course. It will
be offered at a proctored site. This test will be taken with pencil
and paper and will not be online. It will cover material in Units X
-

X. This is
a mandatory exam for this course.




















Final Exam



A final examination worth
35%

of your final grade will cover all
units in this course. This test will be taken online.




















Grading Standard



A = 90
-

100%

B = 80
-

89%

C = 70
-

79%

D = 60
-

69%

F = 00
-

59%

PLEASE NOTE:

Your final course grade can be no higher than
one letter grade above your final exam and midterm average.








Assessment Deadline Policies (Late Work)














Assessment
Deadline
Policies

(Late
Work)



It is important to turn in your work by the deadline noted in each
week's assignment. If you cannot meet this deadline, you must
communicate with me in order to waive late points. Otherwise,
late points will be assessed as follows:


1
-

2 d
ays = 5%


3
-

6 days = 10%


over 7 days = 20%


I always accept late postings. It is just a matter of applying late
points or not depending on your communication to me.


I grade assignments and post within 72 hours of your due dates.








Proctored E
xams














Proctored
Exams



Yes








Unit 1
-

Introduction to GUI Programming













Date



January 16, 2009




















Objectives



After completion of this unit, students should be able to:

1.

Explain the features of th
e Java graphics API

2.

Use
Color
,
Font

and
FontMetrics

classes

3.

Use drawing methods in the

Graphics
class

4.

Create frames, panels, and simple UI components

5.

Explain the features of common layout managers

6.

Use
FlowLayout
,
GridLayout
, and
BorderLayout

managers

7.

Implement a basic grid
-
layout based application




















Topics



1.

GUI – Event Driven

2.

Algorithm Development

3.

Testing and Debugging







4.

Libraries














Readings



Liang, Chapter 11




















Assignments



Grid Layout

After you have completed this unit, you should have a general
understanding

of the layout managers in Java and how to add
controls to a Java form. This assignment is the first in a series of
assignments in which you will build an application to play music.

For this assignment, your task is to implement a basic grid
-
layout
applica
tion. The application should consist of a form with the
“gridâ€
• layout manager. To this form, add 128 buttons;
these buttons should each have a distinct label
-

the numbers
sequentially from 0 to 127. Your grid should be 16 buttons in
width and 8 button
s in height – resulting in a 16x8 2
-
dimensional grid of buttons.








Unit 2
-

Create User Interface and Event
-
Driven Programming













Date



January 30, 2009




















Objectives



After completion of this unit, students sho
uld be able to:

1.

Describe principles of good Graphical User Interface
(GUI) design

2.

Explain the basics of event
-
driven GUI programming

3.

Construct GUIs using Swing components

4.

Utilize buttons, labels, lists, text fields, panels, message
dialog boxes and men
us

5.

Implement programs that handle mouse and keyboard
events

6.

Use standard event adapters

7.

Use anonymous event adapters

8.

Create a multi
-
windowed application




















Topics



1.

GUI
-

Event Driven







2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries














Readings



Liang, Chapters 12 and 13




















Assignments



Responding to Events

In this assignment, you are tasked to extend your application
from the first assignment (Grid Layout) such that the buttons
re
spond to click events and key presses are handled. When
completed, this assignment will allow you to play music on your
computer.

Implement an event
-
driven application that invokes a handler
when the button is pressed. This handler should assign an
“active instrumentâ€
• property such that clicking a button
selects the MIDI instrument associated with the numeric label of
the button
that was pressed (i.e. if the user presses the “82â€

button, then the active instrument will be set to 82). You may
find it useful to convert the string of the button’s label to an
integer.

Additionally, your application should respond to key press
ev
ents. Your
KeyListener

event handler should play a MIDI
note (pitch defined by key pressed) using a sound bank based
upon “active instrumentâ€
• (defined by the buttons above)
using the General MIDI Standard (ex. 0 = acoustic piano, 14 =
xylophone, 25 = a
coustic guitar, etc.).

The synthesizer class is provided, so your application should
reference it and make use of it (i.e. you don’t have to write
this class).








Unit 3
-

Applet and Advanced Graphics













Date



January 30, 2009




















Objectives



After completion of this unit, students should be able to:







1.

Explain Java Virtual Machine and platform independence

2.

Develop and deploy applets via the
applet
/
object

tag

3.

Use
init
,
start
,
stop
, and
destroy

methods in creating
a
pplets

4.

Pass parameters from HTML pages to applets

5.

Implement an applet that displays complex, user
-
defined
graphics














Topics



1.

GUI – Event Driven

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries

5.

HTML




















Readings



Liang, Chapter 14




















Assignments



Applets and Graphics

In this assignment, you are tasked to build an applet in Jav
a that
converts temperatures.








Unit 4
-

Exception Handling













Date



February 6, 2009




















Objectives



After completion of this unit, students should be able to:

1.

Explain the need for error and exception handling in

programming

2.

Describe the exception class hierarchy

3.

Define and throw exceptions in a method

4.

Use the
try
-
catch

block in exception handling

5.

Create user
-
defined exception classes

6.

Release resources using finally clause

7.

Implement an exception
-
handling con
sole application




















Topics



1.

Error Handling / Exceptions

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries




















Readings



Liang, Chapter 15




















Assignments



Exception Handling

Most of us
have played the “high
-
lowâ€
• guessing game
wherein one player picks a number and the other player tries to
guess what the number is; in this game, if the guessing player
guesses less than the number, then the other player responds
“too low,â€
• and if t
he player guesses more than the number,
then the other player responds “too high.â€
• This keeps going
until the guessing player correctly guesses the number.

Your task in this assignment is to implement such a guessing
game using exceptions. Implement an

exception
-
handling
console application with the following:



Program generates random number that user tries to guess



User enters guess



Program generates “tooHighâ€
, “tooLow” or
“correctâ€
• exception



Exception handler prints appropriate respons
e to user and
repeats until the user makes the correct guess








Unit 5
-

Multithreading














Date



February 20, 2009




















Objectives



After completion of this unit, students should be able to:

1.

Explain multithreaded p
rogramming and its function

2.

Explain the life cycle of a thread

3.

Use thread priorities

4.

Create, control and destroy threads

5.

Implement a multithreaded program







6.

Explore multithreading with a simple console application














Topics



1.

Basic
multithreading

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries




















Readings



Liang, Chapter 18




















Assignments



Multithreading “Racersâ€


Now that you’ve completed the unit on multithreading, you
know
the basics of how to create and run thread
-
based classes.
This assignment allows you to practice multithreading
programming.

Your task in this assignment is to create a threaded class that
“racesâ€
• by counting and displaying the numbers from 1 to
10000.

Each of the instances of this thread class should have a
unique ID (i.e. the first instance should be numbered “1â€
•,
the next instance should be numbered “2â€
•, etc.).

Now that you have your threaded class, write a main/driver class
that instantiates
/spawns 10 instances of your threaded class and
runs each of them. When the first thread completes and returns,
invoke
System.exit()

to terminate the program; in so doing,
you will be able to determine which thread “wonâ€
• and
achieved it’s conclusion
first.








Unit 6
-

Data Structures














Date



March 6, 2009




















Objectives



After completion of this unit, students should be able to:

1.

Describe the Java Collection Framework hierarchy

2.

Use basic Java collection data
structures

3.

Select an appropriate data structure for an application







4.

Explain serialization of objects

5.

Implement a stack structure














Topics



1.

Data Structures (stacks, queues, lists, maps)

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries




















Readings



Liang, Chapter 17




















Assignments



A Stack of “Sausageâ€


The objective of this assignment is to allow you to work with the
Stack data structure and explore the idea of first
-
in, last
-
out
(FILO) servicing.

Imagine that you're visiting a local all
-
you
-
can
-
eat breakfast bar;
among the many
items on the bar is a pan of sausages. Your task
is to simulate the sausage pan. Note that when new sausages are
added to the pan, they're always added to the top (the worker just
dumps new sausages on top of the old sausages); also note that
whenever some
one takes a sausage to eat, they pick the top
-
most
sausage. Thus we've got a stack (first
-
in, last
-
out) and the
bottom
-
most sausage is always the oldest. For sake of simplicity,
imagine that the pan only allows you to select a "top" sausage
(i.e. you can't

pick among many).

Your task is to utilize a stack collection (the
Stack

or
Vector

class is appropriate). Your program should allow the user to add
a sausage, remove a sausage, and print the status of the stack. The
stack should store the time in which the

sausage was added; and
when a sausage is removed, the program should display how long
the sausage "lived" in the pan (i.e. the difference from now to
when it was added to the pan).

Important items to consider:



Don't allow the user to remove (pop) a sausage if the pan is
empty



Displaying the status of the stack should show how many
sausages are in the stack and the "age" of the topmost sausage









Use the
Stack

or
Vector

class to make your job a LOT easier

(otherwise, you must implement the
stack

class yourself).



To get the time in Java,
import java.util.*

and then make
use of the
Date

class.


Unit 7
-

File Access














Date



March 20, 2009




















Objectives



After
completion of this unit, students should be able to:

1.

Describe the Java streams class hierarchy

2.

Create input and output streams

3.

Read from or write to external files using file streams

4.

Use
File

class

5.

Use
JFileChooser
dialog to access files and directori
es




















Topics



1.

Files/Database Access

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries




















Readings



Liang, Chapter 16








Unit 8
-

Database Access














Date



April 3, 2009




















Objectives



After completion of this unit, students should be able to:

1.

Create SQL commands

2.

Describe Java Database Connectivity (JDBC)

3.

Connect to and query databases using JDBC

4.

Connect to and update databases using JDBC

5.

Implement a GUI program

using JDBC




















Topics



1.

Files/DB Access

2.

Algorithm Development

3.

Testing and Debugging

4.

Libraries




















Readings



Liang, Chapter 22




















Assignments



Database Access


The objective of this assignment is to allow you to work with
JDBC via an ODBC
-
connected Access database.

Your first task for this assignment is to locate and set up the
“exampleMDB.mdbâ€
• file in the supplemental chapters
section of the CD
-
rom that came

with your Liang text. Copy this
file to your hard drive. Next, create an ODBC connection to this
database called “assignment8â€
•.

Next, create a simple Java program that connects to this database
using JDBC. Your program should then query this database
’s
“studentâ€
 table and display a list of all the students’
names in alphabetic order (based upon last name).

If you implement your program correctly, this is the output you
should see:

Rick R. Carter

Frank E. Jones

Joy P. Kennedy

Toni R. Peterson

J
osh R. Smith

Jean K. Smith

George K. Smith

Jacob R. Smith

John K. Stevenson

Patrick R. Stoneman

Josh R. Woo








Important Dates














Important
Dates



Summer Semester 2009

WebBSIT Term Calendar


First Day Students May Log into Vista Courses 11
-
Aug








Classes Begin 14
-
Aug


Students Must Log Into Course to Confirm Attendance for
Financial Aid 14
-
Aug


Drop/Add 14–19 Aug


Last Day for Students to request alternate proctored exam sites
29
-

May


Cont
act Testing Center to schedule proctored exams for each
course 29
-

May


Midterm exams 8
-
10 June


Midpoint Date Last Day for Students to Withdraw with a grade
of "W" 17
-
June


Online course evaluation period begins 1
-
July


Online course evaluation period e
nds 22
-
July


Classes end 22
-
July


Final Exams 23, 24, & 27 July


Close this window