Python Training Course (2-9 days, from basic to advanced) 

 

Why Learn Python?

Python is a general-purpose, versatile and popular programming language. It’s great as a first language because it is concise and easy to read, and it is also a good language to have in any programmer’s stack as it can be used for everything from web development to software development and scientific applications.

Course details

The outline below covers both fundamental and advanced topics.

The final training outline will be designed depending on your particular requirements.

The practical exercises constitute about 70% of the course time, and around 30% are demonstrations and presentations. Discussions and questions can be asked throughout the course.

Note: the training can be tailored to specific needs upon prior request ahead of the proposed course date.

Prerequisites

Some prior programming skills would help the students to better follow an introductory Python course, although this is not a must, and enough motivation can compensate the lack of programming experience.

Course Outline

1: General Python Introduction
  • So what's Python?

  • Why do people use Python?

  • Some quotable quotes

  • A Python history lesson

  • Advocacy News

  • What's Python good for?

  • What's Python not good for?

  • The compulsory features list

  • Python portability

  • On apples and oranges

  • Summary: Why Python?

 
2. Using the Interpreter
  • Program execution model

  • Program architecture: modules

  • How to run Python programs

  • Configuration details

  • Module files: a first look

  • The IDLE interface

  • Other python IDEs

  • Time to start coding

 
3. Types and Operators
  • Core datatypes introduction

  • Dynamic typing

  • Numbers

  • Strings

  • Lists

  • Dictionaries

  • Tuples

  • Files

  • General object properties

  • Summary: Python's type hierarchies

  • Built-in type gotchas

 
4. Basic Statements
  • General syntax model

  • Assignment

  • Expressions

  • Print

  • If selections

  • Python syntax rules

  • Pydoc and documentation strings

  • Truth tests

  • While loops

  • Break, continue, pass, and the loop else

  • For loops

  • List comprehensions

  • Loop coding techniques

  • Comprehensive examples: file scanners

  • Basic coding gotchas

  • Preview: program unit statements

 
5. Functions
  • Function basics

  • Scope rules in functions

  • More on "global"

  • More on "return"

  • Argument passing

  • Special argument matching modes

  • Demo: minimum value functions

  • Odds and ends

  • Design concepts: globals, accessors, closures

  • Functions are objects: indirect calls

  • Function gotchas

  • Optional case study set functions

 
6. Modules
  • Module basics

  • Module files are a namespace

  • Import variants

  • Reloading modules

  • Package imports

  • __name__ and __main__

  • Odds and ends

  • Module design concepts

  • Modules are objects: metaprograms

  • Module gotchas

  • optional Case study: a shared stack module

 
7. Classes
  • OOP: The big picture

  • Python class basics

  • Demo: People classes database

  • Using the class statement

  • Using class methods

  • Customization via inheritance

  • Specializing inherited methods

  • Operator overloading in classes

  • Namespace rules: the whole story

  • Design: inheritance and composition

  • Classes are objects: factories

  • Methods are objects: bound or unbound

  • Odds and ends

  • Class gotchas

  • optional Case study: a set class

  • Summary: OOP in Python

 
8. Exceptions
  • Exception basics

  • First examples

  • Exception idioms

  • Exception catching modes

  • Matching variations

  • Exception gotchas

 
9. Built-in Tools Overview
  • Debugging options

  • Inspecting name-spaces

  • Dynamic coding tools

  • Timing and profiling Python programs

  • Packaging programs for delivery

  • Summary: Python tool-set layers

 
10. System Interfaces
  • System Modules overview

  • Arguments, Streams, Shell variables

  • File tools

  • Directory tools

  • Demo: finding large files

  • Forking processes

  • Thread modules and queues

  • The subprocess and multiprocessing modules

  • IPC tools: pipes, sockets, signals

  • fork versus spawnv

  • Demo: regression testing

  • Advanced system examples

 
11. GUI Programming
  • Python GUI Options

  • The Tkinter 'hello world' program

  • Adding buttons, frames, and callbacks

  • Getting input from a user

  • Layout details

  • Demo: a Python/Tkinter GUI

  • Building GUIs by subclassing frames

  • Reusing GUIs by subclassing and attaching

  • Advanced widgets: images, grids, and more

  • Sexier examples

  • Tkinter odds and ends

 
