The fundamentals in depth, and an
introduction to applications such as GUI design and Data Munging.
Duration:
3 days • Price:
$2060.00 or £1030.00 +VAT (with hotel room), or
$1700.00 or £850.00 +VAT (without room), •
Venue:
Melksham, England
COURSE START DATES
| • Monday 14 July 2008 | • Monday 8 September 2008 |
| • Monday 10 November 2008 |
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 send
us an email - we can probably help.
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
Shorter description available: [Link]
Python language fundamentals |
| Introduction to Python (module Y101) What is Python?.
Running Python from the command line.
Running Python from a file - "Hello Python World".
Obtaining and installing Python.
Downloading from www.python.org.
Downloading from ActiveState.
Downloading from Plone.
Python versions.
What is Python good for?.
Where did the Python name come from?.
Other resources.
|
| Python - Fundamentals (module Y102) Variables, assignments and data types.
Variables.
Data Types.
Strings.
None and del.
Operators, expressions and delimiters.
Delimiters.
Coercion and conversion.
Screen output, keyboard input.
The print statement.
keyboard input.
Commenting your program.
The #! line.
|
| Conditionals and Loops (module Y103) Conditional statement - if.
blocks in Python.
else and elif.
Conditions, and what is truth.
The while loop.
break and continue; else clauses.
Shorthand operators.
|
| Development Tools and Environments (module Y150) What is a development tool or environment?.
The interactive prompt.
IDLE.
The PythonWin IDE.
|
| Lists and Tuples (module Y104) Why do we have collections?.
Lists.
The for loop.
Alternative ways of processing members of a list.
Tuples.
Working with lists and tuples.
More ways to reference elements of a list or tuple.
copying a list.
Concatenating and repeating lists and tuples.
Comparing lists and the in operator.
converting to a list or tuple.
A real live program.
Lists of lists.
|
| Functions, Modules and Packages (module Y105) Why use functions.
A first function.
A first module.
More flexibility in calling functions.
Doc strings and function attributes.
Defining your own attributes.
Variable scope.
Advanced function capabilities and recent additions.
Lambda example.
Generator Example.
Recursion.
Built-in modules.
|
Python, Object Orientation, Object use |
| Object Orientation: Individual Objects (module Q906) A History.
Unstructured Code.
Subroutines, functions, procedures.
Structured Programming.
Object Oriented Programming.
A note on political, or religious issues.
Introduction to OO Programming.
Classes.
Methods.
Static and Nonstatic.
Instances.
Constructors.
Destructors.
Overloading.
Accessing members of a class.
Loading.
Use.
Direct access to variables.
Testing.
Encouraging class use.
|
| Object Oriented Python (module Y106) What is Object Orientation and why use it?.
Using Python objects.
Creating your own classes in Python.
Method and variable naming standards.
Including a test harness in your class definition.
|
| Dictionaries (module Y107) Why do we need dictionaries?.
Defining and using a dictionary.
Hashing and Sorting.
Checking whether an itemÕs in a dictionary.
Using other objects as dictionary keys.
|
| String Handling (module Y108) Defining strings.
Raw strings.
Strings as sequences.
Strings methods.
Finding available methods, and documentation.
Splitting and joining strings.
Finding out what methods are available.
Formatting strings in Python.
Reading a file - first taste.
|
| Exceptions (module Y109) What is an exception?.
Using try and except.
Types of exceptions.
Running mandatory cleanup code.
Raising an exception.
Practical examples - exceptions in use.
Simple application - generate a list of prime numbers.
Code testing and optimisation.
|
| File Handling (module Y110) Opening and reading from files.
Writing files.
File system checks.
Reading a web page.
|
| More on Collections and Sequences (module Y111) Complex Structures.
Assignments, shallow and deep copies.
Further operations on lists.
Sorting a list - natural order and user sorts.
|
| Object Orientation: Composite Objects (module Q909) Revision.
Inheritance.
Base classes and subclasses.
What's inherited?.
Overriding.
Abstract classes.
Polymorphism.
Inheritance structure.
Multiple Inheritance.
Class structure.
Hierarchy.
Visibility.
Designing Objects.
|
| Objects - Intermediate (module Y112) A first example of inheritance in Python.
A further example.
Classic and new-style classes.
Attributes and properties.
Finding out about the class of an object.
Overloading operators.
A practical example of overloading operators.
|
| Object Orientation: Design Techniques (module Q907) OO Design - some basics.
Start with a good understanding of OO.
And also a good understanding of the buzz words and design cycle..
Informal Techniques.
Micro or Macro?.
Specifying classes and methods.
Specifying extended classes.
Clusters of classes.
Generalise it out.
Programming and method standards.
Formal Methods.
Unified Modelling Language (UML).
Views.
Diagrams.
Model Elements.
UML Summary.
Tools.
Project management and design issues.
Extreme programming.
Planning.
Design.
Coding.
Testing.
|
| Class Interaction - an example (module Y301) Introduction.
The application.
Design.
Definition of taps - inheritance, encapsulation.
Objects to define a concept.
Associated objects.
Test harness.
Solution.
Enhancements.
|
| 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) What is XML.
XML Handlers.
Sax.
DOM.
Using Python to handle XML via SAX.
Accessing attributes and character data via Python and SAX.
Storing information as you parse with SAX.
Using Python to handle XML via DOM.
Adding in a character handler.
Modifying and saving the model.
4Suite libraries.
The Gnome libraries.
|
| 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.
|
| wxPython (module Y207) wxPython - Introduction.
wxWidgets.
Putting the two together.
Where to get wxPython.
Hello wxPython world.
A simple wxPython application.
Adding a menu bar and events.
What next?.
wxPython widgets.
wxPython events.
wxPython Window Layout.
Constraints.
Layout algorithm.
Sizers.
Resources.
Brute force.
More about sizers.
|
| 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) Introduction to Python on the Web.
Reading from a form, using templates, other techniques.
Web and Python subjects - state, security etc..
Where does my Python run?.
How do I link pages together?.
What about security considerations?.
Worked example - a multipage registration system.
Source code.
Design and Overall Structure.
Completing a template.
Maintaining a session.
Dealing with nasty characters.
Providing sticky fields.
Cleaning up stale sessions.
Debugging your script.
Taking this application further.
Can I make the Python run more efficiently on the Web?.
|
TUTOR and COURSE AUTHOR
Graham Ellis -
graham@wellho.net [
email] [
about Graham]
VENUE
Melksham, Wiltshire
, England. A taxi transfer can be arranged if you'll be
arriving by air
from United States.
Private Courses can be arranged on site in your country.
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 $2060.00 ($2420.50 inc VAT) or £1030.00 (£1210.25 inc VAT) Without room $1700.00 ($1997.50 inc VAT) or £850.00 (£998.75 inc VAT) |
With hotel rooms $3920.00 ($4606.00 inc VAT) or £1960.00 (£2303.00 inc VAT) Without rooms $3200.00 ($3760.00 inc VAT) or £1600.00 (£1880.00 inc VAT) |
With hotel rooms $5780.00 ($6791.50 inc VAT) or £2890.00 (£3395.75 inc VAT) Without rooms $4700.00 ($5522.50 inc VAT) or £2350.00 (£2761.25 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 appropropriate.
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.