Skip to main content



Syllabus Aims

This syllabus has the following aims

  • To direct teachers across our network to our content
  • To share content developed by volunteers between our cities (slides, videos, exercises etc)
  • To ease the load of planning lessons for our teachers
  • To be a repository of exercises for our trainees
  • To be a resource for our trainees to refer to

Target Trainees

The vast majority of our trainees fit this profile:

  • Non-native English speaking
  • Limited to zero prior experience in programming
  • Many do not have higher education certificates (Bachelors or higher)
  • Some have not worked in a professional setting before

This means that in general our trainees

  • Respond better to exercises than written material
  • Will quickly become overwhelmed with long, meandering lectures
  • May have a lower resilience to failure and errors

You should keep these qualities in mind whenever we develop content for our trainees. You can find some concrete guidelines around content in this document: Our Approach.

Organisational Documents

This website contains everything that we teach our trainees. For organisational documents you can reference the Docs website.

How We Organise

Planning Boards

We currently have two planning boards to coordinate tasks on the Syllabus

  • Syllabus Planning - here

These tasks are to do with one of our modules. These modules are living documents that changes and react to development over time. This board includes all associated homework and challenges to do with our courses.

  • Workshop Development - here

These tasks are one day workshops that provide non-essential skills or experiences to our trainees. For example, modules in Mobile Application Development or Machine Learning. Once run, these modules are kept as a library for future trainees and volunteers to refer back to.


To contribute to the Code Your Future syllabus, fork and open a pull request to this repository.

Significant contributions are accepted strictly through approved pull requests, even for administrators of the repo.


Syllabus wide discussion happens in cyf-syllabus-tech

Module or workshop specific discussion happens in cyf-module-$subject. For example, the React module discussion can be found in cyf-module-react.

Track specific discussion happens in cyf-$subject-track

Lesson Template

You can find an example of the a lesson plan here


A lesson must have

  • Learning Objectives
  • Contents of the lesson
  • Several topics that are covered in the lesson
    • Each topic must have appropriate exercises
  • A link to the homework

Focus on exercises in the class rather than presentations or long explanations.


Homework should contain

  • Resources to help the trainee study the material in the lesson
  • A set of homework that the trainee must complete before the next lesson
  • Any tasks the trainee should complete before the next lesson

The homework should be relevant, get harder gradually with an (optional) stretch goal for more advanced trainees.

Instructor Notes

Instructor Notes should contain

  • Links to presentations made by other schools
  • Links to any videos of previous classes
  • Explanations of how the lesson should be taught
  • Any other useful information about the lesson content

These notes are (along with Slack) one of the key ways that we should share knowledge and learnings between schools.