We may earn an affiliate commission when you visit our partners.
Course image
Olufisayo Omojokun

Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

What's inside

Learning objectives

  • Learn how to write instantiable classes that serve as blueprints of concepts or objects
  • Learn how to write and implement accessor and mutator methods
  • Learn how to use constructor overloading and chaining
  • Learn how to use method overloading
  • Create subclasses of predefined and custom classes
  • Learn how to override methods, including tostring() and equals()
  • Learn how to restrict inheritance and overriding
  • Identify when and how to use an abstract class
  • Understand the need for an interface for a given programming problem
  • Learn how to define an interface
  • Learn how to implement an interface and its abstract methods
  • Apply the comparable interface on a given class
  • Recognize the need for generic types
  • Describe the steps involved in the selection, insertion, and merge sort algorithms
  • Describe the steps involved in the linear and binary search algorithms
  • Use big o notation to compare two algorithms based on their runtimes
  • Learn how to write interfaces with constants, default methods, static methods, and inheritance relationships
  • Explore the basics of uml class diagrams
  • Understand how polymorphism is handled at compile time and runtime

Syllabus

Writing custom classes
Encapsulation and information hiding
Introduction to inheritance, including abstract classes
Basics of method overloading and overriding
Read more
Introduction to interfaces and polymorphism
UML basics
Sorting algorithms: selection, insertion, and merge sort
Search algorithms: linear and binary search
Basics of complexity and Big O notation

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores object-oriented programming techniques in Java, which is standard in industry
Teaches the fundamentals of classes and objects in Java, which helps learners build a strong foundation in core programming concepts and principles
Develops skills in writing classes, using inheritance, interfaces, and polymorphism, which are core skills for software development in Java
Covers sorting and searching algorithms, which are essential for working with data in many object-oriented programs
Introduces UML basics, which is a standard notation for visualizing the design of software systems
Requires learners to come in with some prior programming experience in Java, which may be a barrier for complete beginners

Save this course

Save Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms with these activities:
Organize and review course materials regularly
Enhance your understanding and retention of course content by regularly reviewing and organizing your notes, assignments, and other materials.
Show steps
  • Create a system for organizing your course materials.
  • Review your notes regularly.
  • Complete practice problems or review quizzes based on your materials.
Review object-oriented programming basics
Reinforce your understanding of the basic principles of object-oriented programming, such as classes, objects, inheritance, and polymorphism.
Show steps
  • Read through your notes or textbook chapters on OOP basics.
  • Complete practice problems or exercises to test your understanding.
Read 'Head First Java' by Kathy Sierra and Bert Bates
Gain a comprehensive understanding of Java programming concepts through this accessible and engaging book that uses real-world examples and interactive exercises.
Show steps
  • Read each chapter thoroughly.
  • Complete the exercises and activities provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Participate in study groups or online forums
Engage with peers to exchange knowledge, clarify concepts, and gain diverse perspectives on object-oriented programming.
Show steps
  • Join online forums or discussion boards related to Java.
  • Participate in study groups with classmates or fellow programmers.
  • Ask questions, share your insights, and collaborate on problems.
Follow online tutorials on advanced Java concepts
Deepen your knowledge of Java by exploring advanced topics through guided tutorials, which will provide step-by-step instructions and examples.
Browse courses on Inheritance
Show steps
  • Identify specific areas where you want to enhance your skills.
  • Search for reputable online tutorials or courses that cover those topics.
  • Follow the tutorials diligently, completing all exercises and assignments.
Solve coding challenges on platforms like LeetCode
Strengthen your problem-solving skills and test your understanding of Java by tackling coding challenges on platforms like LeetCode, which provide a wide range of exercises.
Browse courses on Coding Challenges
Show steps
  • Register for a LeetCode account or similar platform.
  • Start with easier challenges to build confidence.
  • Gradually progress to more difficult challenges.
  • Review your solutions and learn from your mistakes.
Build a Java project that demonstrates object-oriented principles
Solidify your understanding of object-oriented programming by creating a practical project that incorporates concepts like inheritance, polymorphism, and encapsulation.
Show steps
  • Brainstorm ideas for a project.
  • Design the classes and relationships between them.
  • Implement your design in Java code.
  • Test your project thoroughly.

