Object-Oriented Software Engineering with Java (Udemy.com)
Mastering Object Oriented Programming with Java
Created by: Anis Koubaa
Last updated April 2023
What you will 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 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!
Instructor Details
- 4.7 Rating
210 Reviews
Anis Koubaa
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.
More courses by Anis Koubaa
ROS for Beginners: Basics, Motion, and OpenCV (2023)
4.6 (5,328 Reviews)
Provider: Udemy
Time: 13.8h
$13.99
ROS for Beginners II: Localization, Navigation and SLAM (2023)
4.4 (1,608 Reviews)
Provider: Udemy
Time: 4.3h
$14.99
ROS2 (Foxy-Humble) For Beginners I: Basics, Motion & Lasers (2023)
4.5 (417 Reviews)
Provider: Udemy
Time: 8.6h
$59.99
More Introduction to Computer Science courses
The Horse Course: Introduction to Basic Care and Management
4.9 (156 Reviews)
Provider: Coursera
Time: 22h
Free
Operating Systems from scratch - Part 2 (2022)
4.8 (1,662 Reviews)
Provider: Udemy
Time: 12.3h
$10.99
Object Oriented Programming (OOP) with Python for beginners (2026)
4.8 (531 Reviews)
Provider: Udemy
Time: 2.3h
$64.99
Introduction to Programming Crash Course + Python Primer (2025)
4.7 (3,814 Reviews)
Provider: Udemy
Time: 4.7h
$59.99
Python Coding Intermediate: Python Classes, Methods and OOPs (2025)
4.7 (200 Reviews)
Provider: Udemy
Time: 5.9h
$44.99
Reviews
By Barry Keni on 1/4/2022
very helpful indeed..clear and concise material if you want to understand OOP fundamentals
By Belal Kawaf on 12/21/2018
It improves my programming skills, I learned a lot from you, and I recommend anyone wants to learn about OOP to take this course what I like the most about the course that you start from basics gradually to advance Thank you very much, it was a pleasure to take this course with you, and I hope for you all the best and success.
By HAITHAM ALBINHAMAD on 11/26/2018
Till now the course is awesome very straightforward to the point but the are some lackages 1-should contains more examples and exercise 2-The slides that is used by the instructor should be provided as resource 3-Provide more contents in exceptions and files 4- Some videos has a noise that totally I'm satisfied with this course
By Jordan Booker on 11/11/2018
I think the creator should have let the view see each of the classes instead of just focusing on the one he was working on. Also give the user specific instructions.
By Neville on 10/13/2018
What I enjoy about this course is the fact that the instructor gradually introduces different concepts in a chronological order instead of throwing everything at the same time which can often leave students confused and struggling to understand. you make OOP look so easy best course on Java and OOP I have come across so far you were born to be a teacher God bless
By Charles B on 10/10/2018
I've seen dozens of courses here in Udemy and I must say Sir Anis is very talented in teaching. He is different from the others, in a very good way. How his way of teaching is different from others is he explains the topic really well. Not only he spends time to explain HOW but also more importantly WHEN and WHY you would do or use it. This is very important when learning something especially complicated concepts like OOP. Other teachers only show you how to do things without explaining why and when to use them. I also like how he uses meaningful examples such as Students. Unlike others who use dogs, cats and other not very good examples. I use this course to refresh my OOP knowledge and I thought I know OOP very well but when I started watching this course, I realized how much things I didn't know. I wish Sir Anis was my teacher when I was in college. I'm only at the third section but I am learning a lot of things already! I am very sure that after I finish this course, I will be able to construct well-designed software confidently. Thank you Sir Anis.
By Nafeez Quraishi on 10/8/2018
This course is simply WoW!!! I have finished only 1/4th of the course so far and felt an urge to post my positive feedback- 1. Data hiding and Encapsulation I havn't seen such a nice explanation of need of encapsulation in such simple words. This lecture has built my understanding of encapsulation significantly. 2. Use of "this" I have read "this" keyword refers to the class itself many times but never realized its significance so much. The example of same attribute and parameters names in order to show the need of "this" has bolstered my understanding of the keyword usage. 3. Constructor Constructor with data validation implementation. After seeing the lecture I felt the importance and power of this implementation and i think this understanding is definitely going to improve my code henceforth. Thanks a lot Mr. Anis!!
By Abdulrahman Almousa on 9/9/2018
never thought i would enjoy studding, this was the perfect course for me, it explained everything in details, and i could understand things easily. having videos to revise, and to return to them helped me a lot, i really cant imagine how hard it was to study without this course. i really want to thank Dr. Anis for spending a lot of time to can help us learn and understand easily, in shorter time. i am so happy that i was one of Dr. Anis students, and i hope he makes more courses, i will gladly enroll in them.
By Abdullah Alrajhi on 9/8/2018
Explaining extremely complex topics with such an easy ,creative and exciting way.The structure of the course is right on point and the examples that are used makes you understand the concepts of OOP and why it's useful also the assignments in this course from are real-life applications (how a computer can display a picture using codes and how are sensors can be read by codes...). This is the second time that I'm taking OOP and believe me when I say that "I've never thought that OOP can be this easy". Many thanks Dr.Anis
By Anis Zarrad on 7/9/2018
The lessons are interesting and fun. The instructor gives real examples of the concepts being taught. The material and resources were extremely well thought out. I will recommend this course to my students
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 94 / 100









