Advanced Python Programming

מק"ט: #40842 | משך קורס: 32 שעות אק'
| מספר מפגשים: 4

Python is a high-level interpreted language that comes with a rich set of data types, support for object-oriented and functional programming, and a versatile library. Combined with a large and active worldwide community of users, it is no surprise that Python is one of the most popular languages in use today, from commercial software companies to the pharmaceutical industry, to research in such diverse fields as biology, sociology, and linguistics. Python is also popular among Web developers, for its strong support for text handling, networks, and databases, and frameworks such as Twisted and Django.
This course is aimed at programmers with a basic to intermediate knowledge of Python. It covers control and data structures beyond what is acquired in the basic Python course, concentrating on their unique Python implementation and application, with stress on object-oriented and concurrent programming. Third-party libraries and frameworks are chosen for simplicity and demonstration of the programmatic techniques acquired. This is not a course for learning Python applications.

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה
PDF version


  • Implement object-oriented designs, to any degree of complexity, in Python.
  • Implement user-defined types, such as container-like classes.
  • Implement Simple GUI applications in wxPython.
  • Implement Concurrent designs in Python.
  • Implement fully-functional web servers in Twisted Python.
  • Apply Test-driven design with Python unit-testing. 

קהל יעד

Programmers with some Python experience, who want to take their skills to the next level.

תנאי קדם

Previous object-oriented programming experience in Python.


Data abstraction in refreshment (optional)

  • Magic methods: Indexed and keyed access.
  • Magic methods: Sequential access – Iterator / generator protocol.
  • Bound and unbound methods.
  • Using metadata.


Object-oriented programming in Python

  • The need for substitutability. The Python approach: “duck typing”
  • Commonality and variance. Inheritance. Abstract base class. Constructor override
  • The message paradigm. Left-handed polymorphism. The principle of substitutability
  • Double polymorphism: multi-methods, double dispatch
  • Polymorphic Design Patterns in Python using metadata: Composite, Visitor, Hierarchical Visitor
  • Design patterns made trivial in Python: Singleton, Dynamic Pluggable Factory, Factory Method, Prototype


Event-driven design in Python

  • Guided introduction to GUI programming in wxPython:
    • Generating a simple data-entry window with wxGlade.
    • Handling input.
    • An object-oriented design
  • Concurrent programming in Python:
    • Multithreading: Threads, synchronization objects.
    • Multiprocessing in Python.
    • Co-operative programming: Iterators and co-routines
    • Invoking other programs.
  • Developing a web server with Twisted Python – an object-oriented design
    • The Page class: Serving files, serving pages.
    • Separating page data from page
    • Handling GET request.
    • Handling POST requests.


Additional topics

  • Packaging
  • Test-driven design in Python - unit tests.