Dec 26, 2024  
BC3 Academic Catalog: 2024-2025 
    
BC3 Academic Catalog: 2024-2025

COMP 238 - Object-Oriented Programming

3 Credits: (3 lecture)

Course Description
This second-level course emphasizes the concepts of object-oriented design & programming and includes a thorough conceptual study of encapsulation, inheritance and polymorphism in a primary object-oriented programming language. Various implementations of the object-oriented paradigm in other programming languages are also examined along with operator overloading, templates/generics, exception handling and unit testing.  

Note Spring semester only.

Prerequisite COMP 230 or COMP 237 or permission of the instructor.


Text
Deitel, P. J. & Deitel, H. (2018). Java: How to program, early objects (11th ed.).  New York City, NY: Pearson. 

Objectives
The student will be able to: 

A. Develop (design, implement, and test) classes that demonstrate encapsulation and information hiding.  

B. Implement “is-a” relationships in a class hierarchy by using inheritance. 

C. Describe the differences between static and dynamic polymorphism. 

D. Extend the applicability of functions and classes by using templates / generics. 

E. Overload operators when implementing a class. 

F. Improve the reliability of programs through appropriate exception handling.  

G. Apply unit testing to ensure the reliability of class implementations. 

H. Contrast the mechanisms used to implement object-oriented programming in two different object-oriented programming languages. 

Content
A. Object-oriented design 

B. Encapsulation and information-hiding 

C. Inheritance and class hierarchies 

D. Polymorphism and abstract classes 

E. Templates / generics 

F. Operator overloading 

G. Exception handling 

H. Unit testing 

I. Object-oriented programming in various languages 

Student Evaluation
The student’s final grade in the course will be based on a minimum of two exams and a minimum of six projects.