Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact

Python training news
Next Public Course Dates
 fromfor
The MySQL Database Thu, 13 Aug 09 2 days
Regular Expressions Fri, 14 Aug 09 1 day
Learning to program in Python Sun, 16 Aug 09 4 days
Python Programming Mon, 17 Aug 09 3 days

Link on individual courses for more details and further dates.

We can also run a private tailored course at our centre or a private course at your office.
Python Programming - training course
The fundamentals in depth, and an introduction to applications such as GUI design and Data Munging.
Duration: 3 days • Price: £1030.00 +VAT (with hotel room), or £850.00 +VAT (without room), • Venue: Melksham, Wiltshire


COURSE START DATES
• Monday 17 August 2009• Monday 16 November 2009
DESCRIPTION
This course starts at the fundamentals of Python - statements, variables, comments, conditionals and loops then goes on to study Python's collections - Lists, Tuples and Dictionaries. Functions, Modules and packages are then covered, as is the use of and creation of data types (objects) in Python. An short overview of OO principles is included in case any of the trainees on the course have only experience of a structured programming language. We then introduce the development environments and other resources available.

The final modules of the course cover the practical use of Python in a number of applications, such as Zope, Jython (integration with Java), for Data Munging and Systems administration tasks, for the development Graphic user Interfaces (via Tkinter, wxPython, GTK, Qt or Swing) and for use on a web server.
PREREQUISITES
Prior programming experience in another language such as Perl, Java, Basic or C. If you haven't programmed before, please book on our Learning to program in Python course instead.

Getting the most from your Well House Consultants course [Link]
SUBJECT BACKGROUND
Python is powerful, portable, object-oriented open source programming language for writing stand alone programs, quick scripts, and prototypes for large applications.
COURSE CONTENT
Course Summary: [Link]
 
Python language fundamentals
Introduction to Python (module Y101) What is Python? Running Python from the command line. Running Python from a script file. Hello Python World. Sourcing and installing Python.
Python - Fundamentals (module Y102) Assignments and Data Types in Python. Strings, Integer Real and Complex numbers. Expressions and Operators. Coercion and Conversion. The print statement. Input and raw_input. Commenting your program.
Conditionals and Loops (module Y103) Booleans. If, elif and else. Inset blocks. While loops. Break and continue. Shorthand Operators.
Development Tools and Environments (module Y150) Interactive Sessions. Automating Script file execution. The Integrated Development Environment (IDLE). Komodo and Visual Python. Using Python as a scripting language for Java.
Lists and Tuples (module Y104) What are collections and why do we have them? Introduction to lists. The for loop. Tuples. List and Tuple Slices. Copying a list, conerting to a list or tuple. Concatanating and repeating lists. Comparing lists and the in operator.
Functions, Modules and Packages (module Y105) Def and parameters. Default parameters. return statments. Variable scope and namespaces. Global variables. lambdas. Doc strings. Generator functions and yield. from and import. Built in and user defined modules.
 
