Python Programmeren – Gevorderd


Python is een programmeertaal die op vele fronten inzetbaar is. De programmeertaal wordt op veel plaatsen gebruikt in scripts ten behoeve van systeembeheer, als gemakkelijke taal voor het bouwen van portable grafische user interfaces, bij webapplicaties, enz. De installatieprogrammatuur van vele Linux-implementaties, waaronder RedHat, is bijvoorbeeld gebouwd met Python.

Python onderscheidt zich van andere (scripting) talen, doordat Python van de grond af aan al als objectgeoriënteerde taal is opgezet. Daarbij beschikt de taal over een grote standaardbibliotheek, waarop u verder kunt bouwen. Mede hierdoor leent Python zich erg goed om snel applicaties te bouwen (Rapid Application Development).

Tijdens de cursus Python Programmeren – Gevorderd komen geavanceerde aspecten van de programmeertaal Python aan de orde, die de development van Python-software vereenvoudigen en versnellen. Zo komen modules en packages aan de orde, en leren deelnemers packages uploaden en installeren in een virtuele omgeving. Tevens wordt aandacht besteed aan het benaderen van XML en JSON-data, en wordt besproken hoe logging kan worden geïmplementeerd in Python-programma’s.

Voorts komen iterators aan de orde, die lazy evaluation mogelijk maken, evenals generators en coroutines waarmee concurrent geprogrammeerd kan worden. Er wordt ingegaan op decorators, waarmee functionaliteit – zoals caching en proxying – aan bestaande functies en classes kan worden toegevoegd.

In de module Patterns wordt de Python-implementatie van verschillende Design Patterns behandeld en wordt vervolgens aandacht besteed aan hoe deze in de Python Library zijn geïmplementeerd. Ook komen geavanceerde features, zoals metaprogramming, aan de orde. Vervolgens wordt ingegaan op de creatie van processes en threads, synchronisatie tussen threads en het optimaliseren van de performance van Python-code.

Ook wordt interprocescommunicatie door middel van sockets en pipes besproken. Ten slotte komen unit en mock testing aan bod in het kader van test automation.

Het cursusmateriaal en de lunch zijn bij de cursus inbegrepen.

Doelgroep

Deze cursus is bedoeld voor Python developers, die meer willen weten over de Pythontaal en die zich willen bekwamen in geavanceerde aspecten van Python.

Voorkennis

Om aan deze cursus te kunnen deelnemen is kennis van en ervaring met programmeren in Python vereist.

Duur

De cursusduur is vier dagen.

Groepsgrootte

De maximale groepsgrootte bedraagt acht personen.

Certificaat

De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Advanced Python Programmeren.

Tijdens de training Python Programmeren Gevorderd worden onder andere de volgende onderwerpen behandeld:

  • Module 1: Advanced Classes
    Classes Recapitulation
    Data Hiding
    Property Syntax
    Inheritance
    super Keyword
    Multiple Inheritance
    Constructor Chaining
    Checking Relationships
    issubclass and isinstance
    Overriding Methods
    __str__ and __repr__
    Class Methods
    Operator Overloading
    Polymorphism
  • Module 2: Modules and Packages
    Import Statement
    From … import Statement
    Locating Modules
    Packages in Python
    Explicit and Implicit Import
    Namespaces and Scoping
    Test Harnas
    Virtual Environments and Activation
    Distribution of Packages
    Installing packages
    pip install
    Using Python Package index
    PyPI commands
    Uploading Package with Setup
  • Module 3: XML en JSON Access
    XML Parsing
    Pull versus Push Parsing
    Python XML Libraries
    DOM and SAX
    DOM Navigation and Manipulation
    XPath
    Minidom
    ElementTree
    Reading and Writing XML
    Searching and Validating XML
    XML Manipulation
    JSON library
    Dictionary to JSON conversion
    Loading and Dumping JSON
  • Module 4: Logging
    logging Module
    When Use Logging
    Log Levels
    Logging Configuration
    Log in Multiple Modules
    Formatting Logging
    Logging Components
    Logger per Module
    Handlers and Filters
    Logging Flow
    Formatting
    Logger Adapter
  • Module 5: Generators
    Iteration
    Iterables
    Iteration Protocols
    Supporting Iteration
    Generators
    Generator Functions
    Conveniant Iterator
    Generator Expression
    Expression Syntax
    Building Blocks
    Chaining generators
    Coroutines
  • Module 6: Decorators
    Functions as Objects
    Passing and Returning Functions
    What is a Decorator?
    Decorator Syntax
    Types of Decorators
    Passing Arguments
    Multiple Decorators
    Class Decorators
    Singleton Class
    Why Decorators
    Need for AOP
    Crosscutting Security Concern
  • Module 7: Patterns in Python
    What are Patterns?
    Singleton Pattern
    Adapter Pattern
    Chain of Responsibility Pattern
    Observer Patters
    Patterns or Principles
    Everything is Object
    EAFP
    Duck Typing
    Monkey Patching
    Dependency Injection
    None
    Context Managers
  • Module 8: Meta Programming
    Classes as Objects
    Metaclasses
    Object from Metaclass
    Class of Class
    Descriptor Protocol
    Lookup
    Property
    Functions and Methods
    Classes and Types
    Object Creation
    Metaclass
    Singleton As Type
    Object Construction
  • Module 9: Threads
    Thread Characteristics
    Threads in Python
    Current Thread
    Daemon Threads
    Joining Threads
    Derived Thread Class
    Signaling Threads
    Lock Object
    Locks as Context Managers
    Condition Synchronization
    Barriers
    Semaphores
    Thread Local Data
  • Module 10: Async IO
    Concurrent Execution
    Multiprocessing
    Subprocess
    Scheduler
    Queue
    AsynIO
    Task
    Future
    Concurrent Futures
    Eventloop
  • Module 11: Networking
    Network Layering
    TCP/IP Layering
    UDP versus TCP
    TCPv4 versus TCPv6 sockets
    Connectionless Services
    Connection Oriented Services
    Socket Utility Functions
    Asynchronous Servers
    Using Pipes
    Anonymous and Named Pipes
  • Module 12: Unit Testing
    What is Unit Testing?
    Automated Testing
    Test Driven Development
    Traditional versus TDD
    Unit Testing in Python
    Python Test Frameworks
    Test Cases
    Assertions
    Fixture
    Test Suite
Plaats Duur Data
Amsterdam - Hullenbergweg 280-308 4 dagen 20 t/m 23 mei 2019 Inschrijven >
Houten - Standerdmolen 10 4 dagen 20 t/m 23 mei 2019 Inschrijven >
Rotterdam - Provenierssingel 66 4 dagen 17 t/m 20 juni 2019 Inschrijven >
Houten - Standerdmolen 10 4 dagen 17 t/m 20 juni 2019 Inschrijven >
Amsterdam - Hullenbergweg 280-308 4 dagen 15 t/m 18 juli 2019 Inschrijven >
Houten - Standerdmolen 10 4 dagen 15 t/m 18 juli 2019 Inschrijven >
Eindhoven - Vestdijk 30 4 dagen 19 t/m 22 augustus 2019 Inschrijven >
Rotterdam - Provenierssingel 66 4 dagen 19 t/m 22 augustus 2019 Inschrijven >
Houten - Standerdmolen 10 4 dagen 19 t/m 22 augustus 2019 Inschrijven >