MoodleBites for Developers Level 2

Updated for 2018 and Moodle 3.4 !

What do previous participants say about this course ... ?

  • 100% found it useful and interesting
  • 66% rated the course as Excellent
  • 100% thought the content was at the right level
(This feedback is genuine and was provided anonymously)

MoodleBites for Developers Level 2 is one of our technical courses.  It is not suitable for beginners, or those with no previous development experience.  However, if you are interested in an introductory level course for Moodle development, please review the MoodleBites for Developers Level 1 course.

Because this course is specialist, it runs just twice each year (numbers are limited, so please register in plenty of time):

  • 1st May
  • 1st October

This course is 8 weeks in duration, asynchronous, and completely online. Each week contains approximately 2-4 hours work, although this varies depending on your experience with Moodle and development in general, and how much extension work you wish to complete smile

It is an 8 week series of units focused on key areas of Moodle development. Each unit is comprised of tutorials, screencasts, documentation and practical exercises. There are no live classes, but participants are encouraged to participate in forums and to post the results of their practical assignments for the others to see.

OpenBadges logo

Justin HuntThe lead-facilitator for this course is Justin Hunt, well-known in the Moodle community for his outstanding contributions to Moodle including:

  • PoodLL - an extensive and integrated plugin suite of modules and filters that allows students to record audio or video, or draw/upload pictures as assignment submissions, with a repository, feedback, and questions types.
  • Genrico - a filter for handling code snippets
  • MyTube, YouTube Anywhere, and YouTube Submission Assignment - for handling YouTube content in Moodle in new and exciting ways.
  • Skim Import - converts notes exported from Skim PDF annotation tool into a format that displays nicely in Moodle.
  • Blog Export - portfolio plugin allows users to export certain activities and items to their own blog.

MoodleBites for Developers Level 2 is USD $950 per person at this time we are able to offer a discount to a special rate of USD $799 but places are limited - so book early to avoid disappointment!  Also note that if you have previously completed MoodleBites for Developers Level 1 you can discount an additional $100! smile

International fee includes credit card fees and currency exchange fees (and no additional tax) - there are no hidden charges.

If you wish to translate this value to your local currency please visit:

All invoices outside of New Zealand are in US Dollars USD$ (Euro invoices available by special request).

You can register for the course using the "Register Now" link on the Front Page.
This is a technical course, designed for people with some background in development. This course is not suitable for people who have no experience in development (please review MoodleBites for Developers Level 1).

Course outline

Course outline Pre-requisites: Participants should have some experience with PHP to get the most from the course. Since this is a course for developers, there will be a lot of code examples and weekly short programming assignments. Participants should have completed MoodleBites for Developers Level 1 or be familiar with the content covered there.

Technical requirements

  • A web server with Moodle 3.4 or greater installed
  • SSH or command line access to the server
  • If you have web server that you rent from bluehost, godaddy or similar services then you can use that for development. Or you can set up a web server on your windows or mac using XAMPP. See:
  • Information on how to install Moodle on your server can be found here:
  • It's OK to use the same server for several Moodle sites, but don’t try to develop on a production Moodle site.

In this course you will learn the basics of developing for Moodle, including:

  • Week 1 - In the first week of the course we cover a basic building block in Moodle development, Moodle namespaces and the automatic class loading system. This is applied in the event APIs and task APIs.
    • Introduction to the course
    • Moodle namespaces, and automatic class loading.
    • About Moodle events
    • About Moodle ad-hoc and scheduled tasks
    • Brief recap of development environments from Level 1
  • Week 2In week 2 we use the event and task APIs in a task that you complete to develop mastery of the concepts introduced in Week 1
  • Week 3In week 3 we learn about Moodle permission’s and capabilities. Understanding these concepts and using them well is very important as a Moodle developer. A natural place to use these is in navigation, so we also cover the Moodle navigation API.
    • Moodle permissions and capabilities
    • Moodle navigation
  • Week 4In week 4 we use the permissions and navigation APIs in a task that you complete to develop mastery of the concepts introduced in Week 3
  • Week 5In week 5 we discuss how to use Javascript in Moodle. In most plugins you will use AMD(RequireJS). Atto editor plugins however use the older YUI javascript framework. So this is also a good place to talk about Atto plugins
    • Javascript in Moodle
    • YUI and Atto plugins
    • AMD modules
    • Atto plugins
  • Week 6In week 6 we use Moodle javascript APIs in a task that you complete to develop mastery of the concepts introduced in Week 5
  • Week 7Many plugins contain forms that are used to collect information from users and teachers and administrators. In week 7 we learn how to build forms and manage the data associated with them. Files and forms are an advanced topic which we also cover.
    • Using Moodle forms
    • Forms and the database
    • Understanding the Moodle file system
    • Files and Forms
  • Week 8In week 8 we use Moodle Form and File APIs in a task that you complete to develop mastery of the concepts introduced in Week 7
There is no need to use a specific operating system, editor or IDE. The course is generic on these points and and aims at basic concepts that will be present in any OS or development environment. Since the course is neutral with respect to OS and development environment, effort has been made to ensure that the practical tasks and examples given are generally applicable. Anyone attending this course however should be familiar with their own operating system and development environment. We cannot answer questions specific to your own choice of OS and development environment.

Please note this course outline is subject to change to keep pace with Moodle development.

Last modified: Monday, 29 January 2018, 8:54 PM