Our Python training is different to other courses - it's 100% practical. Everything is done using exercises and examples, simply because we've found that people learn more by doing rather than listening. We do provide slides, a course book and some text books but these are used for reviewing the subjects and for after-course study - from the very beginning we write Python code. All the examples start from an empty page, so there is no concept of just 'filling in the blanks' without really knowing what's going on.
Every course has a large number of standard exercises, but more are added depending on what people need to achieve in their real work. Often students ask ‘how do you’ questions which are answered by 'let's do it' and another class example is born.
This way the courses can be interactive, educational and stimulating. We enjoy teaching Python, so our goal is for you to enjoy it too.
We can cover Python 2 or Python 3, using Windows or Linux. We can vary the course for complete beginners through to experienced programmers. If you just want a quick introduction to coding, or you’re an experienced programmer who wants to find out what Python is about, we can offer ‘Python in a Day’. The outline below is just an example, so if you wish to cover different libraries such as NumPy or pygame then just let us know. Most courses would be 4 or 5 days, but if you’d like to spread that over 2 sessions, for example 3 days one week and 2 the next, that would be fine.
Most of our courses are held at your site using your equipment, but if there are 2 or more of you then it could be economic for us to use a hotel or conference centre close to you, or you could come to the Cotswolds where we are based.
Our Python training costs £590 per day in total, so for example a 4 day course for 6 people would cost a total of £2360, less than £395 for each student. These prices exclude VAT, accommodation and the instructor’s reasonable expenses. Extra students, up to a maximum of 12, can be added just for the cost of the course books.
Why Python was invented. What Python is good for (and what it's not). History and versions. Development tools.
Scripts vs programs. A simple Python script. Running a program. The interactive interpreter. Layout and white space. Storing scripts. Python 'variables' and names. Dynamic typing. Some of Python's types. Type conversion. Python's operators.
if, else and elif. Interval comparisons. for, sequences and ranges. break, continue and pass. Iterating through strings and collections. while loops. Implementing menus.
Lists - Python's smart arrays. Dictionaries - Python's ubiquitous collection. Tuples - Python's most misunderstood collection. List comprehensions. The other collections.
The purpose of functions. Writing and calling functions. Passing arguments. Named (keyword) arguments. Optional (default) arguments. Local and global variables. The main function and __name__. Modules and packages. Writing and using modules. Import options.
Files and Strings
Opening files for read, write and append. Reading and writing. Using 'with'. Error and exception handling. Formatting strings. Splitting strings. Slicing strings.
Object-oriented programming and its benefits. Components, classes and objects. Defining a class and creating objects. Initialization and the __init__ method. 'Private' fields. Functions, methods and attributes. Object collections. Treating objects as strings. Implementing standard operators. Read-only and read-write properties. Inheritance. 'Duck typing' and polymorphism.
Threads and processes. Creating a process. Creating a thread. Thread limitations and the process solution. Interprocess communication.
Networking concepts. TCP/IP. Sockets. A Python client. A Python server.
The importance of testing. DocTest. Unit testing and Test Driven Development. Writing tests. Running tests and fixing problems.
Optional - Introducing Graphical User Interfaces
Tkinter and its alternatives. Creating a GUI. Basic controls. Event handling. Graphics and animation.