Code Maven

Custom Advanced Python Programming 2019.10.16

This, along with the other courses can be given either on-site in the offices of the client or on-line via Zoom or other means. Contact Gabor Szabo for more details.

Overview

Goals

  • To master the rich set of Python libraries and modules.
  • Use Object Oriented programming techniques.
  • Use various advanced programming techniques available in Python.

Audience

  • This is an advanced Python course suitable for people who already have Python programming background.

Prerequisites

  • Beginner Python course
  • Experience with the basics of Python

Course format

  • Duration of the course is 40 academic hours. (5 days 9:00-17:00).
  • The course includes approximately 40% hands on lab work.

Syllabus

Collection types and operators

  • Lists
  • List slices
  • Tuples
  • Dictionaries (hashes)
  • Sets
  • Sorting
  • Queues
  • Stack
  • Collections
  • Mutable and immutable

Data types advanced programming techniques

  • Advanced uses of built-in data types (including slices on sequences).
  • Functional programming (lambda, map, reduce, filter, zip).
  • Comprehensions (list, dictionary, and set).

Object Oriented Programming in Python

  • Objects in Python
  • Classes
  • Instances
  • Scoping issues
  • Class methods
  • Instance methods
  • Properties
  • Overloading (with and without the operator module).

Iterators and Generators

  • Iterators (including sorted and reversed, and use of itertools)
  • Generators (including generator comprehensions and pipelines)
  • Decorators

Advanced programming techniques

  • Unit Test Framework (brief introduction)
  • The 'with' statement
  • Design patterns

Optimizations

  • Optimizing Python code
  • Parallel processing
  • Forks to processes and threads
  • Asynchronous programming in Python
  • Memory usage
  • Complexity Analyzis
  • Profiling code to find the bottleneck
  • Case Study: Reducing run-time from 24 hours to 5 minutes

Error and Exception handling

  • Creating non-fatal warnings
  • Catching exceptions
  • Handling exceptions
  • Throwing a new exception
  • The final block
  • Creating your own exception

Integration with .NET

  • Using .NET classes from Python
  • Parameter passing to .NET methods

Distributing Python-based applications

  • Distributable package in source code
  • Distributable compiled Python libraries
  • Stand-alone executable binaries

The Scientific libraries

  • NumPy (Array, Transformations)
  • Pandas (Series, Data Frames, Panels, API)
  • SciPy
  • Visualization and Plotting including 3D with Matplotlib and Seaborn
  • Comparing with Matlab and R
  • Integrating Python with Matlab

Resources


If you are interested in this course, contact Gabor Szabo for more details.