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:

  1. The basic concepts of Java including using data types with variables and constants.

  2. Program control statements including if else, while, for and the switch as well as debugging techniques and recursion.

  3. Program organization using methods and passing variables. The use of classes and objects (Object Oriented Programming OOP) will also be introduced.

  4. Data structures including using arrays, Vectors, and Strings.

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 I - COMP1300 - Fall Semester 2006

Section 01 Online via WebCT. http://southcentral.edu/students/

Credits - 3 credits (1 lecture - 2 lab)

Required Text: Java Programming by Malik, 2nd Edition, Thomson Course Technology, ISBN 0-619-21608-5.

Required Software: Either TextPad , JEdit , or the Crimson code editor.
The JDK 5.0 Update 8 with NetBeans 5.0 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

  1. A working knowledge of at least one programming language and/or successful completion of Programming Fundamentals- COMP1000 or Cobol I- CC1814. Successful completion is a C grade or higher.

  2. Successful completion of Integrated Software Applications I - COMP1105 (with a C grade or higher) or a working knowledge of the DOS and Windows operating systems.

  3. 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.

Course Goals:

  1. Be fluent with the basic Java language.
  2. Establish a professional, team-based attitude toward programming including commenting, code organization, and code reuse.
  3. Communicate effectively using today's technologies. (email, discussion forums, and other Web- based tools)

 

Core Abilities:

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 paper describing the characteristics of Java as a programming language.
-- Create, compile, and run a simple program using TextPad
-- 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 constants in a program.
-- Utilize casting in a program to convert data types.

3. Use input/ouput (I/O) concepts 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.

4. Utilize control statements in a Java program
-- Learn to use psuedo code to design your programs before actually 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. Utilize debugging techniques as part of the program development cycle.
-- Use specialized print statements to display contents of variables.
-- Use commenting to reduce areas of code as a debugging procedure.
-- Include trace statements in your programs to display information at appropriate times.
-- Use the FAQ and Java Tutorial to analyze different error messages.

7. Use arrays as part of program design.
-- Write a program that utilizes an array.
-- Write a program that passes an array into a method
-- Write a program that demonstrates one of the methods to correctly copy an array.
-- Write a program that utilizes a multidimensional array

8. Utilize basic data structure techniques in your software.
-- Implement a sequential search algorithm.
-- Use a sort algorithm to sort an array.
-- Implement a binary search in a program.
-- Compare the benefits/disadvantages of the Vector class vs. an array.

9. Use recursion to solve certain programming problems.
-- Define recursion.
-- Write out a recursive algorithm.
-- Use recursive methods to complete a complicated task.
-- Describe the difference between direct and indirect recursion.

10. Add a graphical user interface (GUI) to your program.
-- 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.

11. 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.
-- 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.
-- Use the access keywords (private, protected, public, and static) to control access to code and variables.
-- Use accessory methods to limit accessibility to core code. -- Write a constructor method.
-- Describe how abstraction is used in Java programs.

12. 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+  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