We may earn an affiliate commission when you visit our partners.
Ardit Sulce

Are you ready to elevate your Python skills to the next level and become a proficient Python developer? Look no further. Our comprehensive course is designed to transform you into a Python pro by guiding you through the creation of 10 advanced Object-Oriented Programming (OOP) applications. As we code real-world programs, you will learn advanced Python concepts and also learn how to use professional software development tools and techniques such as Git, software design principles, code refactoring, advanced debugging, APIs, and much more.

Why Enroll in This Course?

Read more

Are you ready to elevate your Python skills to the next level and become a proficient Python developer? Look no further. Our comprehensive course is designed to transform you into a Python pro by guiding you through the creation of 10 advanced Object-Oriented Programming (OOP) applications. As we code real-world programs, you will learn advanced Python concepts and also learn how to use professional software development tools and techniques such as Git, software design principles, code refactoring, advanced debugging, APIs, and much more.

Why Enroll in This Course?

  • Master OOP Concepts: Delve into the fundamentals of Object-Oriented Programming and understand how to create robust, modular, and scalable Python applications.

  • Hands-On Practice: Gain practical experience by building 10 real-world applications, starting with the Geometry Game and progressing to complex projects like the Flatmates' Bill Sharing, Math Painter, Webcam Photo Sharer, Flatmates' Bill Web App, Calories App, Automated Emails, Instant Dictionary Web App & API, and the Cinema Booking App.

  • PyCharm Proficiency: Learn how to efficiently use the PyCharm IDE, setting up projects, and leveraging its powerful features for streamlined development.

  • In-Depth Application Development: Go beyond basics as you explore topics like inheritance, building user interfaces, web scraping, deploying applications, working with APIs, and databases, and even creating your own Python package.

  • Real-World Deployment: Understand the process of deploying your applications, making them accessible to users globally, and handling feature requests and updates.

  • Professional Software Tools and Techniques: Learn how to use tools that professional developers use such Git, Figma, debuggers, etc., and learn software development techniques to write professional code such as software design principles, refactoring, writing organized code, etc.

  • Bonus Content: As a bonus, we've included an extra module on creating a Weather Forecast Package, providing you with a valuable skill set to develop and publish your Python libraries.

What You'll Accomplish:

  • Build a Strong Foundation: Master Python from the ground up, learning essential concepts that will make you proficient in writing clean, efficient, and maintainable code.

  • Develop 10 Real-World Applications: Gain practical experience by building diverse applications, ensuring you can confidently tackle any programming challenge.

  • Understand OOP Principles: Grasp advanced Object-Oriented Programming principles, enabling you to design and implement scalable and modular software solutions.

  • Become a Python Pro: Transform into a skilled Python developer, ready to take on complex projects and contribute to the world of software development.

Enroll now and embark on a journey to becoming a Python expert. Whether you're a beginner looking to solidify your Python skills or an experienced developer aiming to enhance your proficiency, this course is tailored for you. Join us and unlock the full potential of Python development.

Enroll now

What's inside

Learning objectives

  • Master object-oriented programming (oop) in python
  • Build 10 python applications using object-oriented programming
  • Learn databases, apis, package development, git, code refactoring, debugging, and more
  • Build three advanced python projects on your own
  • Learn to write high quality code following the pep8 style guide
  • Learn how to deploy applications making them accessible to users globally

Syllabus

Let us go through the course introduction and prepare your computer environment for advanced Python programming.

Get to know the course content and what you will achieve by completing this course.

Read more

Learn about the different Python IDEs and how to choose the one that works the best for you.

Helpful Resources

Inside you will find the direct link to access the IDE.

Let us have a short tour of the IDE we will use for this course.

Application 1️⃣ (Section 2-7): Geometry Game
Welcome to App 1
Learn how object-oriented programming in Python works.

Try to analyze the code shown on the screen and try to spot the Python objects of this small program.

The Python language is broad, but when you learn to identify the category in which any possible language element falls, you have a clear overview of how the entire Python language functions.

Let us answer the biggest question in Python programming.

Learn how to create and use Python classes and structure your programs using the object-oriented programming paradigm.

Here is how the object-oriented programing game will look like on the frontend when completed.

Can you try to spot the Python objects in this snippet of code?

Here is the list of objects that were inside the previous code.

Learn about the steps you should take when developing a Python program.

Finally, here is how to create a Python class.

Creating a Class

