Python OOP - Object Oriented Programming for Beginners
4.4 (384 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,379 students enrolled

Python OOP - Object Oriented Programming for Beginners

Learn Object Oriented Programming with Mini Projects, Coding Sessions, and Carefully Designed Graphics and Explanations.
4.4 (384 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,379 students enrolled
Last updated 5/2020
English
Current price: $23.99 Original price: $34.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • 83 articles
  • 72 downloadable resources
  • 11 coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • 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.
Course content
Expand all 194 lectures 07:18:45
+ Welcome to Object Oriented Programming (OOP)
5 lectures 06:35

You will learn:

  • Real-world applications of Object-Oriented Programming.

Preview 02:59

You will find:

  • A brief description of the course content.

Course Roadmap
01:57

You will find:

  • An interactive activity - Introduce yourself on the discussion forums.

Welcome to the Course | Please Introduce Yourself
00:05

You will find:

  • Links to helpful Udemy articles.

  • Instructions on how to format your code for assignments and Q&A.

  • Instructions on how to download additional resources.

  • A special course wallpaper.

Important Course Information & Resources
01:28
Applications of Object-Oriented Programming
2 questions
Meet the Coding Exercises
1 question
Let's Start the Course
00:06
+ Advantages of OOP and Key Concepts
6 lectures 05:03

You will find:

  • A brief description of the content of this section.

Welcome to this section | Advantages of OOP
00:44

You will find:

  • A glossary in PDF format with key terminology. You can refer to this glossary during the course.

Section Resources
00:09

You will learn:

  • The advantages of Object-Oriented Programming such as modularity, reusability, extensibility, and more.

Advantages of Object Oriented Programming
03:32

You will find:

  • The meaning of the acronyms OOP and PEP.

Important Acronyms
00:18

You will find:

  • A short list of the most popular programming languages that support Object-Oriented Programming.

  • A link to a more thorough list of programming languages that support Object-Oriented Programming.

Programming Languages that support Object Oriented Programming
00:06
Advantages of Object Oriented Programming
2 questions
It's time to apply your knowledge.
Mini Project | Advantages of OOP
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Classes: The Blueprints of Object Oriented Programming (OOP)
8 lectures 12:52

You will find:

  • A brief description of the topics presented during this section.

Welcome to this section | Classes
00:30

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • What classes are.

  • What they represent in Object Oriented Programming.

  • What they are used for in this programming paradigm.

Preview 02:04

You will learn:

  • How to extract the potential classes for a program from a project description.

Use Cases and Practical Analysis
03:13
Classes | Concept & Analysis
2 questions

You will learn:

  • The main sections of a class.

  • How to recognize them (class attributes, instance attributes, methods).

Classes: General Python Syntax & Structure
02:34

You will learn:

  • How to write a class header in Python 3 and how to make your code compatible with Python 2.

Use of "object" in Python 3 and Python 2
00:22
Classes | Syntax
3 questions

You will find:

  • A step-by-step explanation of the analysis of a simplified scenario to extract the relevant classes.

Practical Analysis: Classes
03:42
Section Quiz | Check Your Knowledge
4 questions
It's time to apply your knowledge.
Mini Project | Classes in Real-World Scenarios
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Instances and Instance Attributes
17 lectures 39:35

You will find:

  • A brief description of the topics presented during this section.

Welcome to this section | Instances and Instance Attributes
00:42

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • What instances are.

  • What they represent in Object Oriented Programming.

  • How instances can have instance attributes and how they work.

Preview 05:45
Instances and Instance Attributes | Concept
1 question

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.

Instance Attributes and __init__()
05:47

You will learn:

  • Common syntax mistakes made when working with __init__().

__init__(): Common Mistakes
00:20

You will find:

  • The PEP 8 Style Guide conventions to write Parameters.

Formal Parameters: PEP 8 Style Guide
00:17

You will learn:

  • What "self" represents in Object Oriented Programming.

  • Why it is important to access instances.

  • How it is used within classes.

Introduction to self
01:55

You will find:

  • A practical coding session where you will practice defining instance attributes in a class.

Coding Session: Define Instance Attributes
03:10
Instances & Instance Attributes | Syntax
4 questions

You will learn:

  • How to create an instance in Python.

  • How to pass arguments for each formal parameter of __init__() to initialize the values of the instance attributes.

How to Create Instances
04:14

You will find:

  • A practical coding session where you will practice creating instances.

Coding Session: Create Instances
04:14
Create instances
2 questions
Create an Instance
1 question

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.

Default Arguments
03:21

You will find:

  • The PEP 8 Style Guide conventions for Default Arguments.

Default Arguments: PEP 8 Style Guide
00:05
Default Arguments
2 questions

You will learn:

  • How to read and access instance attributes.

  • How to work with and use instances attributes in your code.

How to Access Instance Attributes
01:29

You will find:

  • A practical coding session to practice accessing the values of instance attributes.

Coding Session: Access Instance Attributes
03:44
How to Access Instance Attributes
2 questions

You will learn:

  • How to modify and update the values of the instance attributes of an instance.

How to Modify Instance Attributes
01:33

You will find:

  • A practical coding session to practice modifying the value of an instance attribute.

Coding Session: Modify Instance Attributes
02:31
How to Modify Instance Attributes
3 questions
Now you will apply your knowledge by representing bacteria in educational software for a small school district.
Practice | Bacteria and Instances
1 question
Section Quiz | Check Your Knowledge
4 questions
It's time to apply your knowledge.
Mini Project | Bakery: Fix the Classes
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Class Attributes
11 lectures 13:34

You will find:

  • A brief description of the topics presented during the section.

Welcome to this Section | Class Attributes
00:34

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • What class attributes are.

  • What they are used for and their importance.

  • How they are related to instances.

Introduction to Class Attributes
01:43

You will find:

  • A summary of the key differences between class attributes and instance attributes.

Class Attributes vs. Instance Attributes
00:15
Class Attributes | Theory
1 question

You will learn:

  • How to define class attributes.

How to Define Class Attributes
01:35

You will find:

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

Coding Session: Define Class Attributes
01:36
Class Attributes | Syntax
2 questions
Define Class Attributes
1 question

You will learn:

  • How to access the value of class attributes.

How to Access Class Attributes
01:29

You will find:

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

Coding Session: Access Class Attributes
02:21
How to Access Class Attributes
2 questions
Access Class Attributes
1 question

You will learn:

  • How to modify or update the value of class attributes.

How to Modify Class Attributes
01:10

You will find:

  • A practical coding session to practice modifying the value of a class attribute.

Coding Session: Modify Class Attributes
02:24
How to Modify Class Attributes
2 questions
Modify Class Attributes
1 question
It's time to apply your knowledge.
Mini Project | Employees and Class Attributes
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Encapsulation and Abstraction
11 lectures 27:40

You will find:

  • A brief description of the topics presented during the section.

Welcome to this section | Encapsulation and Abstraction
00:36

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • The main aspects of the principles of encapsulation.

  • Why this is one of the pillars of Object Oriented Programming.

Encapsulation
01:49

You will learn:

  • The main aspects of the principle of Abstraction.

  • Why it is one of the pillars of Object Oriented Programming.

Abstraction
06:42
Encapsulation and Abstraction
2 questions

You will learn:

  • Why we need to define non-public (protected) attributes in Python to follow the principle of encapsulation.

  • The difference between public and non-public attributes.

Public vs. Private (Non-Public) Attributes in Python
04:27

You will find:

  • A practical coding session to practice how to define protected attributes in Python, following the established conventions.

Coding Session #1: Public vs. Non-Public Attributes
04:27

You will find:

  • A practical coding session to practice how to define protected attributes in Python, following the established conventions.

Coding Session #2: Public vs. Non-Public
05:33
Public vs. Non-Public Attributes
2 questions

You will find:

  • A link to a helpful article in the Python documentation.

Python Documentation | Helpful Link
00:04

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.

Access Modifiers in other Programming Languages
00:34

You will learn:

  • What is the process of Name Mangling.

  • How you could access an attribute that has been modified by the process of Name Mangling.

  • Use cases.

Name Mangling
03:00
Name Mangling
2 questions
Section Quiz | Check Your Knowledge
4 questions
It's time to apply your knowledge.
Mini Project | Encapsulation and Abstraction
2 questions

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Properties, Getters, and Setters
14 lectures 39:18

You will find:

  • A brief description of the topics presented during the section.

Welcome to this Section | Properties, Getters, and Setters
00:51

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • What getters and setters are.

  • Their purpose.

  • Their use cases.

  • The syntax used to define getters.

Introduction to Getters
03:57

You will find:

  • A detailed introduction to setters.

  • The Python syntax used to define setters.

Introduction to Setters
02:43

You will find:

  • A practical coding session to practice how to define getters and setters in your classes.

Coding Session: Getters & Setters
07:13
Getters & Setters
4 questions

You will learn:

  • What properties are.

  • Their use cases.

  • Why they are preferred over getters and setters in Python.

  • How to define properties using an initial syntax.

How to use Properties | The Pythonic Way
04:12

You will find:

  • A practical coding session where you will practice how to define properties in a class.

Coding Session: Properties
07:40
Properties | Initial Syntax
2 questions

You will learn:

  • How to use @property to write properties with a more compact syntax.

The @property Decorator
05:32

You will find:

  • A brief description of the syntax of a decorator function.

What is a decorator?
00:15

You will find:

  • A practical coding session to practice defining properties using the @property syntax.

Coding Session: Using @property
05:20

You will find:

  • A description of the three methods that you can define using the @property syntax.

@property | The Three Methods
00:19
Properties | @property
3 questions

You will find:

  • A special note on the use of getters, setter, and properties.

  • When to use them.

Note on the Use of Getters, Setters, and Properties
00:33
Section Quiz | Check Your Knowledge
5 questions
Share your Experience
00:15
It's time to apply your knowledge.
Mini Project | Refactor an Existing Project with @property
2 questions

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Methods
15 lectures 35:40

You will find:

  • A brief description of the topics presented during the section.

Welcome to this section | Methods
00:37

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

Section Resources & Slides
00:15

You will learn:

  • What methods are.

  • What they are used for in Object-Oriented Programming.

  • How they are related to classes and instances.

Introduction to Methods | Theory and Syntax
03:34

You will find:

  • A practical coding session to practice defining methods in a sample class.

Coding Session: Methods
05:15
Methods | Concept & Syntax
4 questions

You will find:

  • A description of the established conventions by PEP 8 for naming methods.

Methods: PEP 8 Style Guide
00:10

You will learn:

  • How to call methods using the correct Python syntax.

How to Call a Method
03:55

You will find:

  • A practical coding session to practice how to call methods.

Coding Session: Call a Method
05:16

You will learn:

  • An alternative syntax that you can use to call a method.

Alternative Syntax to Call a Method
00:16

You will learn:

  • How to indicate that your methods are non-public or protected.

Non-Public Methods and Name Mangling
00:10
How to Call a Method
2 questions
Call a Method
1 question

You will learn:

  • How to define default arguments for the formal parameters of the methods of a class.

Default Arguments
02:06

You will find:

  • A practical coding session to practice how to define default arguments for the formal parameters of the methods of a class.

Coding Session: Default Arguments
06:34

You will learn:

  • How you can break the functionality (actions) defined in the class into methods that can work together by calling each other.

How to Call a Method from Another Method
02:25

You will find:

  • A practical coding session where you will practice calling methods.

Coding Session: Call Methods from Other Methods
04:23

You will learn:

  • How to return a value from a method.

Methods and Return Statements
00:31
Define and Call a Method
1 question
Section Quiz | Check Your Knowledge
5 questions
Now it's time to apply your knowledge.
Mini Project | Music School - Student Records
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Intro to Object-Oriented Analysis and Design
10 lectures 15:46

You will find:

  • A brief description of the topics presented during the section.

Welcome to this Section | Object Oriented Analysis and Design
00:41

You will find:

  • The PDF Slides used during this section.

  • A PDF Handout with graphical explanations that summarize the key topics of this section.

  • A .zip file with the individual Python files used during this section.

  • A PDF file with the description of the case study of this section.

Section Resources & Slides
00:15

You will learn:

  • The main goals of Object Oriented Analysis and Design.

Main Goals of Object Oriented Analysis and Design
00:09

You will find:

  • The guidelines used to identify the classes, attributes, and adjectives from a project description.

Object Oriented Analysis | Guidelines
02:15

You will find:

  • A brief description of the scenario that will be analyzed.

Introduction to the Scenario
03:13

You will find:

  • An analysis of the potential classes for this scenario based on the project description.

Part 1: How to Identify Classes
00:58

You will find:

  • An analysis of the potential attributes for this scenario based on the project description.

Part 2: How to Identify Attributes
04:05

You will find:

  • An analysis of the potential methods for this scenario based on the project description.

Part 3: How to Identify Methods
03:11

You will find:

  • Sample classes that result from our initial analysis.

Final Classes and Next Steps
00:47
Section Quiz | Check Your Knowledge
4 questions
It's time to apply your knowledge.
Mini Project | Analyze a Scenario
1 question

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.

Mini Project (PDF Version for Mobile App)
00:11
+ Mid-term Course Project - Build a Game using OOP
8 lectures 52:26

You will find:

  • A brief description of the topics presented during the section.

Welcome to this Section | Mid-term Course Project & Quiz
01:02

You will find:

  • A PDF file with the Project Description and Requirements.

  • A Python file with a descriptive string that you can copy/paste to your class.

Section Resources
00:15

You will find:

  • A short description of each component of the project, including the classes, attributes, and methods.

Project Requirements
03:30
Note on the Mid-term Course Project
00:12

You will find:

  • An interactive coding session with a step-by-step explanation of how you should write the Card class for the game.

Coding Session: Card Class
05:31

You will find:

  • An interactive coding session with a step-by-step explanation of how you should write the Deck class for the game.

Coding Session: Deck Class
09:37

You will find:

  • An interactive coding session with a step-by-step explanation of how you should write the Player class for the game.

Coding Session: Player Class
13:33

You will find:

  • An interactive coding session with a step-by-step explanation of how you should write the CardGame class for the game.

Coding Session: Main Game
18:46
Now you will submit the final version of your project.
Submit your Mid-term Course Project
1 question
Requirements
  • Basic Python and programming knowledge (data types, variables, functions, conditionals, and loops).
  • Basic knowledge of lists, tuples, and dictionaries is required to complete the mini projects.
  • Python 3 and Python Shell or a Python IDE installed on your device.
  • Coding exercises can be submitted directly on the browser.
Description

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:

"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

-----------------------------

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 create a mid-term course project, a text-based version of the Blackjack 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.

  • Mid-term Course Project: you will create a text-based version of the Blackjack game using the principles of Object Oriented Programming.

  • Mini Projects: apply your knowledge at the end of each section with these mini projects.

  • Solutions to the Mini Projects: each mini project has its corresponding solution.

  • PDF Handouts: unique study guides with a graphical summary of the key aspects of each section.

  • Coding Exercises: practice key concepts with the coding exercises.

  • Solutions to 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.

  • PDF Slides: download the slides used in each section as a pdf file. Take your learning with you anywhere you go.

  • 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.

  • Capstone Project: apply your knowledge in a final capstone project.

  • 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!

Who this course is for:
  • New developers who know the basics of Python and would like to expand their knowledge.
  • Developers and Students who want to learn how to work with Object Oriented Programming.
  • Self-taught developers who wish to dive into the world of Object Oriented Programming from the basics.
  • Programmers who need to refresh their knowledge on this topic.