CPE342 Object-Oriented Problem Solving

Course Description

This course aims to introduce students to object-oriented programming by building on the understanding of procedural programming and provide them with object-oriented programming skills to solve computational problems. The course includes practicing object-oriented programs development, editing, compiling, linking, and debugging using Java. The core of this course is studying objects and classes and how they are used to represent data. Through the study of objects and classes, this course introduces students to the concepts of inheritance, polymorphism, abstraction, overriding, reuse, encapsulation, etc…


Please join the course facebook group: 



Course Outline , Course Syllabus


Programming Fundamentals: Part IPart II



Objects & Classes: Part I , Part II , Part III

Inheritance & Polymorphism: Part IPart II

Abstract Classes and Methods



Exception Handling


Lab Documents

Lab0 Tutorial

Lab1: Tutorial, Sheet, Solution

Lab2:Tutorial, Sheet, Solution

Lab3: Tutorial, Sheet, Solution

Lab4: Tutorial, Sheet

Lab5: Tutorial, Sheet 

Lab6: Tutorial, Code: Part1&2, Part3, Sheet, Item.java

Lab7: Tutorial, Sheet, Solution

Lab8: Sheet, Files

Recorded Lectures

Visibility Modifiers: Part-1, Part-2

Lab5: Part-1, Part-2

Scope of Variables + Introduction to Composition

Object Composition & Passing Objects to Methods: Part-1, Part-2

Passing Objects to Methods & Arrays of Objects: Part-1, Part-2

Arrays of Objects: Part-1, Part-2

Arrays of Objects - Immutable Classes: Part-1, Part-2

This Keyword

Math Class & Arrays Class

Lab6- Sunday 5/4: Part-1 , Part-2

Lab6- Tuesday 7/4: Part-1, Part-2

Lab6- Thursday 9/4: Part-1, Part-2

Lab6 - Tuesday 14/4: Part-1, Part-2

Inheritance - Thursday 16/4: Part1, Part2

Inheritance - Sunday 19/4: Part1, Part2 

Inheritance - Tuesday 21/4: Part1, Part2

Inheritance - Thursday 23/4

Inheritance - Sunday 26/4: Part1, Part2

Polymorphism - Tuesday 28/4: Part1, Part2

Dynamic Binding and Casting - Thursday 30/4: Part1, Part2

Object's Equal Method & Protected Modifier - Sunday 3/5: Part1, Part2

Lab8 - Monday 4/5: Part1, Part2

Abstract Classes and Methods - Tuesday 5/5: Part1, Part2 

Interfaces - Sunday 31/5

Additional Material

Programming Fundamentals Exercises

Programming Fundamentals Quizes Samples

Methods Exercises

Visibility Modifiers Code Example

Object Composition and Passing Objects to Methods Example

Arrays of Objects Example


All lab assignments should be submitted to the following email: This email address is being protected from spambots. You need JavaScript enabled to view it.

If the assignment includes code submission, make sure you submit only your .java file(s). If there are several files in your submission, compress the files and submit a .rar or .zip file. 

Late submissions (after the deadline) will not be accepted.

Assignment # Assignment Document Assignment Deadline

Saturday February 22th midnight. 

2 pdf

Saturday March 7th, 2020 midnight.

3 pdf

Tuesday March 17th, 2020

Saturday March 21st, 2020 midnight

4 pdf

Thursday April 2nd, 2020 midnight.

5 pdf

Wednesday April 29th, 2020 midnight.

Saturday May 2nd, 2020 midnight.





Sums (50)