EIEIOTECHNOVATION
← Training programmes

EIEIO / PROGRAMMING & DEVELOPMENT

Advanced Python Programming

Course outline

5 days

Duration

5 days

WHAT YOU WILL LEARN

This Advanced Python training course picks up where introduction to Python Programming left off. This program discusses some topics in more detail and adding new topics which leads students to develop Python scripts using more advanced features such as file operations, regular expressions, working with binary data, and using extensive functionality of Python modules. The Advanced Python Programming covers classes in greater detail, with new coverage of OS services, date/time management, binary data, unit testing, database connectivity, network programming, web programming with Django and more. The course is supplemented with many hands-on labs, solutions, and code examples.

AUDIENCE

  • Anyone Python programmer who needs to know Python in depth.
  • Anyone who wants a solid exposure to Python as their first programming language

PREREQUISITES

All students should be able to write simple Python scripts, using basic data types, program structures, and the standard Python library

METHODOLOGY

This program will be conducted with interactive lectures, PowerPoint presentation, discussion, and practical exercise.

COURSE OBJECTIVES

At the end of the course, participants will be able to:

  • Demonstrate the use of the ITIL guiding principles in Digital & IT Strategy decisions and activities
  • Understand how to leverage digital strategy to react to digital disruption
  • Understand the relationship between the concepts of Digital & IT Strategy, the service value system, and the service value chain, and explain how to utilize them to create value
  • Understand how an organization uses Digital & IT Strategy to remain viable in environments disrupted by digital technology
  • Understand strategic approaches made possible by digital and information technology to achieve customer/market relevance and operational excellence
  • Understand the risks and opportunities of Digital & IT Strategy
  • Understand the steps and techniques involved in defining and advocating for a Digital and IT Strategy
  • Understand how to implement a Digital and IT Strategy

Module 1: Introduction

  • Python refresher
  • Common idioms
  • Data types
  • Conditionals
  • Loops
  • Sequences
  • Mapping types
  • Useful types from collections
  • Program structure
  • Files and console, I/O
  • Functions, Modules, and packages
  • Lambda functions
  • Variable scope
  • List comprehensions
  • Generator expressions
  • Creating modules
  • Using the import statement
  • Module search path (PYTHONPATH)
  • Documenting modules
  • Built-ins
  • The OS module and Date Time module

Introduction

  • First-class Everything
  • A Minimal Class in Python
  • Attributes
  • Methods
  • The __init__ method
  • Data Abstraction
  • Data Encapsulation and Information Hiding
  • __str__ and __repr__ method
  • Public Private and Protected Attributes
  • Destructor
  • Class and Instance Attributes
  • Static Methods
  • Class Methods
  • Properties - Getters and Setters

Introduction

  • Syntax Inheritance
  • Overloading
  • Overriding
  • Multiple Inheritance
  • Diamond Problem
  • Super and MRO
  • Polymorphism
  • Slots
  • Avoiding Dynamically created Attributes

Introduction

  • Method of Operation
  • Using a 'return' in a Generator
  • Send Method / Coroutines
  • The throw Method
  • Decorating Generators
  • Yield from
  • Recursive Generators
  • A Generator of Generators

Introduction

  • Functions inside Functions
  • Functions as Parameters
  • Functions returning Functions
  • A Simple Decorator
  • Syntax for Decorator
  • Use cases for Decorator
  • Decorators with Parameters
  • Classes instead of Functions

Module 6: Metaprogramming

  • Implicit properties
  • Global and Local variables
  • Closures
  • Working with object attributes
  • The inspect module
  • Callable classes
  • Decorators
  • Monkey patching
  • Regular Expressions
  • RE Objects and Pattern matching
  • Parsing data
  • Subexpressions
  • Complex substitutions
  • RE tips and tricks

Module 7: Developer Tools

  • Analysing programs with Pylint
  • Using the debugger
  • Profiling code
  • Testing speed with benchmarking
  • Unit test
  • Creating a Test cases
  • Writing tests
  • Running tests

Module 8: Database access

  • The DB API
  • Available Interfaces
  • Connecting to a server
  • Creating and executing a cursor
  • Fetching data
  • Parameterized statements
  • Using Metadata
  • Transaction control
  • ORMs and NoSQL overview

Introduction

  • Downloading and Installing PyQt and Qt Designer
  • Qt Architecture
  • Preparing the Development Environment
  • Navigating Qt Designer
  • Creating a UI in Qt Designer
  • Using designer
  • Standard widgets
  • Event handling
  • Writing the Application Logic in PyCharm
  • Running the Application
  • Expanding the Application
  • Adding Widgets, Charts, etc.
  • Developing GUI application accessing a Database

Module 10: Network Programming

  • Built-in classes
  • Using requests
  • Grabbing web pages using BeautifulSoup
  • Sending email
  • Working with binary data
  • Consuming RESTful services
  • Remote access (SSH)

Module 11: Multiprogramming

  • The threading module
  • Sharing variables
  • The queue module
  • The multiprocessing module
  • Creating pools
  • About async programming
  • Running external programs
  • Parsing arguments
  • Creating filters to read text files
  • Logging

Module 12: Serializing data

  • Working with XML
  • XML modules in Python
  • Getting started with Element Tree
  • Parsing XML
  • Updating an XML tree
  • Creating a new document
  • About JSON
  • Reading/Writing JSON
  • Reading/Writing CSV files

Module 13: Internet Programming - Django

  • Creating a Project
  • Apps Life Cycle
  • Admin Interface
  • Creating Views
  • URL Mapping
  • Template System
  • Models
  • Page Redirection
  • Sending E-mails
  • Generic Views
  • Form Processing
  • File Uploading
  • Apache Setup
  • Cookies Handling
  • Sessions
  • Caching
  • Comments
  • Django – RSS

Overview

  • Signup for GitHub
  • GitHub Profile
  • GitHub Settings
  • Creating a GitHub Repository
  • Linking to our GitHub Repository
  • Pushing Changes to GitHub
  • Verifying our Changes on GitHub
  • Comparing with Pull Requests
  • Comparing Commits / Tags
  • Social Coding Overview
  • Copying A GitHub Repository by Forking
  • Creating A Branch on Your Fork
  • Pull Requests
  • Updating Pull Requests
  • Accepting the Pull Request
  • GitHub Graphs
  • Synchronize Changes Back to Your Fork
  • Enlisting Help with Collaborators

Programme scope, delivery arrangements and suitability are confirmed during enquiry.