Skip to Main Content

Object Oriented Programming, Course Code (CS2104): Course Outlines

The faculty of computing was established with the mission of developing strong academic programs and has been contributing towards the swift development of technology to support the socio-economic development of the nation. Countries around the world have

Course Objectives

Goal:

This course introduces Object Oriented Programming (OOP) with Java as an illustration language. Objective of this course is to ensure that students understand object-oriented programming concepts and are able to create object-oriented computer programs.

Learning Objectives:

  1. Understand basic concepts of OOP like classes, objects, instances, encapsulation etc.
  2. Implement OOP basic concepts with C++ and Java.
  3. Write, test and debug computer programs with OOP paradigm written in C++ and java
  4. Understand the concept of polymorphism
  5. Understand the concept of inheritance
  6. Understand the concept of abstraction and be able to apply it to solve problems.
  7. Implement exception handling mechanisms in user-defined classes
  8. Stream data between objects and devices, files and memory
  9. Work with Java basic GUI components

Course outlines

1. Introduction to the Course, Course Policies and Rules

2.  Overview of Structured Programming using C++

3. Arrays/structure/Functions revision

4. Function (call by value & call by reference)

a. Passing Arrays & Structure to functions

5. Structure Member Functions

LAB 01

  1. Pointers
  2. Structures, Data and Functions.
  3. Member functions
  4. Calling functions in main
  1. Introduction to OOP
  2. Basic OOP Principles

       3. Identifying Objects and Methods

  1. Access Modifiers (Public, protected, private, default)
  2. Constructors/ Destructors
  3. Importance of constructor/destructor
  4. Data members, Member functions, Accessor Functions
  5. This Keyword   
  6. Encapsulation

Lab 02

  1. Simple Class and object creation in C++
  2. Data members, Member functions
  3. Access Modifiers (Public, protected, private, default)
  4. Constructors/ Destructors
  1. Introduction to Java
  2. Development Environment
  3. Advantages of java
    1. Portability
    2. Memory Management (Garbage Collector)
      1. No pointers in java
  4. Writing and executing program in Java
  5. Java classes and basic programming constructs
    1. Data Types, Iteration and Selection in java
  1. Java classes and basic programming constructs
    1. Java Arrays
      1. Enhanced For loops
    2. Object Instantiation and Method calling in Main
  1. Basic Java program
    1. Basic Class and object Creation
  2. Java Language constructs
  3. Java Arrays
  4. Data types
  5. Conditional statements
  6. Loops(While, Do-While, For, Enhanced for loop)
  1. Simplistic Introduction to IO Streams in Java
    1. java.util package
      1. Basic I/O through Scanner

       2. String Class and String methods

LAB 04

  1. Simple Console IO in Java
  2. String processing
  1. Relationships in OOP
    1. Associations           

                            1. Compositions Vs. Aggregation

  1. Introduction to UML Class Diagram
  2. Relationships Representations in UML
  3. Composition Practice Problems

Lab 05

  1. Dependency
    1. Object Interactions

         2.Compositions

  1. Relationhips in OOP (Continued)
    1. Aggregation
    2. Practice Problems
  1. Relationhips in OOP (Continue)
    1. Introduction to Collection API
    2. java. util. Array List collection
    3. Aggregation through Array List
    4. Practice Problems
  1. Aggregation of Objects

        2.Manipulation of collections

  1. Inheritance
    1. Single level, Multilevel inheritance
    2. Great grandparent java. lang .Object
      1. Significance of Object class
    3. Access Modifiers behavior in Inheritance

                       d. UML representation of Inheritance

  1. Practice Problems for Inheritance
  2. This and Super Keywords

Lab 07

  1. Inheritance
    1. Single level inheritance
    2. Multi-level inheritance

          Project Proposals Announcement

  1. Multiple inheritance, Diamond Problem
  2. The final keyword
  3. More Practice Problems
  4. Project Proposals Discussion

Lab 08

  1. Working in packages
  2. Complete application involving multilevel inheritance
  3. This, Super and Final Keyword in practice
  1. Method Overriding
  2.  Static vs. Runtime binding example
  3.  Polymorphism in action
  4. Project Proposals Submissions and Discussion
  1. Abstraction
    1. Abstract methods
    2. Abstract classes
    3. Pure Abstract classes
    4. Practice Problems
  1. Interfaces
    1. Uses of Interfaces
      1. Multiple inheritance
      2. Constant interfaces
      3. Loose coupling

      2.Practice Problems with Abstraction

Lab 10

  1. Abstraction
  2. Using Interfaces
  1. Introduction to Graphical User Interface (GUI)
    1. Java Graphical User Interface
    2. AWT vs Swing
    3. Container, Frame, Panel and Dialog
    4. GUI Components: i.e., Label, Button, TextFeild, RadioButton, TextArea, DropDown Menu
  1. Event Handling
    1. EventListerners and Adaptors

       2. Hand-coding GUI and interaction

Lab 11

Hand-coding GUI and interaction

  1. GUI design using Drag and Drop feature of IDE (Netbeans), An Example
  2. The Separation of Concerns Principle

        a. User Interface and Business Logic layers

  1. File IO
    1. Character Streams
      1. FileReader, FileWriter
    2. Byte Streams
      1. FileInputStream, FileOutputStream
    3. Character vs Byte Streams
    4. Gentle introduction to Exception handling
  1. GUI Design using Drag and Drop
    1. Working with lists and combo boxes

        2. File IO (with separation of concerns)

  1. File IO with GUI and Exception handling
    1. File Handling in Java with CRUD operations
    2. Using JTable Component
  1. Working with Java API Libraries
    1. Math
    2. Regular Expressions

      2.Project Progress Discussion  

Lab 13

  1. File IO with GUI and Exception handling
    1. CRUD Operations to fileUsing JTable

         2. Component for CRUD operations

  1. File I/O Revisited
    1. Object Serialization
    2. Object Input Stream, Object  Output Stream
  1. Exception Programming
    1. Exception Handling
    2. Exception Programming
    3. Finally
    4. Multiple exceptions

Lab 14

  1. File I/O
    1. File Dialog

2.    Complete working application with file handling (separate layers for GUI and business logic)

         Project Demonstration Presentations + Viva

Online Journals