Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Meditation Personal Transformation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 6.5 hours on-demand video
  • 2 downloadable resources
  • 3 coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
Development Software Engineering Object Oriented Programming

Object-Oriented Software Engineering with Java

Mastering Object Oriented Programming with Java
Rating: 4.1 out of 54.1 (165 ratings)
741 students
Created by Anis Koubaa
Last updated 4/2019
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Build classes and creates objects using Java to promote code reuse
  • Build a large software using inheritance, abstract classes, encapsulation, polymorphism, and Interfaces
  • Recognize object-oriented concepts for large software development
  • Solve advanced software development problems using Object Oriented concepts
  • Develop and use generic classes to promote software reuse
  • Use effective tools for Java project management (Netbeans, GitHub)

Course content

10 sections • 26 lectures • 6h 27m total length

  • Preview07:02

  • Preview15:30
  • Arrays vs ArrayLists
    11:37
  • Course Statistics using ArrayLists and Files
    1 question

  • Preview05:53
  • Preview16:38
  • Preview12:49
  • Quiz on constructors
    2 questions
  • Data hiding and Encapsulation
    27:41
  • Quiz on Data Hiding and Encapsulation
    3 questions
  • Preview10:42
  • Quiz on "this" keyword
    4 questions
  • Class-wide variables (i.e. Static Members)
    10:50
  • Constructors Overloading
    12:04
  • Quiz on Constructors Overloading
    3 questions
  • the toString() method
    12:15
  • Composition: the Has-A relationship
    21:39
  • Composition: Has-A Relationship
    5 questions
  • Rectangle Class
    1 question
  • General Quiz on Classes and Objects
    11 questions
  • Patient Class
    2 questions
  • The Distance Sensor Class
    3 questions
  • The Image Class
    4 questions

  • What is inheritance?
    03:37
  • Without inheritance
    05:23
  • Quiz 02 on inheritance
    1 question
  • Using Inheritance
    20:00
  • Quiz: Concepts of inheritance
    8 questions
  • Student class using Inheritance
    1 question
  • Hospital Class
    4 questions
  • Inheritance of Sensor Classes
    5 questions
  • The Image Class Hierachy
    6 questions

  • What is polymorphism?
    08:45
  • Compilation Time vs. Runtime
    12:12
  • Downcasting
    11:40
  • Shape Class Hierarchy
    1 question
  • But, why polymorphism is important? polymorphic processing
    22:21
  • Abstract classes
    24:12
  • Abstract Classes
    2 questions
  • Assignment: Polymorphic Processing
    5 questions
  • Interfaces
    13:21
  • Contract-First Development Approach
    09:10
  • The Comparable and Comparator Interfaces
    19:31
  • Assignment on Comparable and Comparator
    7 questions
  • Design by Contract: IoT Application
    9 questions
  • Design-by-Contract: Image Application
    20 questions

  • Generic Methods
    13:37
  • Generic Classes
    13:17
  • Assignment of Generic Classes and Methods
    4 questions

  • Design Patterns
    20:01
  • Image Application using Design Patterns and Generics
    5 questions
  • Assignment: Design Patterns
    6 questions

  • Shop Application
    6 questions
  • IoT Application
    4 questions
  • Real Estate Application Design Patterns (with video solution)
    5 questions
  • Facebook Graph Application (with video solution)
    6 questions

  • Recursion Exercises
    6 questions

  • RealEstateAnalytics Problem (Fall 2018)
    1 question
  • IoT Application Problem (Spring 2018)
    1 question

Requirements

  • The course assumes that the student has a knowledge of the basic programming concepts with Java, including loops, methods, conditional statements, etc.

Description

Course Updates

  • Sep 5: Adding ArrayList lecture (Section II) and one programming assignment on files and ArrayList


Overview

The course provides a comprehensive coverage of object-oriented programming (OOP) concepts using Java programming language. OOP is the key paradigm that allows software reuse and that facilitates the development of complex and large-scale software. The course first starts with providing a clear understanding why OOP is important. We then dive into the main OOP concepts including encapsulation, inheritance, and polymorphism. We also present generic classes and design patterns which further demonstrate an additional software abstraction. All along the course, we show how OOP allows software engineers to develop complex software by making high-level abstractions starting from very general classes down to more concrete classes. 

To better illustrate the concepts, each chapter contains several hands-on activities, namely: (1) Quizzes which help reviewing the main theoretical concepts presented in the lectures, (2) short coding exercises where the student can apply the concepts he learned on simple use cases, (3) programming assignments, which  provide more thorough activities aiming at consolidating the understanding of the learner and guide him to master the concepts presented in the lectures. All hands-on activities have written and video solutions. 

In addition, during the course, the student will work on one application which he will improve from one chapter to another so that he can observe how programming concepts he learned can be applied to improve a certain application. In this course, we consider an application to process images for the programming assignment. There is no pre-requisite needed about images to do the exercises, as it is just a simple application context for the programming assignment. 

The course was designed to provide the learners with a solid background on software engineering using object-oriented programming concepts!

I wish you an excellent learning experience!

Who this course is for:

  • Beginner/Intermediate Software Developers
  • Software Engineering Students
  • Computer Science Students
  • Information Systems Students
  • Beginners Java Developers

Instructor

Anis Koubaa
Professor of Computer Science
Anis Koubaa
  • 4.4 Instructor Rating
  • 3,340 Reviews
  • 11,851 Students
  • 6 Courses

I am Anis Koubaa, a Full Professor in Computer Science at Prince Sultan University and the Director of the Robotics and Internet-of-Things research lab. I am also R&D Director at Gaitech Robotics in China and Senior Researcher in CISTER/INESC TEC and ISEP-IPP, Porto, Portugal. I have been the Chair of the ACM Chapter in Saudi Arabia since 2014. I am also a Senior Fellow of the Higher Education Academy (HEA) in UK.

I received several distinctions and awards including the Rector Research Award in 2010 at Al-Imam Mohamed bin Saud University, and the Rector Teaching Award in 2016 at Prince Sultan University.

I have been teaching Programming courses for more than 16 years in particular Java and Web technologies, and different computer science courses. Programming is my passion for me and I have developed many software and applications. I have been also teaching robotics and developing several program with ROS in both academia and industry. 

I am the Editor of three books on Robot Operating System (ROS) with Springer publisher, which are in the top 25% of most downloaded book in Springer database. 

I have a lot of tutorials and course on the Internet provided on my YouTube Channel. I am very excited to provide my courses on Udemy to students around the world with practical hands-on activities. 

My teaching philosophy is based on Teaching by Demonstration, where I like to explain the concepts by demonstrating them  with real-world illustrations. The students will be mainly Learning by Doing. 

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.