Instructor Profile:
Professor, School of Computer Science & Engineering, Sandip University, Nashik, India
Dr. Mohammad Muqeem is a distinguished academic with a Ph.D. in Computer Science and over 21 years of extensive experience in higher education. He currently serves as a Professor at the School of Computer Science & Engineering at Sandip University in Nashik, India, where he is dedicated to advancing the field of computer science through teaching, research, and mentorship.
Dr. Muqeem has made significant contributions to the academic community, authoring more than 40 scholarly publications, including papers in highly regarded international journals, conference proceedings, and book chapters. His research excellence is highlighted by two papers published in the Emerging Sources Citation Index (ESCI) and 21 in high-impact, Scopus-indexed journals. In addition, he has authored two books and holds two accepted patents—one granted in the UK and the other in India—demonstrating his innovative contributions to the field.
As a committed mentor, Dr. Muqeem has successfully guided two Ph.D. students to completion and currently supervises four doctoral candidates, fostering the next generation of researchers in computer science. His role as an educator is characterized by a strong focus on curriculum development and academic leadership, where he emphasizes the importance of critical thinking and deep learning among his undergraduate and graduate students.
Dr. Muqeem is an active member of several professional organizations and holds a lifetime membership with the Indian Society for Technical Education (ISTE), reflecting his dedication to continuous learning and professional growth. His passion for teaching, coupled with his extensive research experience, positions him as a valuable contributor to Massive Open Online Courses (MOOCs), where he aims to provide quality education and inspire learners worldwide.
With a strong commitment to academic excellence and innovation, Dr. Muqeem continues to play a pivotal role in shaping the future of computer science education.
Course Outline: Principles of Programming Languages: Inheritance, Polymorphism, and Encapsulation in Java
Module 1: Introduction to Object-Oriented Programming (OOP) in Java
- Overview of OOP Concepts: Introduction to Object-Oriented Programming, Key principles of OOP: Inheritance, Polymorphism, and Encapsulation, Benefits of OOP in software design and development
- Classes and Objects: Defining classes and creating objects, Understanding methods and constructors, Member variables and methods: Instance vs. Static
- Real-World Applications of OOP Concepts
Module 2: Inheritance in Java
- Introduction to Inheritance: Concept and purpose of inheritance, Types of inheritance in Java: Single, Multilevel, and Hierarchical
- Implementing Inheritance: Syntax of inheritance: `extends` keyword, Overriding methods in subclass, Super keyword and constructor chaining
- Practical Use Cases of Inheritance: Code reuse and scalability through inheritance, Demonstrating inheritance in real-world scenarios
Module 3: Polymorphism in Java
- Understanding Polymorphism: Concept of compile-time (method overloading) and runtime polymorphism (method overriding), Differences between overloading and overriding
- Dynamic Method Dispatch: How Java handles method calls at runtime, Importance of polymorphism in Java development
- Implementing Polymorphism: Examples of method overloading and overriding, Abstract classes and interfaces to achieve polymorphism
- Practical Examples of Polymorphism in Software Design
Module 4: Encapsulation and Data Hiding
- Concept of Encapsulation: Definition and importance of encapsulation in OOP, Encapsulation vs. data hiding
- Implementing Encapsulation in Java: Access modifiers: Private, Public, Protected, and Default, Using getter and setter methods to control data access
- Best Practices for Encapsulation: Benefits of encapsulation in maintaining code security and integrity, Case studies demonstrating encapsulation in professional Java applications
Each module will include hands-on programming exercises, real-world case studies, and assessments to ensure thorough understanding of core OOP principles within the Java programming language.