Learn how to create object instances out of your custom classes.

Learn the meaning of the "self" parameter and what role "self" plays inside a Python class.

Let us go a bit deeper into the use of "self" in object-oriented programming.

Creating Another Class

Learn how to create methods for your classes.

Learn about the difference between the special "__init__" method and other methods that a Python class might have.

Your mission in this assignment is to add a "distance" method that calculates the distance between point objects.

Here is the solution from the instructor to the "distance" method problem.

Adding a Method
Adding One More Method
In this section you will create more classes and learn more tips and secrets about classes and object-oriented programming.

Let us create more classes for our program.

Here is an overview of the syntax and terminology of Python classes.

Your mission here is to add a feature to the program while keeping the program elements decoupled.

Here is the solution of the instructor on the new program feature.

Let us change something in the code to improve it.

Setting Up PyCharm and And Project Structures For Next Apps

You are not a beginner anymore. Let us now switch from our beginner-friendly IDE to a very powerful IDE.

Here you will find the instructions on how to set up PyCharm on Windows operating systems.

Here you will find the instructions on how to set up PyCharm on MacOS operating systems.

Here you will find the instructions on how to set up PyCharm on Linux operating systems.

Now that we have installed PyCharm, let us learn how to use it to develop Python applications.

In this important video, you will be given access to the file resources and third-party packages used in the course from this point forward.

Inheritance in OOP

You will be introduced to the problem we want to solve and later learn how inheritance will solve that problem.

You will familiarize yourself with the library we will use to enrich the child class that inherits from the parent class.

Learn exactly how you can inherit a class from another class in Python.

Learn how to add more methods to your child class to extend its functionality.

Here is a summary of what inheritance is about.

Let us practice inheritance even further by inheriting from the Point class.

Practice Inheritance
Application 2️⃣ (Section 8-12): Flatmates' Bill Sharing
Welcome to Application 2
Planning the Application in OOP Style

Let's make sure we have the necessary third-party Python libraries for this project.

Let us see what the app looks like and what it does before we build it.

A guide on how to share the app with friends or colleagues.

It is crucial to plan the program before typing in any code. In this video, you will learn a secret technique for easily planning a program before writing it.

Once we have a plan, we can start typing in some empty classes in our code to have an organized layout, which we can then easily develop further.

A quick note about argument names.

Implementing the Application

Let us write the code inside our currently empty "pays" method.

Here is a useful IDE plugin that may immensely help your understanding of how your Python program is working under the hood.

Do you need to generate ten thousand PDF reports in a split second? Python has you covered, and this video will show you how.

Let us write the code inside the "generate" method to let Python produce the PDF file.

Let us improve our code's layout slightly to make it easier to run and use the program.

Learn how to add images to PDF documents.

Let us change how the PDF document looks like by improving its text font.

Learn how to instruct your Python program to open a PDF document once it has been generated.

Building a Command Line Interface (CLI)

How a program interacts with the user is an essential aspect of programming. Here, you will learn about the most popular user interfaces you can build for your Python programs.

Learn how to build a CLI (Command-Line Interface) for your Python program.

Let us finish the command-line interface of our Python program.

Every once in a while, your Python code may need some housekeeping to keep it neat and organized.

Often a Python program consists of multiple Python files. Here you will learn how to organize the program files.

Deploying a CLI Application on Replit (Optional)

A note for students about this section.

Once you create a Python program on your computer, you might have to deploy it to run on a live-server. Here we talk about that program deployment.

Let us optimize our Python program to make it ready for deployment.

Here we will upload our project files into the live-server so that our Python program can run on the server.

Now that we have deployed our Python program, we can share it with the world.

The development of a program never ends. Here we discuss creating a new feature for our program based on a user feature request.

Here we will implement in our program the new sharing feature that we build.

Now, it is time to connect the newly built feature with our existing codebase.

Finally, we are ready to apply the changes to our Python program in production.

OOP Exercises
Rectangle Object
Distance
Daily Python Projects
Instantiate Rectangle
Time
Add Perimeter
Call Time
Application 3️⃣ (Section 14-18): Math Painter
Welcome to Application 3
Creating Images with Python

Let's see how the app you are expected to build for this student project will look like.

Python can do many types of image processing. Here you will learn the theory behind how Python handles and processes images.

Let's have some fun by instructing Python to create an image out of a grid of numbers.

