Course Highlights
Target Population: This course is an intended for students,
professionals, and marketing people interested in learning how to program
using the Java language. 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:
-
The basic concepts of Java
including using data types with variables and constants.
-
Program control statements including
if else, while, for and the switch as well as debugging techniques
and recursion.
-
Program organization using
methods and passing variables. The use of classes and objects
(Object Oriented Programming OOP) will also be introduced.
-
Data structures including
using arrays, Vectors, linked lists, and hash tables.
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.
Course Details
Java - COMP2300 - Fall Semester
2009
On-line and Face-2-Face via D2L. http://southcentral.edu/students/
This course is available as an on-line course with the instructor's
permission.
Credits - 4 credits (4 lecture)
Required Text: Java Programming by
Malik, 3rd Edition, Thomson Course Technology, ISBN 1-42390135-57.
Required Software: Eclipse - Download
from here. (Choose the Eclipse
for Java developers)
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
- Successful completion of
Programming Fundamentals - COMP1130 (with a C grade
or higher) or a working knowledge of at least one programming
language.
- Minimum typing speed of 35 wpm - You
can test your typing speed at
http://typingtest.com
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. Install Java.
-- Install the Java SDK on a personal computer.
-- Set the PATH statement in the environment to include the Java binary files.
-- Write a paragraph describing the characteristics of Java as a programming language.
-- Create, compile, and run a simple program using Eclipse or a similar Java editing program.
-- Write a paragraph or draw an illustration showing how a .java source code
file is processed into a running program.
-- Describe why program style is important in a team environment.
2. Create a simple Java program that utilizes primitive data
types and operations
-- Write programs that utilize the three-tiers of data,
business rules, input/output
-- List the eight primitive data types from memory.
-- Use the eight primitive data types as variables in a program.
-- Use the keyword "final" to create a constant in a program.
-- Utilize casting in a program to convert data types.
3. Use I/O techniques in a Java program.
-- Use the dot operator to access predefined methods.
-- Demonstrate the use of input and output dialog boxes in a program.
-- Utilize String methods in a program.
-- Format output using printf( )
-- Write information to a file.
-- Read information from a file.
-- Write a program that parses text files using the StringTokenizer class.
4. Utilize control statements in a Java program
-- Use commenting to design your program in English before you start coding.
-- Analyze the results of different finite state machines.
-- Utilize various relational and logical operators in a program
-- Use the if else selection statement to make decisions in a program.
-- Use the switch statement to test the value of a single variable.
-- Use the ternary operator ( ? : ) in a program to replace an if
else statement.
-- Use a while loop in a program.
-- Use a do loop in a program.
-- Use a for loop in a program.
-- Use the keywords break and continue in a program.
-- Demonstrate the difference between using the = (assignment statement)
and the = = (equality operator).
5. Write custom methods
-- Draw a diagram showing the parts of a method showing where incoming
and return variables are declared.
-- Write a method that accepts different variable types and returns
a value or object.
-- Write a program that demonstrates the scope of a local variable.
-- Write several methods that utilize overloading.
-- Demonstrate the scope of any identifier or variable.
-- Write a description of abstraction, giving real-world examples.
6. Actively debug programs using print statements, breakpoints, and stepping.
-- Use specialized print statements to display contents of variables.
-- Use block commenting to reduce areas of code as a debugging procedure.
-- Utilize Web resources such as Google to analyze and solve various Java error messages.
-- Use breakpoints and stepping to debug a program.
7. 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 creates and uses a class from an object.
-- 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.
8. Use arrays and ArrayList to handle simple data structures.
-- Write a program that utilizes an array.
-- Write a program that passes an array into a method.
-- Write a program that passes a single element of an array into a method.
-- Write a program that utilizes a multi-dimensional array.
-- Compare the benefits/disadvantages of using an Array, Vector, or an ArrayList.
9. Utilize basic data structure techniques to sort and search through data.
-- Implement a sequential search algorithm.
-- Use a sort algorithm to sort an array.
-- Implement a binary search in a program.
10. Add a graphical user interface (GUI) to your program.
-- List as least 10 of the Swing user-interface components and the suggested prefix
for each one.
-- Use the basic Swing components in a program (JFrame, JLabel, JTextField, JButton)
-- Describe "event-driven" programming.
-- Use an event handler to handle various events in a program.
-- Implement the listener interface for Swing components.
11. 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.
12. 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.
13. 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 demonstrating its proper usage.
-- Describe when to use, and when to use, exception handling in your programs.
14. 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 dislay open and save file dialog boxes in a program.
-- Write a program that serializes (and deserializes) objects.
15. Use data structures in a Java program (linked lists, hash tables, and sets)
-- Write a Node class.
-- Write a Single Linked List class.
-- Create a linked list using the LinkedList class.
-- Draw a diagram showing the differenc tetween a single linked list, a double linked
list, a circular list, and a binary tree.
-- Give real-wrold examples showing how a programmer would use arrays, arrayLists, vectors,
linked lists, circular lists, and binary trees.
16. Use recursion to solve certain programming problems.
-- Define recursion.
-- Write out a recursive algorithm.
-- Use recursive methods to complete a complicated task.
17. Develop a programming style using the program development process.
-- Describe the traditional software development process in writing
a program.
-- Utilize the XP software development process in writing a program.
-- List at least five guidelines to be used for classes.
Grading
A 97-100%
A- 90-96
B+ 87-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