12. Databases and Persistence
  • Object persistence: shelves

  • Storing class instances

  • Pickling objects without shelves

  • Using simple dbm files

  • Shelve gotchas

  • Python SQL database API

  • ZODB object-oriented database

  • Demo: using MySQL from Python

  • Persistence odds and ends

 
13. Text Processing
  • String objects: review

  • Splitting and joining strings

  • Demo: parsing data files

  • Regular expressions

  • Parsing languages

  • XML parsing: regex, Sax, DOM, and etree

 
14. Internet Scripting
  • Using sockets in Python

  • The FTP module

  • email processing

  • Other client-side tools

  • Writing server-side CGI scripts

  • Demo: an interactive Web Site in Python

  • Jython: Python for Java systems

  • Active Scripting and com

  • Python web frameworks

  • Other Internet-related tools

 
15. Extending Python in C/C++
  • Review: Python tool-set layers

  • Stuff Guido already wrote

  • Why integration?

  • Integration modes

  • A simple C extension module

  • C module structure

  • Binding C extensions to Python

  • Data conversions: Python to/from C

  • C extension types

  • Using C extension types in Python

  • Wrapping C extensions in Python

  • Writing extensions in C++

  • SWIG example

  • Compiling with distutils

  • Other extending options

  • Python and rapid development

 
16. Embedding Python in C/C++
  • General embedding concepts

  • Running simple code strings

  • Calling objects and methods

  • Running strings: results & name-spaces

  • Other code string possibilities

  • Registering Python objects and strings

  • Accessing C variables in Python

  • C API equivalents in Python

  • Running code files from C

  • Precompiling strings into byte-code

  • Embedding under C++

  • More on object reference counts

  • Integration error handling

  • Automated integration tools

 
17. Advanced Topics
  • Unicode text and binary data

  • Managed attributes

  • Decorators

  • Metaclasses

  • Context managers

  • Python 3.0 changes

 
18. Resources
  • Python portability

  • Major python packages

  • Internet resources

  • Python books

  • Python in the news: articles, chapters

  • Python conferences and services

19. Python Data Structures and Operations

  • Integers and floats

  • Strings and bytes

  • Tuples and lists

  • Dictionaries and ordered dictionaries

  • Sets and frozen sets

  • Data frame (pandas)

  • Conversions

 

20. Object-Oriented Programming with Python

  • Inheritance

  • Polymorphism

  • Static classes

  • Static functions

  • Decorators

  • Other

 

21. Data Analysis with Pandas

  • Data cleaning

  • Using vectorized data in pandas

  • Data wrangling

  • Sorting and filtering data

  • Aggregate operations

  • Analyzing time series

 

22. Data Visualization

  • Plotting diagrams with matplotlib

  • Using matplotlib from within pandas

  • Creating quality diagrams

  • Visualizing data in Jupyter notebooks

  • Other visualization libraries in Python

 

23. Vectorizing Data in Numpy

  • Creating Numpy arrays

  • Common operations on matrices

  • Using ufuncs

  • Views and broadcasting on Numpy arrays

  • Optimizing performance by avoiding loops

  • Optimizing performance with cProfile

 

24. Processing Big Data with Python

  • Building and supporting distributed applications with Python

  • Data storage: Working with SQL and NoSQL databases

  • Distributed processing with Hadoop and Spark

  • Scaling your applications

 

25. Extending Python (and vice versa) with Other Languages

  • C#

  • Java

  • C++

  • Perl

  • Others

 

26. Python Multi-Threaded Programming

  • Modules

  • Synchronizing

  • Prioritizing

 

27. Data Serialization

  • Python object serialization with Pickle

 

28. UI Programming with Python

  • Framework options for building GUIs in Python

    • Tkinter

    • Pyqt

 

29. Python for Maintenance Scripting

  • Raising and catching exceptions correctly

  • Organizing code into modules and packages

  • Understanding symbol tables and accessing them in code

  • Picking a testing framework and applying TDD in Python

 

30. Python for the Web

  • Packages for web processing

  • Web crawling

  • Parsing HTML and XML

  • Filling web forms automatically

 

31. Summary and Conclusion

©TRAINING UNITED