Learn how to edit images using Python code.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses PyCharm, which is a popular IDE among professional Python developers, streamlining the development process with its powerful features and tools
Covers Git, which is essential for version control and collaboration in software development, enabling learners to manage code changes and work effectively in teams
Explores software design principles and code refactoring, which are crucial for writing maintainable and scalable code, enhancing the overall quality and robustness of Python applications
Includes a bonus module on creating a Weather Forecast Package, providing learners with a valuable skill set to develop and publish their own Python libraries
Requires familiarity with Python and object-oriented programming concepts, so learners without prior experience may need to acquire foundational knowledge before enrolling
Teaches PEP8 Style Guide, which is important for writing clean and readable code, but learners should be aware that other style guides exist

Save this course

Save Intermediate to Advanced Python with 10 OOP Projects 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 Intermediate to Advanced Python with 10 OOP Projects with these activities:
Review Object-Oriented Programming (OOP) Fundamentals
Solidify your understanding of OOP concepts before diving into advanced applications. This will make grasping the course material much easier.
Show steps
  • Work through simple OOP examples in Python.
  • Review basic OOP concepts like classes, objects, inheritance, and polymorphism.
  • Identify real-world objects and model them using OOP principles.
Review 'Fluent Python'
Deepen your understanding of Python's object model and advanced features. This book will provide a solid foundation for the course projects.
Show steps
  • Read the chapters on data structures and object-oriented programming.
  • Experiment with the code examples provided in the book.
  • Apply the concepts learned to your own Python projects.
Build a Simple Command-Line Application
Practice building a command-line application to reinforce OOP concepts and gain experience with user input and output. This will prepare you for the more complex projects in the course.
Show steps
  • Define the application's functionality and user interface.
  • Implement the application using classes and methods.
  • Add error handling and input validation.
  • Test the application thoroughly.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document Code with Docstrings
Learn to write clear and concise docstrings for your Python code. This will improve code readability and maintainability, which are essential skills for professional software development.
Show steps
  • Research the PEP 257 style guide for docstrings.
  • Practice writing docstrings for classes, methods, and functions.
  • Use a tool like Sphinx to generate documentation from your docstrings.
Refactor Existing Code
Improve your code quality by refactoring existing code to follow software design principles. This will help you write more maintainable and scalable applications.
Show steps
  • Identify areas of code that can be improved.
  • Apply refactoring techniques like extracting methods and classes.
  • Test the refactored code to ensure it still works correctly.
Review 'Clean Code'
Learn best practices for writing clean and maintainable code. This book will help you apply software design principles to your Python projects.
View CLEAN CODE on Amazon
Show steps
  • Read the chapters on code formatting, function design, and error handling.
  • Apply the principles learned to your own Python projects.
  • Discuss the book's concepts with other developers.
Contribute to a Python Project on GitHub
Gain real-world experience by contributing to an open-source Python project. This will expose you to different coding styles, project structures, and collaboration workflows.
Show steps
  • Find a Python project on GitHub that interests you.
  • Read the project's contribution guidelines.
  • Identify a bug or feature that you can work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Intermediate to Advanced Python with 10 OOP Projects will develop knowledge and skills that may be useful to these careers:
