GEORGIA PERIMETER COLLEGE
COMMON COURSE OUTLINE
COURSE ABBREVIATION CSCI 2900J Special Topics (Java)
CREDIT HOURS 3
COURSE TITLE Introduction to Java Programming
PREREQUISITES CSCI 1301, with a C or better, or permission from the instructor.
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.
SPECIFIC 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.
I) Introduction to Java
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
vi) Simple I/O
vii) Importing packages
III) Object-Oriented Design
ii) Class member
iii) Instance of classes
iv) Modular programming
x) Abstract classes
xi) Multiple inheritance and interfaces
IV) Applet Development
i) Web programming
ii) Client/server model
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
v) Binary search
vi) Linked lists
viii) Binary trees
ix) Binary search tree
VI) Algorithm Analysis
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 saved.
ASSESSMENT OF EXPECTED EDUCATIONAL RESULTS
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.