|
CODE: PYTHON-01-04 DURATION: 4 DAY/S
In this 4-day Python Workshop, you will learn both low-level details of Python as well as the idiomatic design approaches in Python. We'll start with the language basics after which we discuss various testing strategies and their rationale. Through lectures, exercises and discussions, we'll introduce Concurrency and Parallelism after which we'll learn about GUI's. We'll then explore Networking, XML processing and Persistence when developing applications with Python. On the final day of this Python course, you'll work on an example of Python DSL, we'll learn about Python extensions and extension testing and we'll finish the course with an introduction to Django, Python Web Application frameworks and how to use dynamic techniques.
LEARN HOW TO:
- Use the basics of the Python language
- Apply Testing strategies and understand the rationale of these
- Apply Concurrency and Parellism
- Write GUI's for event-driven systems
- Explain the concepts of networking in Python
- Use XML for Processing
- Incorporate Persistence
- Develop dynamic Python systems with DSL's
- Use Python extensions and test them
- Write small- to medium-sized programs using modules and packages
- Read and amend other people's Python code
and, most importantly, explore more Python techniques and idioms for yourself
PROGRAMME
Introduction
- Introduction
- Some background to Python
- Tools of the trade
Language basics
- Value, types, expressions, and statements
- Lists, tupes, and dictionaries
- Functions
- Classes
- Files, modules, directories and packages
Testing-
Rationale and strategies
- Tools, techniques and approaches
- PyUnit (aka unittest) and PyTest (aka py.test)
- Test-driven development (TDD)
Concurrency and Parallelism-
Threads
- Threading
- Multiprocessing
-
CSP
-
Actors
-
Dataflow
GUIs-
Event-driven systems
-
GUI frameworks: PyGTK, PyQt, wxPython
Networking-
Concepts of networking
-
Sockets
-
Higher-level approaches
-
Event-driven approaches
-
Twisted Internet
XML Processing-
Concepts of XML documents
-
SAX and DOM
-
minidom
-
ElementTree
-
LXML
Persistence-
Files, pickling and shelving
-
SQLite
-
SQLAlchemy
-
PyMongo
An example of a Python DSL-
SCons -- a build framework
Python Extensions-
Rationale and architecture
-
ctypes
-
SWIG
-
C Python API
-
Boost.Python
-
Cython/Pyrex
Extension Testing
-
C/C++ test frameworks vs. Python test frameworks
Django
-
Web applications frameworks
-
Using dynamic techniques
|
COURSE DATES & REGISTRATION
Book Online or Call Sales on +44 (0)207 1839040
ABOUT THE AUTHOR
|
Russel Winder is an independent consultant, analyst, author, expert witness, and trainer at Skills Matter and an expert on Java, Groovy, Scala, Python, D, Go. Gradle, SCons, Waf, SBT. Bazaar, Mercurial, Git.
More about Russel Winder
|
IS THIS COURSE FOR YOU?
If you are a relatively experienced programmer, but have not worked iwth Python before, this Python course will provide you with a thorough grounding.
This Python course is aimed at a very diverse audience, as long as you have some programming experience, be it languages such as C, C++, Fortran, Java, C#, Perl, etc. -- perhaps even a little Python -- then this course is accessible to you.
COURSE PREREQUISITES
The only prerequisites are some familiarity with programming, and an interest in learning how to program using Python in an idiomatic (Pythonic) style.
BRING YOUR OWN LAPTOP
Important! Delegates are requested to bring their own personal laptops to this course as Skills Matter does not provide this. If you are unable to bring a laptop for the course please contact the sales team on +44 207 183 9040 or email sales.
COURSE LABS & EXERCISES
The Python workshop is founded on the philosophy that programming languages can only be learned by doing, so whilst there are some presentations by the Russel, the emphasis is on you actually writing and/or amending Python code.
There is a mix of practical activity, some group work, with the majority of the practical work done by you, actually programming using Python.
COURSE DATES & REGISTRATION
Book Online or Call Sales on +44 (0)207 1839040
|