We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Python OOP - Object Oriented Programming for Beginners

Estefania Cassingena Navone

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.

Read more

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.

Enroll now

What's inside

Learning objectives

  • The principles of object oriented programming (oop) using python.
  • How the elements of object oriented programming work behind the scenes.
  • Understand how classes work and how you can create instances from classes.
  • Implement and call methods. understand their purpose within classes.
  • Define instance attributes and class attributes. learn their differences.
  • Use 'self' to refer to instances. learn how it works behind the scenes.
  • Work with inheritance to reuse code, improve design, and avoid repetition.
  • Practice key aspects of oop such as docstrings and special methods.

Syllabus

Welcome to the Course: Python OOP Object Oriented Programming for Beginners
Welcome to the Course - Let's Begin
Important Course Information
Introduce Yourself and Share your Goals
Read more
Downloadable Resources
Introduction to Object Oriented Programming (OOP) and Key Concepts
Welcome to this Section | Introduction to Object-Oriented Programming (OOP)
Section Topics

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.

Important Terminology and PDF Glossary
Introduction to Object-Oriented Programming in Python
Discussion Topic: Share your Thoughts
Classes: The Blueprints of Object Oriented Programming (OOP)
Welcome to this Section | Introduction to Classes
Default Arguments

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.

Class Naming Conventions

You will learn:

  • How to identify potential classes for a program from a problem description.

Classes | Concept and Analysis

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.

Introduction to Classes | Python Syntax

You will find:

  • A practical example of how you can identify potential classes for your program from a problem description.

Classes in Real-World Scenarios (Mini Project)

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.

Instances and Instance Attributes: Use your Classes to Create Instances
Welcome to this Section | Instances and Instance Attributes

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.

Instances and Instance Attributes | Concept

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.

Instances and Instance Attributes (Syntax)

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.

Create instances (Practice)
Create an Instance in Python

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.

How to Access Instance Attributes

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.

How to Iterate over Sequences of Instances

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.

How to Update Instance Attributes
How to Delete an Instance Attribute
Bacteria and Instances (Practice)
Bacteria and Instances (Practice) - PDF Version for the Mobile App
Section Quiz | Check Your Knowledge
Bakery: Fix the Classes (Mini Project)
Class Attributes: Define Attributes Shared Across Instances
Welcome to this Section | Class Attributes

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.

Class Attributes | Concept

You will find:

  • A practical coding session to practice how to define class attributes.

Class Attributes | Syntax
Class Attributes in Python

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.

How to Access Class Attributes
Getting a Class Attribute

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.

How to Modify Class Attributes
Updating Class Attributes
Employees and Class Attributes (Mini Project)
Encapsulation and Abstraction: Key Principles of Object-Oriented Programming
Welcome to this Section | Encapsulation and Abstraction

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.

Encapsulation and Abstraction

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.

Public vs. Non-Public Attributes

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.

Name Mangling

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Offers hands-on practice with the help of mini-projects and coding exercises in every section
Emphasizes with visual and graphical explanations how the elements of Object-Oriented Programming (OOP) work behind the scenes
Provides high-quality video lectures with graphics, animations, and clear explanations
Creates interactive experiences for students with quizzes and surveys
Offers downloadable Python code for each section zipped into individual Python files, making it convenient to practice and experiment with code samples
Provides unique study materials like downloadable PDF handouts designed specifically for the course, providing easy access to key concepts

Save this course

Save Python OOP - Object Oriented Programming for Beginners 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 Python OOP - Object Oriented Programming for Beginners with these activities:
Read the first chapter of the official Python OOP documentation
Understand the benefits of Object-Oriented Programming and its key terms to be prepared for this course.
Show steps
  • Go to the official Python documentation and find the first chapter about Object-Oriented Programming.
  • Read carefully the introduction and the first section.
Read Head First Java, 2nd Edition by Kathy Sierra and Bert Bates
Get a deeper understanding of Object-Oriented Programming concepts and best practices by reading a highly acclaimed book on the topic.
Show steps
  • Buy or borrow a copy of Head First Java, 2nd Edition.
  • Read the book thoroughly and take notes on the key concepts.
  • Complete the exercises and activities in the book to reinforce your understanding.
Show all two activities

Career center

Learners who complete Python OOP - Object Oriented Programming for Beginners will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

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

Similar courses

Here are nine courses similar to Python OOP - Object Oriented Programming for Beginners.
Programming Foundations with Python
Teach teens computing: Object-oriented Programming in...
Python Searching & Sorting Algorithms - A Practical...
MongoDB Database Developer Course In Python
Data Structures for Designers Using Python
Python Best Practices: Learn to Write Clean Python Code
Object-oriented Programming in Python: Create Your Own...
Object-oriented Programming in Java
Python - Complete Python, Django, Data Science and ML...
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