Modular Python

Modular Python

If you know me at all, you will know that I always encourage thinking over having a knowledge but here I am creating a course on the most theoretical concepts in programming. Understanding modular coding will give you the ability to see what is behind the code; the thinking process that the code creator had. You will be able to see why they structured their code like this or even discover mistakes or ways of improvements.

Also, you should know that I admire learn by doing. In fact, I never understood OOP until I used it to build neural networks in PyTorch or dynamic programming until using it for reinforcement learning. So, with no doubt, there will be a lot of practical exercises in this course.

Course Outline

The Pythonic Toolkit

Lecture 1. Code format & performance
Lecture 2. Pythonic iteration: sequences, comprehensions, and unpacking
Lecture 3. Core data structures: dictionaries, sets, queues, and stacks
Lecture 4. Functional Programming
Lecture 5. Resource handling & context managers
Lecture 6. Type hinting and static typing

Object-Oriented Programming (OOP)

Lecture 7. OOP Intro: Classes, instances, and constructors
Lecture 8. OOP Methods: instance, class, and static
Lecture 9. OOP principles: Inheritance, polymorphism, & Encapsulation
Lecture 10. Special methods & data classes
Lecture 11. Advanced OOP design: composition & Abstract base classes (ABCs)

Foundations of software practice

Lecture 12. Project & environment management
Lecture 13. Version control with Git
Lecture 14. Testing with PyTest
Lecture 15. Packaging your project