Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Object Oriented Programming

Birla Institute Of Technology And Science–Pilani (BITS–Pilani) via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This comprehensive course is designed to prepare you for a successful career in Java programming and software development, with a strong focus on object-oriented programming (OOP) principles. By leveraging Java, one of the most popular and versatile programming languages, you will gain a solid foundation in both Java programming and object-oriented concepts. In this course, you will be introduced to the fundamental concepts of OOP, such as abstraction, encapsulation, inheritance, and polymorphism. These principles form the core of modern software development and are essential for creating modular, flexible, and reusable code. In addition to OOP, you will explore a wide range of advanced Java features that extend the functionality of your applications. Topics covered include generics, enabling type safety and flexibility, exception handling for robust error management, file input/output operations for data persistence, and multithreading concepts for improved application responsiveness. This course covers a diverse array of topics in Java programming, including the design and construction of Java classes and objects, utilizing appropriate access modifiers, variable types, and control structures. You will also master the manipulation of data using arrays, strings, and the collections framework, empowering you to efficiently store, retrieve, and manipulate data. By the end of this course, you will have developed a strong understanding of OOP principles in Java and acquired the necessary skills to design and implement robust, efficient, and modular Java applications. This solid foundation will serve as a stepping stone for your future academic pursuits and a successful career in Java programming and software development.

Syllabus

  • Introduction to Object-Oriented Programming and Java Basics
    • In this module, you will be introduced to the fundamentals of object-oriented programming (OOP) and the Java programming language. You will learn about the basic principles of OOP, such as objects, classes, abstraction, encapsulation, inheritance, and polymorphism. Additionally, you will explore the structure of a Java program, primitive types, variables, and control statements. By the end of this module, you will have a solid foundation in OOP and Java programming concepts.
  • Defining Classes, Objects, and Constructors
    • In this module, you will learn about defining classes, objects, and constructors in Java. You will explore access modifiers, object creation, constructors, instance fields and methods, the difference between class and instance variables, mutable and immutable objects, command-line arguments, and use the Scanner class to read input.
  • Static, Final, Overloading, and Object Parameters
    • In this module, you will explore the static and final keywords in Java, method and constructor overloading, working with objects as method parameters, and handling arrays. You will learn about static variables and methods, final variables and methods, various overloading techniques, and objects as parameters and return type methods, and implement one-dimensional and two-dimensional arrays using the Arrays class.
  • Inheritance, Abstract Classes, and Interfaces
    • This module covers the essential concepts of inheritance, abstract classes, and interfaces in Java. You will learn about extending classes, method overriding, polymorphism, and the use of interfaces to implement multiple inheritance. The module also introduces nested, inner, and anonymous classes, as well as the comparable and comparator interfaces for comparing objects.
  • Generic Programming and Collections Framework
    • In this module, you will explore the concept of generic programming in Java, which allows you to create classes and methods that work with different types of objects. You will learn about generic classes, interfaces, bounded types, and wildcards. Additionally, this module will introduce you to the Java Collections Framework, covering essential classes like ArrayList, LinkedList, Set, and Map. You will also learn about wrapper classes, autoboxing, and unboxing, which help you work with primitive types and objects seamlessly.
  • Exception Handling in Java
    • In this module, you will delve into the crucial aspect of Java programming, which is exception handling. Exception handling allows programmers to manage errors and unexpected situations that may arise during program execution. The module also covers file handling in Java, which enables reading and writing data to and from files. Key concepts covered in this module include exception types, try-catch blocks, finally block, throw and throws keywords, custom exceptions, and various file handling classes.
  • Advanced File Handling and Object Model
    • In this module, you will dive deeper into file handling and explore the Java Object Model. This module covers advanced file handling concepts like buffered streams, appending to files, and manipulating file properties. You will also learn about Java’s type system, object casting, the Object class, cloning, serialization, and Java’s Reflection API.
  • Multithreading Basics and Thread Class
    • This module focuses on the fundamental concepts of multithreading in Java, including the differences between multithreading and multitasking. It introduces the Thread class and the Runnable interface for creating and managing threads. Students will learn about thread states, life cycles, priorities, daemon threads, and synchronization. The module also covers the prevention and handling of deadlocks and methods for inter-thread communication.
  • Java Best Practices and Additional Concepts
    • This module explores various best practices, additional concepts, and advanced techniques for Java programming. The key concepts covered in this module include coding standards, code review, refactoring, debugging, unit testing, memory management, garbage collection, common libraries and frameworks, JavaFX, networking, performance optimization, monitoring, and security best practices.
  • Course Recap and Real-World Applications
    • In this final module, we will recap the key concepts covered throughout the course and explore various real-world applications of Java and object-oriented programming (OOP). You will learn about the different domains where Java is widely used, such as web development, mobile app development, desktop applications, big data, machine learning, enterprise applications, and the Internet of Things (IoT). Additionally, we will discuss the importance of continuous learning, staying updated in Java and OOP, advanced Java topics, and resources to help you pursue a career in Java development.

Taught by

BITS Pilani Instructors Group

Tags

Reviews

Start your review of Object Oriented Programming

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.