Skip to content

Go beyond simple scripts with this advanced Python course focused on Object-Oriented Programming (OOP) & basics of software design. Designed by George Freedom Tech.

License

Notifications You must be signed in to change notification settings

GeorgeFreedomTech/Python-Advanced-Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Python Advanced Course - Object-Oriented Design & Principles

By George Freedom

Move beyond simple scripts and learn Object-Oriented Programming (OOP) in Python. This advanced course (Lessons 1-12) dives deep into the principles of classes, inheritance, and abstraction, preparing you to architect sophisticated software solutions.


🚀 Welcome to the Architect's Workshop!

This repository hosts "Python Advanced: Mastering OOP for Scalable Software" – a comprehensive course presented in Jupyter Notebooks and Python scripts.

This course is for learners who have mastered Python's fundamentals and intermediate techniques. You are now ready to stop just writing code and start designing it. We will explore the mindset and tools necessary to build clean, reusable, and maintainable software systems.

🗺️ Course Outline / Your Architectural Blueprint:

This advanced curriculum is structured into modules focusing on the core tenets of professional software design.

  • Lesson 1: Introduction to OOP - The foundational shift from writing scripts to designing self-contained, autonomous entities (objects).
  • Lesson 2: Encapsulation - Securing the core systems of your objects and creating clean, public command interfaces.
  • Lesson 3: Getters, Setters & @property - Building the precise dials, levers, and readouts for your objects, with built-in validation.
  • Lesson 4: Inheritance - Creating specialized units by inheriting and extending core designs.
  • Lesson 5: Polymorphism - Issuing a single command to a diverse squad of objects and having each respond in its own unique way.
  • Lesson 6: Abstraction - Designing abstract blueprints that define a contract of required capabilities without dictating the implementation.
  • Lesson 7: Documentation in OOP - Writing the professional technical manuals and operational guides (docstrings) for your classes and modules.
  • Lesson 8: Dunder Methods - Rewiring the fundamental "physics" of your objects to define how they interact with Python's native operators (+, ==, len(), etc.).
  • Lesson 9: Static variables, constants, methods and classmethods - Managing data and behaviors that belong to the class blueprint itself.
  • Lesson 10: Enumerations - Creating a fixed set of commands, states, or identifiers to prevent errors and improve code clarity.
  • Lesson 11: Decorators - Wrapping your functions and methods in "protocol layers" for logging, validation, or performance monitoring.
  • Lesson 12: New Horizons & Roadmaps - How to succeed in IT world, how to navigate there and what to take into a backpack for the expedition.

🎯 Learning Objectives / Blueprints to Master:

Upon completing this expedition, you will be able to:

  • Think and design solutions in an Object-Oriented way.
  • Build your own custom classes with well-defined attributes, properties, and methods.
  • Master core OOP principles: Encapsulation, Inheritance, and Polymorphism.
  • Use advanced features like properties, static/class methods, and dunder methods to create elegant APIs for your classes.
  • Write cleaner, more modular, reusable, and scalable Python code suitable for complex projects.
  • Apply basic software design patterns to structure your applications professionally.

🎒 Prerequisites / Advanced Gear-Up:

  • A solid understanding of Python topics covered in the Python Foundations Course and Python Intermediate Course courses or equivalent experience.
  • This includes undestanding of data structures, loops, functions, file I/O, virtual environments, and using external libraries.
  • An interest in moving beyond simple scripting towards software design and architecture.

🧭 How to Use These Materials:

The lessons are provided as Jupyter Notebook (.ipynb) files. To use them:

  1. Online: Download the Jupyter files and go on: https://jupyter.org/try .. and upload&open the files there

-- OR--

  1. Clone or Download: Get a copy of this repository onto your local machine.
    git clone https://github.com/GeorgeFreedomTech/python-advanced-course.git
  2. Ensure Jupyter is Installed: You'll need Jupyter Notebook or JupyterLab.
    • The common way is to install the Anaconda Distribution (which includes Jupyter).
    • Alternatively, install it via pip:
      pip install notebook
      # or for JupyterLab
      pip install jupyterlab
  3. Launch Jupyter: Open your terminal or command prompt, navigate to the directory where you cloned/downloaded the files, and run:
    jupyter notebook
    or for JupyterLab:
    jupyter lab
  4. Explore: Your browser should open the Jupyter interface. Navigate to the lesson files and open them to start your learning expedition! Each lesson notebook contains explanations, code examples, and exercises. A corresponding "Solutions" notebook is provided for the exercises.

💡 Purpose of This Repository:

  • Educational Resource: A practical, hands-on guide for taking your Python skills to a professional, object-oriented level.
  • Professional Portfolio: Demonstrating my teaching methodology for advanced software design concepts.
  • Content Foundation: A source of examples for articles, tutorials, and social media.

🔗 Next Steps & Connect:

📜 License:

Copyright (c) 2025 Jiří Svoboda (George Freedom) / George Freedom Tech

This work (educational materials, including text, explanations, exercises, and accompanying code examples within the Jupyter Notebooks) is licensed under:

  • Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

Architect your code like a pro!

About

Go beyond simple scripts with this advanced Python course focused on Object-Oriented Programming (OOP) & basics of software design. Designed by George Freedom Tech.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published