Python, Object Orientation, Object use
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. Overloading. Accessing members of a class. Loading and using classes. Direct access to variables. Encouraging class use.
Object Oriented Python (module Y106) Class statement. Attributes of an object and class. Creating instances with __init__. self. Bound and Unbound methods. Writing methods to reference object data. Method and variable naming conventions.
Dictionaries (module Y107) What is a dictionary. Dictionary operators and methods. Iterating through a Dictionary's keys. For, range and xrange. Counting and existance. Sorting
String Handling (module Y108) Methods on String Objects. String Formatting. Regular Expressions and the re module. Regular Expression and Match Objects.
Exceptions (module Y109) Concept of exceptions. Try, except, else and finally. Types of exceptions. Exception propagation. raise. Exception objects.
File Handling (module Y110) Built in File data types. Opening, reading writing and appending files. File system checks
More on Collections and Sequences (module Y111) Complex structures. Copy and deepcopy. More methods on lists. User defined sorting. Combining copying and comparing dictionaries. Unicode handling.
Object Orientation: Composite Objects (module Q909) Review of object orientation basics. Inheritance. Base classes and subclasses. Overriding and abstract classes. Polymorphism. Inheritance structure. Multiple inheritance and alternatives. Class structure. Hierarchy and visibility. A note on design.
Objects - Intermediate (module Y112) Inheritance. Properties. Special methods. Metaclasses. Pickling and shelving objects. Old Style Objects (prior to Python 2.2)
Object Orientation: Design Techniques (module Q907) Overview - why design? Some basics. OOD, OOA, OOP. Waterfall, spiral and Incremental models. Informal techniques. Micro, macro and specification. Formal methods. 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.
Class Interaction - an example (module Y301) Introduction. Design. Virtual objects. Associated objects. Using private methods. When to override system methods. Direct use of properties. Water flow and tap examples.
Additional Python Facilities (module Y115) Is Python compiled or interpreted?. Regular expressions in Python. Elements of a Python-style regular expression. Anchors (Assertions). Literal characters. Character groups. Counts. Alternation. Grouping. Modifiers. Some examples. 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 uses and applications
Further advanced features of Python (module Y212) Decorators. Static Methods. unittest and Doctest. Python GTK. The Profiler.
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.
Best Programming Practice (module Y116) IsnŐt it enough to be able to write a working program?. Analysing the requirement. Designing the solution. Reusing code. Official style guide for Python code. Introduction. A Foolish Consistency is the Hobgoblin of Little Minds. Code lay-out. Whitespace in Expressions and Statements. Other recommendations. Comments. Documentation Strings. Version Bookkeeping. Naming Conventions. Designing for inheritance. Programming Recommendations. References.
Python 3 - What is New? (module Y300) Introduction. Why Python 3? Print as a function. Input changes. Range and other iterators (map, etc). nonlocal (compared to global). New style classes. Strings, bytes, unicode and string formatting. Exceptions. Other changes. A note on Decorators. Version 2.6 and 2to3. A Strategy for upgrade.
wxPython (module Y207) Introduction. wxWidgets. Hello wxPython world. A simple wxPython application. What next? wxPython widgets. wxPython events. wxPython window layouts. Contstraints, layout algorithms, sizers and resources.
Python and the Qt GUI (module Y206) Introduction to Qt and other Python GUIs. The Component parts of using Python with Qt. Installation summary. Hello Python GUI world. Widgets, geometry, events, signals, slots.... QWidgets. QLayouts. QEvents. A simple but practical control. Where to learn the use of Python/Qt applications. BlackAdder.
Python on the Web (module Y202) Overview of CGI. Use Python for CGI programs. Servlets and Python Server Pages

TUTOR and COURSE AUTHOR
Graham Ellis - graham@wellho.net [email]  [about Graham]
VENUE
Melksham, Wiltshire

A public Python course in Colorado, USA is offered by Mark Lutz, author of "Learning Python" and other O'Reilly books on Python. This 3 day course also runs 3 times a year. There is no commercial link between Mark and Well House Consultants, but each of us tells prospective customers about the other's services where appropriate.
Public courses run at Well House Manor - our own purpose fitted training centre and business hotel / conference centre in Melksham.
• Download Melksham Map - [pdf file (750k)] • Google Map - [Link]
PRICE
1 student   2 students   3 students   For 4 or more students
from the same company,
please consider a private course.
 With hotel room
£1030.00
(£1184.50 inc VAT)
Without room
£850.00
(£977.50 inc VAT) 
 With hotel rooms
£1960.00
(£2254.00 inc VAT)
Without rooms
£1600.00
(£1840.00 inc VAT) 
 With hotel rooms
£2890.00
(£3323.50 inc VAT)
Without rooms
£2350.00
(£2702.50 inc VAT) 
 
Notes:
• 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.
FOLLOW UPS
If you're going to be using Jython but don't yet know Java, our Java Programming for the Web course will be of interest to you. 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 "Opentalk" 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 -- http://www.wellho.net/course/ctc.html
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 -- http://www.wellho.net/net/terms.html
Covering topics such as delegate substitution, payment, cancellation policy and other matters.

© WELL HOUSE CONSULTANTS LTD., 2009: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 0800 043 8225 or 01225 708225 • FAX: 01225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho