Skip to main content
Software View

Main navigation

  • Home
  • Trainer Profile
  • Blog
  • Contact
User account menu
  • Log in

Breadcrumb

  1. Home

Effective Object Oriented Programming

Description:

Mainstream software development nowadays uses object oriented programming (or OOP for short) languages and techniques. OOP is a programming paradigm and is supported by many modern programming languages.

While understanding the fundamental concepts behind OOP is a key requirement to be effective in OOP, one also needs to understand how these concepts are applied in real software projects. Expert object oriented designs also adhere to best practices and principles to improve the qualities of object oriented systems like component reusability, extensibility, maintainability and robustness.

This training covers the essential concepts, principles and best practices of OOP that the participants will be able to apply in any object oriented programming language. Participants will be guided through the thinking process behind object oriented systems designing. Sample source code and other examples used come from real world software systems to make sure the training is practical oriented (We don't teach you in terms of ineffective "car" classes or "employee" classes!).

Training Objectives:

At the end of the training, participants will be able to

  1. Explain with clarity the OOP fundamental concepts
  2. Apply OOP fundamental concepts in real world software systems (rather than in trivial and exemplary software)
  3. Explain best practices and principles behind OOP
  4. Apply OOP best practices and principles in real world software systems (rather than in trivial and exemplary software)

Target Groups:

  1. Beginners to computer programming
  2. Those who are familiar with procedural programming languages but want to switch to object oriented programming.
  3. Those who are somewhat familiar with object oriented programming, but find difficulties to fully comprehend and/or apply the technique.

Prerequisites:

  1. This is ideal for beginners and also for seniors who want to switch to OOP. Hence, no special programming skills are expected from participants. Minimum, you need to be familiar with using computers.

Communication Language:

English

Duration:

1 day (~8 hours)

Facilitator:

Kamal Wickramanayake (Profile)

Notes:

  1. This training is delivered in a programming language independent manner. Sample source code will be provided in Java and PHP programming languages.

Training Content:

  1. Introduction
    • What is involved in programming in general?
    • Thinking in terms of objects (messages, collaboration, responsibility)
    • Proceedural Vs object oriented programming
    • Benefits of object oriented programming
  2. Classes And Objects
    • What is a class?
    • What is an object?
    • Members of a class (fields, methods)
    • Instance fields and methods
    • Class (static) fields and methods
    • Constructors, destructors and object life cycle
    • Method overloading
  3. Object Oriented Fundamentals
    • Abstraction
    • Encapsulation (includes access controlling)
    • Inheritance (includes method overriding)
    • Polymorphism
  4. Features Of Object Oriented Programming Languages
    • Interfaces
    • Abstract classes
    • Nested classes
    • Working with references to objects (Includes pass-by-value, pass-by-reference)
    • Coercion and down casting
    • Meaning of "this" and "super"
    • Copying objects (deep and shallow)
    • Immutability
  5. Good Object Oriented Design Principles
    • Open close principle
    • Liskov's substitution principle
    • Separation of concerns
    • High cohesion
    • Low coupling
    • Writing to interface
    • Maintaining a consistent level of abstraction in a class
Analysis And Design

Highlights

  • O'Reilly Book "97 Things Every Software Architect Should Know" Accepts A Write Up From Kamal
  • "Service Oriented Architecture - Making IT Infrastructure Speaks Business" - Presentation At The ISACA 4th Annual Conference
  • The Second Bacth Of ICTA Nanasala e-Society Members Receives Trainings On HTML/CSS and GIMP
  • GIMP Training For ICTA Nanasala Project
  • Agile Processes Training For PPSL (Pvt) Ltd
  • Computer Society of Sri Lanka (CSSL) - Talk on "Introduction to IT Governance and Enterprise Architecture"
  • Motorola Sends A Second Batch Through Software Patterns Training
  • Kamal To Act As The Marketing Director - ISACA Sri Lanka Chapter
  • ISACA Sri Lanka Chapter Invites Kamal To Join As A Board Member
  • Epic Lanka Technologies (Pvt) Ltd Receives Java SE And Java EE Trainings From Software View
  • Patterns Training For PPSL (Pvt) Ltd
  • ISACA Members Day Presentation On "Introduction To IT Governance And Enterprise Architecture"
  • Opening Lecture On Information Technology For SLIDA Master Of Public Management Course Delivered By Kamal
  • Customized Java Enterprise Edition Training For SLIDA
  • No One To Beat Software View - Epic Lanka Technologies (Pvt) Ltd
  • Motorola Receives Software Patterns Training From Software View
  • Custom Java Enterprise Edition Training for ICTA/SLIDA - Only from Software View!
  • Java EE 5, JavaServer Faces, Hibernate And Spring For PPSL (Pvt) Ltd
  • "Brain Trust" For Linux Journal Weekly Newsletter From Kamal
  • Java Platform, Enterprise Edition 5 Training At The CEIT, University Of Peradeniya
  • Another Group Of Around 100 Sri Lanka Telecom Engineers And Managers Were Service Oriented!
  • Java Platform, Enterprise Edition 5 Training Will Be Held At The CEIT, University Of Peradeniya
  • Service Oriented Architecture: Another Two Sessions Conducted at SLT
  • Photos of IET Monthly Forum at the Peradeniya University
RSS feed
Copyright © 2007 - 2023 Software View