How do I create a new course?

Before you start:

Creating or Cloning?

Are you sure you actually want to create a course entirely from scratch? If you simply want to make a new version of an existing course you probably just need to make a shallow or deep clone.

Understand the data model

Make sure you understand the components that form a course, such as models and problems. This is described in the Authoring Guide.

With great power...

To create a new course object you need to be a member of the Grok team: any educators needing a new course must request it to be created on their behalf.

To have the ability to change details of a course (but not actually create a course) a user needs to be a course author. The course author FAQ for details on how to give a user appropriate privileges.

Imitation is the sincerest form of flattery

Creating a course from scratch requires a lot of details to be known about the course's configuration. A common approach is to take an existing course and manually copy details across.

Review your settings

The guide to checking a course for release explains appropriate settings for many of the details in the course admin page. You should refer to it before making a course available.

Create a new course object

Courses are created in the Grok admin interface via the Courses item in the Authoring pull-down, or just jump straight to

The process of creating a new course starts by clicking the New Course button, taking you to a form where you specify all the details of the course.

This form gives lots of options:

The “Create” button that appears after each option is a convenience function, but clicking any of them does the same thing: create a new course using the fields entered into each of the various forms in the page. This guide steps through each set of options in turn.

Details Form

Owned By

This needs to be a valid institution. A good default is “Grok Learning - New South Wales, Australia” for internally authored courses.


Available types are:

  • Course - just a regular course
  • Competition - a course with deadlines and (probably) using the competition marking scheme
  • Assessment - Currently unused
  • Short Course - only a couple of modules, like an Hour of Code activity, often (but not always) free
  • Gym - a series of problems for testing your skills

The most common type is “Course”.


Describes the difficulty of the course, which gets displayed in the course details, and allows filtering by Level in the launch page:

Allowed values include “None” (the default) or specific levels “Level 1” to “Level 7”. In the launch page these are displayed as:

  • Junior (Level 1 & 2)
  • Newbies (Level 3)
  • Beginners (Level 4)
  • Intermediate (Level 5 & 6)
  • Advanced (Level 7)


This is the public-facing name of the course. This is the full title - a shorter version can be provided in the Short Title field. It is displayed in the launch page. It can include details specific to that instance of the course, such as the year or semester.

Short Title

Another public-facing name for the course. It can be a shorter version of the main title, and is displayed on the course page and in the page’s window title. It’s worth making this reasonable generic so that it doesn’t need to be changed when the course is cloned.


This is an internal uniquely identifying string key for the course. It should avoid special characters and be sufficiently meaningful to assist searching from the interface.


This string is used to assist determining the position of the course within a list. It is similar to the slug, but doesn’t need to be unique (although ordering of two courses with the same ordering string is not well defined). For instance, we could use “bryn-demo-course-0”, and if another related course were later added it could be “bryn-demo-course-1” to ensure it is listed after the original.

Manual Tags

These tags are used to filter courses on the launch page. This is a comma-separated list of key: value pairs, such as “Topic:Cyber Security, Language: Python”, “Language: Blockly”, “Language: Blockly, Language: Python, Language: BBC microbit, Type: Professional Development”. The categories and values can be anything you like. Any new categories will update the filter bar on the launchpad automatically.

Manual Labels

Usually this should be the same as the manual tags. These are displayed as tags in the course description in the launch page.

Is for schools only?

Select if the course is intended for school-aged users.


Header colour

This sets the background colour of the course title in the launch page, using a hex string. For instance, "#006CAB" is a dark blue used by Monash, “#FFD75E” is the yellow used by ACA courses.

If no colour is specified, the colour defaults to difficulty-specific colours:

  • Beginners - light green
  • Intermediate - light yellow
  • Newbies - light blue
  • Advanced - light pink
  • Junior - purple

Badge image

Courses can use custom branding, including the use of badge images specific to the institution or course. SVG and PNG icons are supported. See

Badges are uploaded as an Asset via the Upload a badge asset button. Paste the Asset URL into the Course badge field.

Cover image

This resource is never used. Ticket PLATFORM-146 exists to have it removed.

Lead text

This text is used as a short description in the launch page, and printed above the description body in the course page.


A more detailed description of the course that expands on the lead text. This is shown in the main course page.


If supplied, this HTML content is included in the course page as a “Course Outline” tab.

Student Notes URL

URL for downloading course notes. This link will be accessible to everyone via the Course Outline page. See

Teacher Notes URL

URL for downloading course notes. This link will be at most accessible to teachers and tutors via the Course Outline page, depending on the visibility setting below. See

Visibility, accessibility, and freeness

Most of these fields are explained in the form.

Released starts & Released ends

These are ISO8601/RFC3339-formatted datetime strings.

Scoring & Leaderboards

Scoring is described in the Scoring FAQ, Leaderboards are described in the Leaderboard FAQ. Configuration of these is explained in the form.

Note that the scoring types evolve, so more options are available than documented in the page, e.g.,

  • Challenge with friendly week
  • Challenge without friendly week
  • Competition with single deadline


Grok provides sophisticated online tutor support, described in the How do I tutor FAQ. Enabling this in the course is explained in the form.

Discourse Forums

Documentation on forums should be covered in the forum instructions (also mentioned in author facing doco here).


You can configure certificates to be awarded for course completion - see Certificates FAQ.