COMP 400A: Foundations of Object-Oriented Programming

Course Information


This programming-intensive course provides a foundation for computer programming, introducing basic concepts of object-oriented programming in a language such as Java.


This class cannot be used towards the degree requirements for the MS programs. This class is intended as a preparatory course for graduate students without prior programming experience


This course provides a foundation for computer programming using the Java object-oriented (OO) programming language.

The course addresses the following questions:

  • What is an algorithm?

  • How does one write, debug, run and test an effective computer program?

  • How does one convert an algorithm into a computer program?

  • How does one judge a program?

  • What does “object-oriented” mean?

Topics include: variables, data types, input/output, loops and repetition, choice, arrays, subprograms, classes/objects, OO principles, and recursion.


The student will be able to analyze and decompose problems, specify algorithms, and construct solutions and effectively use the Java programming language to create classes, objects and other components of object orientation; they will also be able to evaluate the structure and effectiveness of an object-oriented program.

Upon successful completion of the course, the student will be able to:

  • Write good programs of small to medium size – programs that are correct, high quality, and use correct and appropriate Object Oriented Programming techniques.

  • Reuse classes and Application Programming Interfaces (APIs) developed by others, especially the standard library APIs.

  • Understand and recognize proper programming style and demonstrate making design decisions consistent with Object-Oriented methodologies.

  • Be able to read, understand, and interpret programs written by others in the same language.


See the Current Course Syllabi.