Learn Object Oriented Programming (OOP) in Python with mini projects, hands-on practice, and carefully designed visual explanations. Understand how the elements and abstract concepts of OOP work behind the scenes. Apply your knowledge to new scenarios.
Object Oriented Programming is Your Next Step Into the In-demand and Powerful World of Python
Learn Object Oriented Programming (OOP) in Python with mini projects, hands-on practice, and carefully designed visual explanations. Understand how the elements and abstract concepts of OOP work behind the scenes. Apply your knowledge to new scenarios.
Object Oriented Programming is Your Next Step Into the In-demand and Powerful World of Python
Create and work with classes and instances to write Python programs.
Understand how they work behind the scenes.
Learn when to use instance attributes vs. class attributes.
Implement and call methods. Understand their purpose.
Take advantage of the power of inheritance to avoid code repetition.
Use key concepts like Docstrings and Special methods in your programs.
Student Reviews
It's a wonderful course. It's very methodical and detail. It helps you build a very strong foundation in OOP in python. Highly recommended for beginners. Xin Chu
Even total noob will understand the OOP here :) Łukasz Bryzek
I love how the instructor explains things in simple language and relates it to everyday life. I actually understand. I'm just at the beginning of the course and am excited about continuing. Donny Lobree
I would strongly recommend this course if you are new to programming and want to master the basics of OOP. Demayne Collins
The learning sticks. The coverage of Python classes here, for me, has been better than how this topic has been covered in a couple of other Python classes I have from more well-established Python instructors. Hats of to the instructor for putting this together. Thomas P
Perfect for persons without any clue in oop. Patrick Onegin
Course Updates
The course is frequently updated with new lectures, projects, and resources:
October 2023 - NEW Updated coding exercises.
November 2022 - NEW New Mini Project (Cash Register Methods).
November 2022 - NEW Updated quizzes and mini projects.
November 2022 - NEW Updated quizzes with new questions and answers.
November 2022 - NEW The special methods iter() and next().
November 2022 - NEW Why cloned tuples have the same id.
November 2022 - NEW How to delete an instance attribute.
November 2022 - NEW How to iterate over instances.
July 2022 - NEW New Project: Dice Game
May 2022 - NEW. Updated Section 1
Nov 2021 - NEW Updated quizzes with detailed explanations for the answers.
Sept 2021 - NEW Updated Tic-Tac-Toe Project (new lectures and code).
Jun 2021 - NEW Updated Python files and quizzes.
Jun 2021 - NEW War Card Game Project.
Jun 2021 - NEW. Complete Course Update (New Lectures and Resources).
Apr 2021 - NEW. Final Project: Implementing a Data Structure with OOP (a Linked List).
Apr 2021 - NEW Q&A Featured Questions.
Apr 2021 - NEW Downloadable
Nov 2020 - NEW Tic-Tac-Toe Project.
Oct 2020 - NEW Updated quizzes, mini projects, and first two sections.
Oct 2020 - NEW Badges to collect at the end of each section.
Oct 2020 - NEW Articles "“What is None?” and "Method Chaining"
Oct 2020 - NEW Section quizzes.
Oct 2020 - NEW PDF study guide with questions to help you review.
Nov 2019 - NEW Complete course update with new video lectures and downloadable resources.
Sept 2019 - NEW Updated tips handout, content handout, and course wallpapers.
Sept 2019 - NEW Downloadable Python files for each section.
Sept 2019 - NEW PDF Handouts for each section.
July 2019 - NEW Article "Inheritance in Context".
July 2019 - NEW Solutions for the Coding Exercises.
July 2019 - NEW New mini projects for each section.
Add New Python Skills To Your Resume
Python is currently one of the most popular programming languages and its popularity continues rising every year. It is used for real-world applications in diverse areas such as Data Science, Game Development, Web Development, Machine Learning, Artificial Intelligence, and many more. Learning Object Oriented Programming in Python is your next step into the powerful world of computer science.
Object Oriented Programming is key if you wish to expand your computer science skills and create maintainable and scalable programs. You will need to learn these concepts to implement data structures like trees, graphs, and linked lists. It's also key for game development, GUI programming, artificial intelligence, and many other areas. The concepts and techniques that you will learn in this course are easily transferable to other programming languages like Java, JavaScript, and many more.
Content & Overview
With high-quality video lectures that include graphics and animations, you will learn and work with these concepts:
Classes
Instances
Instance Attributes
Class Attributes
Methods
The 'self' parameter
Inheritance
Docstrings
Special Methods
and more.
You will build a Tic-Tac-Toe game and a text-based version of the War Card Game following the principles of Object Oriented Programming.
Learning Material & Resources
Throughout the course, you will find these resources:
Video lectures: carefully designed graphics, animations, and explanations.
Dice Game: you will build an interactive dice game using the principles of Object-Oriented Programming.
Tic-Tac-Toe Game: you will build a working tic-tac-toe game using the principles of Object Oriented Programming.
War Card Game Project: you will create a text-based version of the War Card Game using the principles of Object Oriented Programming.
Final Project: you will implement a data structure in Python (a Linked List) with step-by-step explanations, practical exercises, and featured questions.
Mini Projects: you will apply your knowledge at the end of each section with mini projects.
Solutions to the Mini Projects: each mini project has its corresponding solution.
PDF Handouts: unique study guides with graphical summaries of the key aspects of each section.
Coding Exercises: practice key concepts with the coding exercises.
Solutions of the Coding Exercises: each coding exercise has its corresponding solution.
Quizzes: check your knowledge interactively after each lecture with short quizzes that have unlimited attempts.
Python Files: download the code used for each section as a compressed (.zip) file with individual python (.py) files.
Articles: read complementary articles to expand your knowledge.
Course Poster: track your progress with a poster that you can cross out as you complete each section.
Cornell Notes Format: take notes with this PDF format and follow the Cornell Note-taking System.
Code Notebook Format: download a PDF format to write your code manually if you prefer, and add your notes and comments.
Discussion Forums: ask questions on the discussion forums and discuss interesting topics with your peers.
Why is this course unique?
This course is unique because of its emphasis on providing visual and detailed explanations of how the elements of Object Oriented Programming (OOP) work behind the scenes, so you will not only learn how to use them in Python, you will actually understand what each line of code does behind the scenes.
During the course, you will apply your knowledge by completing mini projects that simulate simplified real-world scenarios such as fixing classes in a bakery system, representing bacteria for educational software using instance attributes, implementing inheritance for a videogame, completing the system of a vending machine, and many more. Each mini project includes its corresponding solution.
Unique study materials complement the course experience. You will find PDF handouts specifically designed for the course with a graphical summary of the key aspects of each section.
You will solve coding exercises directly on the browser and you will receive instant feedback for your submission.
You will check your knowledge with short Quizzes after each main lecture. The Quizzes provide instant feedback, so you can see the correct answer immediately. The quiz questions were designed to make you think more deeply about the topics presented.
You will receive a certificate of completion that you can add to your social media profiles to showcase your new skills.
You will also have lifetime access to the course and to all the new additions.
You are very welcome to watch the preview lectures and check out the full course curriculum.
If you are looking for an engaging, visual, and practical course, you've found it.
Add "Object Oriented Programming in Python" to your resume and showcase your new skills.
Learn what Object-Oriented Programming is and the concept of "programming paradigm".
You will learn:
The advantages of Object-Oriented Programming such as modularity, reusability, and extensibility.
You will find:
A PDF Handout with graphical explanations that summarize the key topics of this section.
The code for this section as a .py file.
You will learn:
What classes are.
What they represent in Object-Oriented Programming.
Why they are important in Object-Oriented Programming.
You will learn:
How to identify potential classes for a program from a problem description.
You will learn:
How to write the class header in Python and the basic elements of a class.
You will learn:
How to write a class header in Python 3 and how to make your code compatible with Python 2.
You will find:
A practical example of how you can identify potential classes for your program from a problem description.
You will find:
A PDF version of the description of the mini project, so you can start working on it when you use the mobile app.
You will learn:
How to define class attributes in Python.
You will find:
A PDF Handout with graphical explanations that summarize the key topics of this section.
A .zip file with the Python files used during this section.
You will learn:
What instances are.
What they represent in Object Oriented Programming.
The role of instance attributes in OOP and how to work with them.
You will learn:
The role of the __init__() to create instance attributes.
How instance attributes are created and initialized.
The structure and syntax of the __init__() method.
You will learn:
Common syntax mistakes made when working with __init__().
You will find:
The PEP 8 Style Guide conventions to write Parameters.
You will learn:
What "self" represents in Object Oriented Programming.
Why it is important to access instances.
How to use it in your classes.
You will find:
A practical coding session where you will practice defining instance attributes in a class.
You will learn:
How to create an instance in Python.
How to pass arguments to each parameter of __init__() when an instance is created.
You will learn:
Why we skip the argument that corresponds to the parameter self when we create a new instance.
Importance and use cases of the value 'None' in Python.
You will learn:
How to get and access instance attributes.
How to work with and use instances attributes in your code.
You will find:
A practical coding session to practice accessing the values of instance attributes.
You will learn:
How to set define arguments for the formal parameters of __init__().
The correct order and logic behind default arguments.
How default arguments work behind the scenes.
You will find:
The PEP 8 Style Guide conventions for Default Arguments.
You will learn:
How to modify and update the values of the instance attributes of an instance.
You will find:
A practical coding session to practice modifying the value of an instance attribute.
You will learn:
What class attributes are.
What they are used for and why they are important in Object-Oriented Programming (OOP).
How they are related to instances.
You will find:
A summary of the key differences between class attributes and instance attributes.
You will find:
A practical coding session to practice how to define class attributes.
You will learn:
How to access the value of class attributes inside and outside of a Python class.
You will find:
A practical coding session to practice how to access class attributes.
You will learn:
How to modify or update the value of class attributes in a Python class.
You will find:
A practical coding session to practice modifying the value of a class attribute.
You will learn:
The main aspects of the principles of Encapsulation.
Why this is one of the pillars of Object-Oriented Programming.
You will learn:
The main aspects of the principle of Abstraction.
Why it is one of the pillars of Object-Oriented Programming.
You will learn:
Why we need to define non-public attributes in Python to follow the principle of Encapsulation.
The difference between public and non-public attributes and how to define them in Python.
You will find:
A practical coding session to practice how to define public and non-public attributes in Python, following the recommended naming conventions.
You will find:
A link to a helpful article in the Python documentation.
You will find:
A brief explanation of the concept of "access modifier" (which applies to programming languages like Java).
A list of the access modifiers that you can use in Java.
A link to a helpful article on this topic.
You will learn:
How the process of Name Mangling works behind the scenes and what triggers it.
How you could access an attribute that has been modified by the process of Name Mangling.
When you should use it.
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.
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.