Custom Advanced Python Programming 2019.10.16

Target Audience

Prerequisites

Objectives

Course Format

Syllabus

  1. Collection types and operators
    • Lists
    • List slices
    • Tuples
    • Dictionaries (hashes)
    • Sets
    • Sorting
    • Queues
    • Stack
    • Collections
    • Mutable and immutable
  2. 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).
  3. Object Oriented Programming in Python
    • Objects in Python
    • Classes
    • Instances
    • Scoping issues
    • Class methods
    • Instance methods
    • Properties
    • Overloading (with and without the operator module).
  4. Iterators and Generators
    • Iterators (including sorted and reversed, and use of itertools)
    • Generators (including generator comprehensions and pipelines)
    • Decorators
  5. Advanced programming techniques
    • Unit Test Framework (brief introduction)
    • The 'with' statement
    • Design patterns
  6. 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
  7. Error and Exception handling
    • Creating non-fatal warnings
    • Catching exceptions
    • Handling exceptions
    • Throwing a new exception
    • The final block
    • Creating your own exception
  8. Integration with .NET
    • Using .NET classes from Python
    • Parameter passing to .NET methods
  9. Distributing Python-based applications
    • Distributable package in source code
    • Distributable compiled Python libraries
    • Stand-alone executable binaries
  10. 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

Contact

Contact: Gabor Szabo gabor@hostlocal.com
Phone: +972-54-4624648