Python Developer
A Python developer specializes in building applications using the Python programming language. This course, focused on intermediate to advanced Python and object oriented programming, is directly applicable to the work that a Python developer does. The course emphasizes real-world applications such as the Flatmates' Bill Sharing App and the Cinema Booking App, and these practical projects align with the kind of work a Python developer engages in. Learning how to use professional tools is also a key asset for those who wish to enter this career.
Application Developer
An application developer is responsible for designing, coding, and debugging applications. This course, through its hands-on approach to building ten different applications, including web apps and APIs, fits well into the work that an application developer does. This course also covers deployment, teaching the process of making applications globally accessible, which is highly relevant to the job responsibilities of an application developer. By learning object oriented programming, one can create scalable modular software solutions.
Software Developer
A software developer designs, develops, and maintains software applications. This course provides practical experience through building ten applications using object oriented programming, which is highly relevant for a software developer. The course's coverage of professional software development tools such as Git, debugging, and refactoring, combined with the hands-on projects, helps build a foundation for a software developer to be successful. This course demonstrates how to deploy applications, which is a crucial skill for this role.
API Developer
An API developer focuses on designing, building, and maintaining application programming interfaces. The course covers how to build APIs, which is directly applicable to the work of an API developer. The included projects, such as the Instant Dictionary Web App and API, give relevant practical experience. Also, the course includes using databases which may be necessary for API development.
Backend Developer
A backend developer works on the server-side of applications, focusing on databases, APIs, and the logic that powers user-facing applications. Since this course covers APIs, databases, and application deployment, along with object oriented programming, it aligns well with the responsibilities of a backend developer. The course dives into building practical applications, which are fundamental to the work of a backend developer. This course may be useful for learning to build and deploy robust backend services.
Web Developer
A web developer builds and maintains websites and web applications. This course includes development of web applications and APIs, which are highly relevant for a web developer. The hands-on projects, such as the Flatmates' Bill Web App and Instant Dictionary Web App, give practical experience in building the types of systems a web developer would work on. The course may be helpful for learning back end skills for web development.
Full-Stack Developer
A full stack developer works on both the front-end and back-end aspects of applications. While this course focuses on the back-end with Python and object oriented programming, learning how to build and deploy web applications, as covered in the course, is critical for the work of a full stack developer. This course also delves into APIs, a critical component of full stack development. The course may be useful for adding back end skills to this role.
Software Engineer
A software engineer applies engineering principles to the design, development, maintenance, testing, and evaluation of software and systems. This course emphasizes software design principles, code refactoring, and debugging, directly contributing to the skill set of a software engineer. The practical experience gained from building ten applications in this course could be crucial for a software engineer. The course may be helpful for understanding the processes in software engineering.
Automation Engineer
An automation engineer works to automate tasks using different software development tools. The course teaches to create applications with Python, which allows for the automation of tasks. The course also covers how to build and deploy applications, which is a relevant skill for an automation engineer, who needs to automate software tasks. The software development best practices such as debugging, code refactoring, and the use of Git may be useful for this role.
DevOps Engineer
A DevOps engineer is responsible for automating and streamlining the software development process and deployment. The course emphasizes deployment of applications, teaching the process of making them accessible to users globally, which aligns with the job responsibilities of a DevOps engineer. The course may be useful for a DevOps engineer, who may wish to enhance practical application development skills and learn object oriented software development. Learning how to automate development workflows may be helpful as well.
Data Engineer
A data engineer is responsible for building and maintaining the systems that collect, store, and process data. While this course is not directly focused on data engineering topics, it does introduce databases, APIs, and deploying applications, which are all relevant to a data engineer. The ability to develop applications with Python, as this course teaches, may be useful for integrating data analysis and manipulation tools. Knowledge of Python and software development best practices, as taught in this course, may be helpful.
Technical Lead
A technical lead is responsible for guiding a development team, providing technical direction, and ensuring projects are completed successfully. This course, by providing extensive hands-on experience with creating and deploying applications, may allow one to understand project planning and execution. The course may be useful for learning the day to day experiences of software development, which is also necessary for technical leads.
Software Architect
A software architect is responsible for high-level design choices and technical standards, including software coding practices. This course, by teaching professional software development tools and techniques such as Git, software design principles, and code refactoring, is relevant for the work of a software architect, who must set standards for such practices. The course may be useful for learning the underlying principles of software design and architecture.
Database Administrator
A database administrator is responsible for managing and maintaining databases. This course introduces databases and demonstrates how to connect to them via Python, which is helpful for a database administrator. The course may be useful for enhancing the skills of a database administrator. Also, it may be useful for understanding how development interacts with databases.
Technology Consultant
A technology consultant provides expert advice to organizations on how to best use technology to meet their goals. While this course does not focus on consulting, it does offer practical, hands on experience building and deploying applications using object oriented programming. The course may be useful for learning the technical details behind development. The experience of developing real world applications included in the course may be helpful.

Reading list

We've selected two 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 Intermediate to Advanced Python with 10 OOP Projects.
Classic guide to writing clean, maintainable, and readable code. It covers a wide range of topics, including naming conventions, function design, and error handling. While the examples are in Java, the principles apply to any programming language, including Python. It provides additional depth to the course by emphasizing the importance of code quality and maintainability.
Provides a deep dive into Python's core features, including data structures, functions, and object-oriented programming. It's particularly useful for understanding Pythonic idioms and writing more effective code. While not a beginner's book, it offers valuable insights for intermediate to advanced Python developers. It expands on the course material by providing a more comprehensive understanding of Python's underlying mechanisms.

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