Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Evan Bergman and Noel J. Bergman

In Object-Oriented Concepts, we will introduce the core concepts behind modern, object-oriented, programming. We will discuss objects, classes, messaging, inheritance, polymorphism, and more. As with Fundamentals of Programming, we will illustrate the concepts using the Python language, but they will be portable to other object-oriented programming languages.

This course includes hands-on labs where you will learn to write and execute programs.

Enroll now

What's inside

Syllabus

Getting Started with Fundamentals of Programming
In this module we'll review what you will be learning, and we'll start off with the basic concepts of programming. We will discuss what programs are, and what common elements you would come across in almost any mainstream programming language. Foremost, we'll try to get across the essential spirit and challenge of computer programming.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches foundational concepts in object-oriented programming, following industry standards
Covers fundamental programming principles suitable for beginners
Demonstrates practical implementation through hands-on labs
Covers object-oriented concepts beyond basic principles
Taught by instructors with expertise in object-oriented programming

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Solid introduction to object-oriented programming

According to learners, this course offers a solid foundation in Object-Oriented Programming (OOP) fundamentals. Students frequently highlight the clear explanations and the value of hands-on labs, which effectively illustrate concepts like classes, objects, and inheritance. The use of Python for examples is seen as a positive, providing practical context while emphasizing portable concepts applicable to other languages. While highly recommended for beginners, some more experienced students found the pace slow, noting it provides an excellent base but might lack in-depth coverage for advanced application.
Opinions vary on pacing; some find it ideal, others desire more rapid progression or depth.
"The pace was fantastic, allowed me to truly absorb each concept before moving on, which built my confidence."
"I found some sections dragged a bit; I was hoping for a quicker pace through the very basic concepts."
"Could use more in-depth coverage on design patterns; felt a bit rushed at the very end after a slow start to the course."
Excellent starting point for new programmers, but may lack depth for experienced learners.
"As a complete beginner, this course was perfect for me. The pace was just right and nothing felt overwhelming."
"Good for absolute beginners, but if you have some programming background, it might feel a bit slow and basic."
"While it lays a solid foundation, I wished for more advanced topics or challenges by the end of the course."
Uses Python effectively to illustrate concepts applicable across OOP languages.
"The Python examples were clear and the instructor always tied it back to general OOP principles, which was great."
"I appreciated that it used Python but explained how these concepts transfer to other languages like Java or C++."
"It's great that it uses Python, but focuses on concepts that are truly language-agnostic for OOP, which is very useful."
Offers valuable lab exercises that solidify theoretical knowledge with practice.
"The hands-on coding and projects are the strongest part of the course for me; they made everything click."
"I found the labs incredibly useful for applying the concepts taught in the lectures immediately."
"Doing the exercises helped me remember the syntax and truly understand how to implement the patterns we learned."
Provides highly comprehensible explanations for core OOP principles.
"The instructor did an excellent job explaining complex OOP concepts in a very clear and understandable way."
"I really appreciated how the course broke down inheritance and polymorphism, making it easy to grasp for a beginner."
"The explanations were so straightforward; I finally feel like I understand objects and classes and their interactions."

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 Application Programming Fundamentals with these activities:
Practice Python coding exercises
Engage in regular coding practice to improve your proficiency in Python, which will be essential for implementing OOP concepts during the course.
Browse courses on Python
Show steps
  • Find online coding platforms or resources with Python exercises.
  • Dedicate time each week to solving coding problems.
Participate in peer study groups
Engage with other students in study groups to discuss course concepts, clarify misunderstandings, and reinforce your learning.
Show steps
  • Form or join a study group with other students taking the course.
  • Meet regularly to discuss the course material, solve problems together, and quiz each other.
Follow video tutorials on OOP design patterns
Explore design patterns used in OOP to enhance your understanding of how to structure and organize code effectively.
Browse courses on Design Patterns
Show steps
  • Search for video tutorials on specific design patterns (e.g., Factory, Singleton).
  • Follow the tutorials and practice implementing the design patterns in Python code.
Three other activities
Expand to see all activities and additional details
Show all six activities
Become a mentor for beginner programmers
Solidify your understanding of OOP concepts by mentoring beginner programmers and assisting them in their learning journey.
Show steps
  • Identify opportunities to mentor beginner programmers (e.g., online forums, coding communities).
  • Provide guidance, support, and feedback to help mentees grasp OOP concepts.
Develop a small OOP project
Apply your OOP knowledge by creating a small software project that demonstrates your understanding of object-oriented principles.
Browse courses on Software Development
Show steps
  • Identify a problem or task that can be solved using OOP.
  • Design the class structure and relationships for your project.
  • Implement the OOP concepts in Python code.
  • Test and debug your project to ensure it functions correctly.
Volunteer in open-source projects related to OOP
Contribute to open-source projects that utilize OOP principles to gain practical experience and enhance your portfolio.
Show steps
  • Identify open-source projects on platforms like GitHub that focus on OOP concepts.
  • Review the project documentation and identify areas where you can contribute.
  • Collaborate with the project maintainers and submit pull requests with your contributions.

Career center

Learners who complete Application Programming Fundamentals will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers take concepts from a project's blueprint and turn them into executable computer programs. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Web Developer
Web Developers translate designs into functional websites. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Computer Programmer
Computer Programmers spend the majority of their time writing application code. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Systems Analyst
Systems Analysts use critical thinking to examine business processes and devise ways to improve them. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Database Administrator
Database Administrators ensure that business data is secure and accessible. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Systems Software Developer
Systems Software Developers analyze, design, and build the software and systems that run computers and networks. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test and evaluate software products to ensure that they meet the requirements and standards of the organization. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Information Security Analyst
Information Security Analysts identify, analyze, and respond to security risks and vulnerabilities. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Computer Support Specialist
Computer Support Specialists provide technical support to users of computer systems. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Network Administrator
Network Administrators manage computer networks. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Computer Scientist
Computer Scientists conduct research and develop new computing technologies. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Data Analyst
Data Analysts collect, analyze, and interpret data to provide insights for decision-making. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and implement artificial intelligence solutions. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Machine Learning Engineer
Machine Learning Engineers design, develop, and implement machine learning solutions. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.
Data Scientist
Data Scientists use data to solve business problems. This course may be useful in teaching you important Object-Oriented Programming Concepts like data types, variables, subroutines, conditionals, and repetitive execution.

Reading list

We've selected 14 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 Application Programming Fundamentals.
More in-depth look at Java and object-oriented programming.
Great introduction to Java and object-oriented programming for beginners.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser