We offer introductory and advanced courses in Python for both:

  • beginners to programming;
  • experienced programmers new to Python.

The courses are a mixture of hands-on exercises and instruction from experts.

Upcoming public courses


Python for Scientists and Engineers: 25-29 May 2015. More info and booking.


Python for Data Analysis: 7-9 July 2015 (new date). More info and booking.

Python for Programmers: 3-day course

This course requires some familiarity with programming concepts.

By the end of this course, you will have all the knowledge you need to start programming competently in Python. You will know what’s available with Python, how to structure your code, how to make the most of Python. You will have had experience with using Python for various scripting and data manipulation tasks. You will know the basics of how to use Python for developing web apps for intranet sites or the internet. You will understand the elegance and power of the language and how to find further learning resources as you begin using Python to solve real-world problems.

Day 1 covers the basics of using Python for general programming tasks.

The syllabus is:

  • Why use Python? What’s possible?
  • Python versus Java, C, C++, Matlab, R, …
  • Python syntax and concepts
  • Input and output of string and binary data
  • Useful data structures
  • Practical tips and tricks
  • Tour of the amazing standard library

Day 2: Intermediate Python

Day 2 covers more advanced programming concepts in Python, including objects; best practices like unit testing; and how to write efficient, maintainable code. It also introduces some very practical tips and tools for Python programming.

The syllabus is:

  • Classes and objects
  • Modularity and packaging
  • Best practices for writing maintainable code
  • Python idioms and style
  • Documenting and unit testing Python code
  • Practical debugging strategies
  • Efficient coding practices
  • Tools for benchmarking and profiling
  • Compatibility with Python 2.x and 3.x

Day 3: Web development with Django

Day 3 covers the Django framework (Python’s answer to Ruby on Rails) for developing web apps. This demonstrates the Python language features and concepts from days 1-2 in a practical setting. Web development in Python is also an essential skill in its own right (and much sought-after in industry). By the end of day 3, participants will know enough to start developing useful database-backed web apps in Django immediately.

The syllabus is:

  • Database access in Python
  • Basics of web programming
  • What is Django? What’s possible?
  • Django’s models and ORM
  • Django views and templates
  • Handling URLs and web forms
  • Django’s automatic admin interface
  • Building a complete database-backed web app
  • Cloud-based deployment: Python with Google AppEngine and Amazon Web Services
  • Practical tips: debugging, database migrations

Python for Scientists and Engineers

We also offer 3-day to 5-day specialist courses in Python for science and engineering. These include the basic and intermediate modules above and include specific help on manipulating data for scientific and engineering applications.

By the end of the course, you will have all the knowledge you need to start programming competently in Python. You will know what’s available with Python, how to structure your code, and how to use Python’s data structures competently to write clean, efficient code. You will have had experience with using Python for various scripting and scientific data manipulation tasks, including easily creating beautiful plots, manipulating different kinds of scientific data, performing image analysis, and analysing geospatial information in Python.

The syllabus for days 1 and 2 are as above. Days 3-5 cover more advanced Python for scientific computing:

Day 3: Basics of Scientific Computing with Python

Day 3 teaches the use of Python for scientific computing. It covers array and matrix manipulation, an overview of available scientific routines, and 2D plotting, with the packages NumPy, SciPy, and Matplotlib. The syllabus is:

  • Introduction to numerical data manipulation with NumPy
  • Tour of SciPy for scientific data manipulation: optimization, statistics, clustering, interpolation, signal processing (including image denoising), classification, sparse matrices
  • 2D plotting and visualisation with Matplotlib

Day 4: Handling Scientific Data in Python

Day 4 introduces further practical tools for scientists and engineers working with different kinds of data. The syllabus is:

  • Data analysis and modelling with Pandas (including time-series, missing values, and Excel data)
  • Interfacing Python with relational databases
  • Managing huge hierarchical data sets with NetCDF4-Python and PyTables
  • Interfacing Python with other programming languages: C/C++, Fortran, R
  • Introduction to building GUIs for scientific and engineering applications

Day 5: Handling Spatial Data in Python

Day 5 introduces practical tools for scientists and engineers working with geospatial data. The syllabus is:

  • Introduction to spatial analysis in Python
  • Reading spatial data with open-source tools (QGIS, GDAL, Fiona, GRASS)
  • Projections; vector analysis and the ‘shapely’ package
  • Raster image analysis in Python: worked examples with SciPy (ndimage, signal) and PIL
  • Network analysis using NetworkX
  • Advanced spatial analysis topics: spatial autocorrelation with PySAL; processing large spatial datasets with supervised classification and point pattern analysis.

Python for Data Analysis

This is a course for data analysts, financial analysts, statisticians, software developers, and other technical staff interested in learning to use Python for analysing and visualising data.

By the end of the course, you will have all the knowledge you need to start using Python competently for processing, analysing, modelling, and visualising various kinds of data, with a focus on time series. You will have had experience with using Python for a range of scripting, data-manipulation and plotting needs with data in a variety of formats, including CSV, Excel spreadsheets, SQL databases, JSON, and API endpoints, as well as log files and unstructured text. You will have applied powerful tools for optimisation, regression, classification, and clustering, in useful practical settings on small and large data sets. You will understand the elegance and power of the Python language and its powerful ecosystem of packages for data analysis, and you will be well-placed to continue learning more as you use it day-to-day.

The syllabus for day 1 is as above. Days 2-3 are as follows:

Day 2: Essential analytic tools and data formats

The Pandas package is an amazingly productive tool for working with and analysing data in Python. Day 2 gives a thorough introduction to Pandas and related tools for working with different kinds of data, including spreadsheets, time-series data, and SQL databases. The syllabus is:

  • Fast, powerful data analysis with Pandas
  • Working with time-series data
  • Working with missing and noisy data
  • Reading and writing data: CSV, Excel, SQL databases, JSON, and spatial formats
  • Indexing, grouping, merging, reshaping, summarising data
  • Statistical graphics and visualisation of data using Pandas, Matplotlib, and Seaborn

Day 3: Optimisation, regression, clustering, classification

Day 3 introduces four of the most fundamental and powerful techniques for analysing many kinds of real-world data in Python. The datasets are selected from a range of industries: financial, geospatial, medical, marketing, and social sciences. The syllabus is:

  • Optimisation under constraints with OpenOpt, with applications in risk analysis
  • Linear and nonlinear regression with Statsmodels, with application to quality assessment and election forecasting
  • Clustering of data using scikit-learn, with application to outlier detection
  • Classification with scikit-learn, with application to diagnosis and prediction

Course Locations

We offer courses either on-site or at our partner training facilities in Australian capital cities and Singapore.


The price for our public courses is A$715 per day (inc GST) in Australia, or S$800 per day in Singapore.

Group discounts of 15% are available for group bookings of 5 or more.


  • Python for Scientists and Engineers: Canberra, 25-29 May 2015. Book here.
  • Python for Data Analysis: Melbourne, 7-9 July 2015. Book here.

On-site courses

We also offer custom courses on-site for teams within organizations. These are particularly appropriate if your team uses particular tools or data sources in its workflow. These are also helpful to bring a whole team up-to-speed with Python-based development. Please contact us to discuss your needs.