• Course Information

        • Time: 6 hours
        • Free Certificate
        We will begin this course with an introduction to the difference between traditional structural program design and object-oriented (OO) programming. This course will explore the unique, dynamic approach that OO offers, and discuss why it is an effective and flexible paradigm. We then move into the essential concepts that are part of all OO programming, including inheritance, polymorphism, abstract classes, encapsulation, and coupling.

        There are many benefits to learning OO programming, and especially its modularity. Modularity lets you break your code into smaller parts. This makes it easier to troubleshoot, gives you the powerful ability to reuse your code elsewhere, and makes your code adaptive and flexible. Although this course uses Java to introduce OO programming, it should prepare you to explore other languages since you can apply these concepts to nearly any other OO programming language.

        If you'd like to learn more about Java after you complete this course, you can continue your studies in CS101: Introduction to Computer Science I.

        First, read the course syllabus. Then, enroll in the course by clicking "Enroll me in this course". Click Unit 1 to read its introduction and learning outcomes. You will then see the learning materials and instructions on how to use them.

      • Unit 1: Fundamental Concepts of OO Programming

        In this unit, we will explore the concepts that make OO programming different from the traditional structural design approach. Although Java supports the traditional approach, OO programming has allowed for a more robust, flexible programming design paradigm that has made it the industry standard for most new programs.

        Completing this unit should take you approximately 1 hour.

      • Unit 2: Using Java for OO Programming

        In this unit, we will explore objects and take a look at how they differ from classes. From there, we will explore some of the key concepts of OO programming that make it such a desirable choice. These concepts include inheritance, polymorphism, and abstract classes, which allow multiple classes to interact. Encapsulation is the idea of bundling all of your data and methods into a single unit, and restricting the direct access of certain components of your objects, protecting those objects' data from outside manipulation. Finally, we will explore the concept of decoupling, which is how we separate classes to decrease their dependency on one another.

        Completing this unit should take you approximately 2 hours.

      • Course Feedback Survey

        Please take a few minutes to give us feedback about this course. We appreciate your feedback, whether you completed the whole course or even just a few resources. Your feedback will help us make our courses better, and we use your feedback each time we make updates to our courses.

        If you come across any urgent problems, email contact@saylor.org or post in our discussion forum.

      • Certificate Final Exam

        Take this exam if you want to earn a free Course Completion Certificate.

        To receive a free Course Completion Certificate, you will need to earn a grade of 70% or higher on this final exam. Your grade for the exam will be calculated as soon as you complete it. If you do not pass the exam on your first try, you can take it again as many times as you want, with a 7-day waiting period between each attempt.

        Once you pass this final exam, you will be awarded a free Course Completion Certificate.