Subject Area: Computer Programming
College: Arts and Sciences
Department: Information and Computer Sciences

Prior Competence Information:

Competence Statement (suggested):*
  • Knows basic object-oriented programming constructs including objects, classes, inheritance, encapsulation, overloading and polymorphism.
  • Can design programs and implement them in Java using classes, methods, argument passing, arrays, files, threads, exception processing, event handling and graphical user interfaces.
  • Can use a compiler and systematically debug programs.
  • Knows and employs programming style and documentation conventions.
  • Is familiar with the concepts of top-down design, stepwise refinement, and modularity.

*number of credits negotiated between evaluator and student

Theoretical Components:

Lower Division:
  • Understands basic terminology and concepts of object-oriented programming, including objects, classes, methods, inheritance, encapsulation, and polymorphism at a basic level.
  • Understands model-view-controller architecture at an introductory level.
  • Understands Java scope rules and access control modifiers.
  • Understands fundamental programming elements including control structures, flow-of-control language, event handling, looping, arrays, file processing, string manipulation, threads, exceptions, precedence rules, and graphical user interfaces.
Upper Division: N/A

Practical Application Components:

Lower Division:
  • Can design and code Java programs employing basic programming constructs including flow of control, selection, looping, event handling, arrays, file processing, constructors, method overloading, and argument passing.
  • Can use a Java compiler and systematically debug and test programs.
  • Knows and employs good Java programming style and documentation conventions.
  • Can write functional Java command-line applications and applets.
  • Can design multi-class programs employing inheritance and method overriding.
Upper Division: N/A

Examples of Appropriate Prior Experience:

Extensive programming experience in the Java language, obtained either professionally or through self-study and practice.

Recommended readings/resources:

  • Eckel, Bruce. (2001). Thinking in Java. (2nd ed.). Prentice Hall. Full text available at
  • Main, Michael. (1999). Data Structures and Other Objects Using Java. Addison-Wesley. Chapters 1 and 2.
  • Mughal, Khalid, & Rasmussen, Rolf. (2000). A Programmer's Guide to Java Certification. Addison-Wesley.
  • Tutorials at
  • Bell, Douglas, & Parr, Mike. (1999). Java for Students. (2nd ed.). Prentice Hall.

Steps in evaluation process:

  1. Complete prior proposal form and attach suitable documentation, including bibliography and description of related life/work experience.
  2. Submit prior proposal form to Information and Computer Sciences Department Chair for approval. Approved form will be returned to you so that you can register or you will be contacted if the chairman has questions.
  3. An evaluator will be assigned if one is available.
  4. Register.
  5. Contact evaluator for oral interview and exam.

Describe measurement techniques:

  1. During oral interview with evaluator,student will describe related life or work experience, including object-oriented languages, compilers, IDEs, and deployment environments used, and will answer questions about programming fundamentals and object-oriented programming.
  2. Student will take a comprehensive written exam covering basic theoretical and practical elements of Java programming.

Self-test items/questions for student's consideration (examples of things students should be able to answer if they have a prior competence in this area):

  1. Define and give examples in Java of inheritance, encapsulation and polymorphism.
  2. Give an example in Java of overloading.
  3. Give an example in Java of overriding.
  4. Write code segments demonstrating for and while loops, switch constructs, and if-else logic.
  5. Explain scope rules in Java in terms of the four access control modifiers.
  6. Describe good Java coding conventions in terms of capitalization of class, method and variable names and use of access control modifiers.
  7. Write a Java code segment to instantiate, initialize and traverse a one-dimensional array.
  8. Define and give examples of the following terms: constructors, instance variables, static methods.
  9. Describe and demonstrate argument passing and return of results from Java methods.
  10. Explain the basic arithmetic precedence rules in Java.
  11. Describe your experience with Java compilers and debuggers.