Return to all courses

CSCI 2900J

This is an archive of the Common Course Outlines prior to fall 2011. The current Common Course Outlines can be found at http://www.gpc.edu/programs/Common-Course-Outlines.
Credit Hours 3
Course Title Introduction To JAVA Programming
Prerequisite(s) CSCI 1301, with a "C" or better, or permission from the instructor.
Corequisite(s) None Specified
Catalog Description
The computer programming language Java is presented with a focus on platform-independent algorithm design and implementation.  Topics include Java history, data structures, applets, graphical stand-alone programs, widgets, visual design, events and actions, and exception handling.  Course project included.

Expected Educational Results
Completing this course with a grade of C or better, the student will:

1.                  Know that Java is a 100% object-oriented programming environment.

2.                  Know the history of Java.

3.                  Know how Java is related to the Internet.

4.                  Know what makes Java platform-independent.

5.                  Know how to design algorithms for implementation in Java.

6.                  Know how to build an applet.

7.                  Know how to build a Java stand-alone program.

8.                  Have a general knowledge of the classes and their uses in the standard packages in Java.

9.                  Build Java code to read data from, and write data to, a data file of any type using file streams.

10.              Be able to compare and contrast text files and binary files.

11.              Be able to compare and contrast static and dynamic memory allocation.

12.              Be able to design and develop a Graphical User Interface using applets and stand-alone Java programs.

13.              Be able to develop Java code to handle user, as well as system, created: events, actions, and exceptions.

14.              Implement and understand the theory behind the following programming concepts: multi-threaded, independent threads, and grouping of threads.

15.              Choose and manipulate appropriate abstract data structures such as lists, stacks, queues, and trees.

16.              Compare and contrast abstract data types versus objects.

17.              Demonstrate an understanding of polymorphism and inheritance for objects by using them appropriately in a program.

18.              Describe the appropriateness of sorting and searching algorithms in a given context.

19.              Analyze and determine the efficiency of a specific algorithm using algorithm analysis techniques and tools such as O(n), q(n), and W(n)

General Education Outcomes
I           This course addresses the general education outcome relating to communications as follows:

1.      Students develop their reading comprehension skills by reading the text and handouts.

2.      Students will further develop their communication and critical thinking skills by reading, interpreting, and implementing program requirements to create a well-behaved software system.

3.      Students develop their listening skills through lecture and small group problem solving.  Lecture material is presented that is not included in the text or handout material and is included as part of the tests or assignments.

4.      Students develop their reading and writing skills through the use of problems and activities, including development of computer programs and documentation, designed specifically to enhance their understanding of computer science principles and programming language skills.  Students provide written or oral solutions to these problems in either individual or group format.  They must also answer short-answer type questions on course exams.

II          This course addresses the general education outcome relating to problem-solving and critical thinking skills through programming assignments that take the student through the programming process from understanding the problem all the way to finalizing a correct program solution to the problem.

III        This course addresses the general education outcomes relating to mathematical concept usage and scientific inquiry as follows:

1.         Students apply mathematical concepts in the development of computer programs by creating mathematically based solutions to the assigned problems and communicating the results of those solutions to the program user.

2.         Students apply the scientific method in the set-up and solution of the problems presented to illustrate computer programming principles.

IV.       This course addresses the general education outcome relating to organization and analysis of information using a computer by using a modern, fully-capable programming language in the solution of problems designed to illustrate the concepts and principles of computer programming.

ENTRY LEVEL COMPETENCIES

Students entering this course will meet the expected educational outcomes of CSCI 1301.

Course Content
I)                   Introduction to Java

i)        History

ii)       Platform independence

iii)     Java and the Internet

iv)     Applets and stand-alone applications

v)      The Java engine/virtual machine

vi)     The visual development environment

II)                 Java Programming

i)        Problem solving

ii)       Java syntax

iii)     Method definition

iv)     Package organization and use

v)      Classes

vi)     Simple I/O

vii)   Importing packages

viii)  Applets

ix)     Vectors

III)              Object-Oriented Design

i)        Classes

ii)       Class member

iii)     Instance of classes

iv)     Modular programming

v)      Encapsulation

vi)     Inheritance

vii)   Visibility

viii)  Packages

ix)     Polymorphism

x)      Abstract classes

xi)     Multiple inheritance and interfaces

IV)              Applet Development

i)        Web programming

ii)       Client/server model

iii)     Panels

iv)     Containers

v)      Components

vi)     Introduction to threads and events

vii)   Browser/applet interaction

viii)  Graphical User Interface development

ix)     Buttons, boxes, and lists

V)                Data Structures

i)        Recursion: math models

ii)       Stacks

iii)     Vectors

iv)     Strings

v)      Binary search

vi)     Linked lists

vii)   Queues

viii)  Binary trees

ix)     Binary search tree

VI)              Algorithm Analysis

i)        Big-Oh

ii)       Big-Theta

iii)     Big-Omega

iv)     Analysis of stacks, queues, general trees, binary trees, and general sorting and searching

VII)           Course Project

i)        A program will be developed that will require the use of at least two data structures studied in class.

ii)       The project will require the development of applets or stand-alone programs that will interact with the user allowing the user to:

(1)   Input data into fixed length records containing more than one data type and/or structure.

(2)   Sort fixed length records.

(3)   Search fixed length records.

(4)   Append data to file(s) residing on external storage.

(5)   Store user input in primary memory until the user wants it save

Assessment of Outcome Objectives
A.                 COURSE GRADE

Exams, assignments, and a final exam prepared by individual instructors will be used to determine the course grade.  The course grade must weigh examinations for at least 30% of the grade and programming assignments for 30% of the grade.  Five to seven student programming projects must be assigned.  Testing must consist of at least two one-hour examinations and a comprehensive final examination.  The final examination must be weighted at 25%.  The remaining 15% is at the discretion of the instructor.

B.         DEPARTMENTAL ASSESSMENT

CSCI 2900J Special Topics (Java) will be assessed every five years. The assessment instrument will be determined by the CSCI course committee and will consist of a common project and a set of free response questions that will be included as a portion of the final examination for all students taking the course.

C.                 USE OF ASSESSMENT FINDINGS

The CSCI Committee, or a special assessment committee appointed by the Executive Committee of the Mathematics Academic Group, will analyze the results of the assessment and determine implications for curriculum changes. The committee will prepare a report for the Academic Group summarizing its finding.

Last Revised: Aug. 05, 2011
Return to all courses