Career center

Learners who complete Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers design, develop, and test computer software. They may also be responsible for the maintenance and documentation of software systems. This course can help you build a strong foundation in object-oriented programming, which is essential for a successful career as a Software Developer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Embedded Systems Engineer
Embedded Systems Engineers design, develop, and implement embedded systems. They may also be responsible for the documentation and maintenance of embedded systems. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as an Embedded Systems Engineer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Mobile App Developer
Mobile App Developers design, develop, and implement mobile applications. They may also be responsible for the documentation and maintenance of mobile applications. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Mobile App Developer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Game Developer
Game Developers design, develop, and implement video games. They may also be responsible for the documentation and maintenance of video games. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Game Developer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Robotics Engineer
Robotics Engineers design, develop, and implement robotic systems. They may also be responsible for the maintenance and documentation of robotic systems. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Robotics Engineer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and implement AI systems. They may also be responsible for the maintenance and documentation of AI systems. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as an Artificial Intelligence Engineer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Machine Learning Engineer
Machine Learning Engineers design, develop, and implement machine learning models. They may also be responsible for the maintenance and documentation of machine learning models. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Machine Learning Engineer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Computer Systems Analyst
Computer Systems Analysts design, develop, and implement computer systems. They may also be responsible for the maintenance and documentation of computer systems. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Computer Systems Analyst. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Data Scientist
Data Scientists collect, analyze, and interpret data to extract meaningful insights. They may also develop and implement data-driven solutions. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Data Scientist. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Computer and Information Systems Manager
Computer and Information Systems Managers plan, coordinate, and direct computer-related activities in an organization. They may also be responsible for the development, implementation, and maintenance of computer systems and networks. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Computer and Information Systems Manager. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Computer Network Architect
Computer Network Architects design, implement, and maintain computer networks. They may also be responsible for the security and performance of networks. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Computer Network Architect. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Database Administrator
Database Administrators design, develop, and maintain databases. They may also be responsible for the security and performance of databases. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Database Administrator. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Web Developer
Web Developers design, develop, and maintain websites. They may also be responsible for the content and functionality of websites. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Web Developer. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Information Security Analyst
Information Security Analysts design, implement, and maintain security systems to protect information from unauthorized access, use, disclosure, disruption, modification, or destruction. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as an Information Security Analyst. You will learn how to design, implement, and test object-oriented software systems. You will also gain experience with algorithms and data structures, which are important for developing efficient and effective software solutions.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, white papers, and training materials. This course can help you build a foundation in object-oriented programming, which is essential for a successful career as a Technical Writer. You will learn how to write clear and concise documentation that explains complex technical concepts. You will also gain experience with writing tools and software, such as DITA and XML.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms.
A classic work on algorithms, providing a comprehensive overview of the field.
A classic work on design patterns, providing numerous patterns that can be used to improve the design and implementation of software systems.
A comprehensive book on object-oriented analysis and design, covering everything from requirements gathering to implementation.
A comprehensive book on Java concurrency, covering topics such as threads, synchronization, and locks.
A classic work on Java programming best practices, providing numerous tips and techniques for writing better Java code.
A book on data structures and algorithms, covering topics such as arrays, linked lists, and sorting algorithms.
A comprehensive reference book on Java, covering everything from basic syntax to advanced topics like concurrency and networking.
A book on best practices for writing clean and maintainable code, covering topics such as naming conventions, refactoring, and testing.
A book on Java performance tuning, covering topics such as profiling, optimization, and memory management.
A concise and practical book on Java programming, covering the essential topics in a clear and accessible style.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms.
Object-Oriented Programming Concepts
Most relevant
Object-oriented Programming in Java
Most relevant
Object Oriented Programming in Java
Most relevant
Object-oriented Programming in Ruby
Most relevant
Object-Oriented Programming in Python
Most relevant
Object Oriented Programming in JavaScript
Most relevant
Object Oriented Programming with Kotlin 1
Most relevant
Introduction to Object-Oriented Programming with Java
Most relevant
Teach teens computing: Object-oriented Programming in...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser