Duration: 3 days
• Price: £1160.00 +VAT
(with hotel room), or
(without room), •
Venue: Melksham, Wiltshire
COURSE START DATES
Usually scheduled to meet customer needs or run as a private course. Please email for details
The first morning of this course is "fast start Python" - dotting i-s and crossing t-s for delegates who
may already be using certain features (but aren't sure why!) and going through underlying paradigms which infuse Python
through and through and make it such a great language. So you'll be clear on muttable v immutable, assign v shallow copy,
dicts v lists v tuples, and when to use which. And in the afternoon, we'll similarly cover the fundamentals
of object orientation the Python way. Even on the first day, robust design, commenting, documentation, re-usablility and
testing for an integrated part of the philosophy we teach.
The course then carries on to cover more advanced object features, such as namespaces, decorators, multiple inheritance, mixins,
modules and packages, attributes, autoloading and operator overriding, with practical examples to show how you would
use these features in a real world application. Design techniques and design patterns - although a general OO topic -
are covered with specific attention to how they're best implemented in Python to make for quick to write, easy to
test, straightforward to maintain and natural to reuse code.
Iterators and Generators, Regular Expressions, List Comprehensions, Exceptions, Caching, recursion and memoisation ... and much
more. You'll learn how to make power use of Python - not only for short programs and small data sets, but also as a part of
bigger systems and for handling significant data effciently. We'll look at Python modules that you'll make common use of, including
threading, os, os.path and unittest and others, and at data access including XML, SQL, JSON and other data store interfaces.
Some prior programming experience in Python.
If you haven't programmed before, please
book on our Learning to program in Python
course instead, and if you have programmed before but in another
language, take a look at Python Programming
Getting the most from your Well House Consultants course
Python is powerful, portable, object-oriented open source programming
language for writing stand alone programs, quick scripts, and prototypes for large
|Python - Fast Start (module Y199) What is Python, versions, implementations.
Code structure and Fundamentals.
Conditionals and loops.
Introduction to lists and Tuples.
Everything's an object.
|Python - using functions, objects and modules. (module Y200) Built in functions.
Passing parameters in and out.
Methods on built in data types.
Loading modules - from v import.
Calling functions and methods from modules.
Learning about methods in a standard module.
A caution on globals and statics.
|Object Orientation: Individual Objects (module Q906) History - unstructured and structured code.
Introduction to object oriented programming.
Classes and methods.
Static and nonstatic.
Instances, constructors and destructors.
Accessing members of a class.
Loading and using classes.
Direct access to variables.
Encouraging class use.
|Object Orientation: Composite Objects (module Q909) Review of object orientation basics.
Base classes and subclasses.
Overriding and abstract classes.
Multiple inheritance and alternatives.
Hierarchy and visibility.
A note on design.
|Object Oriented Python (module Y106) Class statement.
Attributes of an object and class.
Creating instances with __init__.
Bound and Unbound methods.
Writing methods to reference object data.
Method and variable naming conventions.
|Objects - Intermediate (module Y112) Inheritance.
Pickling and shelving objects.
Old Style Objects (prior to Python 2.2)
|Applying OO design techniques and best practise (module Y116) Review of OO design techniques.
Review of OO facilities in Python.
Naming conventions in Python.
How to arrange your classes, modules and packages.
Documentation and code control.
|Object Orientation: Design Techniques (module Q907) Overview - why design?
OOD, OOA, OOP.
Waterfall, spiral and Incremental models.
Micro, macro and specification.
Booch, Yourdon and the OO design wars.
Unified Modeling Language (UML).
Views, diagrams, model elements and general mechanisms.
Extending UML - stereotypes, tagged values and constraints.
Functions of tools such as Rational Rose.
Drawing support, model repository, navigation, code generation.
Configuration, version control and associated tools.
|Object Orientation: Design Patterns (module Q908) What are design patterns?
Attributes, properties and accessors.
Factory methods, Comparators, etc.
Printing and serialising.
|String Handling (module Y108) Methods on String Objects.
Regular Expressions and the re module.
Regular Expression and Match Objects.
|What are Regular Expressions? (module Q801) What are Regular Expressions?
Why use regular expressions?
What are the alternatives?
|Regular Expression Elements (module Q802) Literals - Alphanumeric and special characters.
Anchors and other Assertions.
Character groups using [ ... ]
Extended character groups - the two alternative styles.
Bracketing groups and alternation
|Exceptions (module Y109) Concept of exceptions.
Try, except, else and finally.
Types of exceptions.
|More on Collections and Sequences (module Y111) Complex structures.
Copy and deepcopy.
More methods on lists.
User defined sorting.
Combining copying and comparing dictionaries.
|Additional Python Facilities (module Y115) Is Python compiled or interpreted?.
Regular expressions in Python.
Elements of a Python-style regular expression.
Methods available on Python regular expressions.
Some more examples and features of regular expressions.
Some popular regular expressions.
Running Python and system commands from within.
Handling dates and times in Python.
Pickling and shelving.
Accessing the environment from Python.
Talking to SQL databases from Python.
|Python 3 - What is new, what's changed and why (module Y300) Introduction.
Why Python 3?
Print as a function.
Range and other iterators (map, etc).
nonlocal (compared to global).
New style classes.
Strings, bytes, unicode and string formatting.
A note on Decorators.
Versions 2.6 and 2.7 3.0 to 3.3 and 2to3.
A Strategy for upgrade.
|Threads - What why and how (module Y302) Introduction.
An application where threads would help.
Using Python threads.
How does it work?
Looking ahead - more on threads.
About the ping responses.
|Python & XML (module Y151) Running Python on your Web Server.
Zope, Jython, Tkinter, XML, Database access.
Commonly used modules such as PyUnit.
Accessing Microsoft objects / ActivePython.
The Vaults of Parnassus, news groups and other sources.
|GUIs and Graphics in Python (module Y203) GUIs - TkInter, pyGTK, wxPython and Python Qt - overview and comparison.
Graphics - openGL, pylab and matplotlib - overview and comparison.
Graphing tools in Python - overview and comparison.
Python via HTML - cgi, Zope, Plone, Django - overview and comparison.
|Optimising Python (module Y305) The timeit Module.
Optimizing Regular Expressions and Strings.
Optimizing Dictionary Lookups and List Operations.
Caching and saving recalculations within Python classes.
Building Tuned Pythons.
TUTOR and COURSE AUTHOR
Graham Ellis - email@example.com
] [about Graham
Public courses run at
Well House Manor
- our own
purpose fitted training centre and business hotel / conference centre in
• Download Melksham Map - [pdf file (750k)
] • Google Map - [Link
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
(£1392.00 inc VAT)
(£1140.00 inc VAT)
| With hotel rooms
(£2724.00 inc VAT)
(£2220.00 inc VAT)
| With hotel rooms
(£4056.00 inc VAT)
(£3300.00 inc VAT)
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
If you're looking to write
extensive GUIs using Python, make heavy use of it on the web, or embed it
within your own application, please ask us to run a "Python Extra"
day for you; Python Extra days allow us to give greater coverage to
more specialist topics without extending the basic course.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
Certification? - [Link
FOR FURTHER INFORMATION
Public (scheduled) courses
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Terms and Conditions
Covering topics such as delegate substitution, payment, cancellation policy and other matters.