Skip to content

Latest commit

 

History

History
65 lines (42 loc) · 2.41 KB

README.md

File metadata and controls

65 lines (42 loc) · 2.41 KB

Object Oriented Programming via Python3

This is a short course on object oriented programming for Python programmers that is aimed at the intermediate level. The focus is on developing object-oriented thinking rather than the mechanics of how Python3 supports OOP.

Initial Advert:

I will be running a series of about half-a-dozen, short workshops under the heading of "Using Classes in Python" in the PyLab sessions - starting tomorrow. It's aimed at people who have had a bit of experience in programming in Python and are looking for the spark that can jump the gap and brings object-oriented programming to life.

I wanted to run them because a theme that I hear from people is that they don't get what classes are for in Python. Sure, they've read on forums that classes are supposed to be important but that's just empty words. Maybe they have done a few exercises, know the syntax, but - pffft - what's the point?

In these workshops, we'll be using Python to get under the skin of object oriented programming. The focus won't be on the mechanics of writing code, there's a wealth of on-line material that does that. Our destination is a proper understanding of why OOP has become so dominant, to develop a sixth-sense to 'see' the classes hidden inside procedural programs, and to reach a next-level grasp of encapsulation ... either that or a glorious failure!

Session 01

Focus: Behaviour The running example is the Extract Ranges example from RosettaCode.

Session 02

Focus: Overlapping Behaviour We continue with the Extract Ranges running example.

Session 03

Focus: Object Life Cycles

  • Partial vs total method

Session 04

Focus: Organisation of Code

  • Methods in Classes
  • Core vs non-core
  • Public vs private methods (behaviour vs implementation)

Session 05

Focus: X-Ray Vision

  • How to spot opportunities to identify & extract classes from code.

Session 06

Focus: Enhanced X-Ray Vision

  • How to transform function calls into objects and vice versa.

Session 07

Focus: Data Encapsulation, Ownership and Part-Of relationships

Session 08

Focus: SOLID

Session 09

Focus: Design Patterns

  • Builder Pattern
  • State Pattern

History