2. Tutorials, Materials, Programs, Courses. What is the content at FLLCasts

Basic content at FLLCasts. Tutorials, Materials, Programs

The content consists of "Tutorials", "Materials", "Programs", "Playlists", "Courses", "CourseSections", "Tasks"

The basic building blocks of the content are "Tutorials", "Materials", "Programs"


The tutorial is a single central piece of knowledge that we share. Most tutorials have a video. Most tutorials have text. A tutorial is "consumed" in 1-10 minutes by a student or a teacher.


Building instructions, schemes and instructions in general are the materials. They could be used as standalone or with a tutorial that would further explain how to use the material. 


A computer program written in a computer language. Some tutorials could show how a program is implemented and we have the program attached to the tutorial. A common program, like one for a robot following lines, could be used in many tutorials on following lines. 


Tutorials, Materials, Programs are simple building blocks of our content. They do not provide any structure. That's why we have "Playlists", "Courses", "Course Sections", "Tasks"

Structured content at FLLCasts. Courses, CourseSections, Playlists, Tasks

The content consists of "Tutorials", "Materials", "Programs", "Playlists", "Courses", "CourseSections", "Tasks"

"Courses" and "CourseSections" structure the content and put the Tutorials and Programs and Materials in order. 

Course Books (Courses)

Different Tutorials that are combined with Materials and Programs and are presented to students and teachers in a specific order all make up a course book. The course book gives us the order. Which tutorial is first. Should there be a specific program run on a robot after that. Which robot should be built by following a building instruction in the Material.

Think of Course Books as a book. A course book does not have a starting date where students gather to participate in the Course book. No. Students and teachers gather in a Group and they work with Tutorials, Materials and Course books. The Group of students and teachers could consume many course books in an year and they could decide which course book to follow today. When you enroll in the course book we just measure when did you first enroll and what is your progress in the course book. Not with whom you are participating, or who are the teachers and students in the course book. Course books, as books don't have teachers and students. They could be read by anyone.

Course Section

The CourseSection is a chapter in the course book. Think of a course section as one class, or one topic or any way in which the structure of the course book could be divided on smaller pieces. This is the CourseSection. A CourseBook for students could be divided on 14 different sections, suitable for each week of the term. Or it could be divided on topics that are not connected with school years and terms. 


These are simpler than course books. These are just Tutorials in sequence. No Materials. No Programs. We discourage authors to use them.


A Task is something that should be completed. The Tasks are the glue between the content on the online platform and the actual world. A Task could require you to "Build a robot" or to "Program a robot" or to find a solution to a specific problem that was discussed in a Tutorial. Some Tasks require you to submit a picture or text. In this way we know the Task was completed. Tasks could be reused. The task to "build a five minute bot" could be used in lesson 1 of a course book and in lesson 10. This means you have to complete the task in the first lesson and in the 10-th lesson. It's the same task, but it has a different context and could be completed many times.

Re-usability at FLLCasts. The cornerstone of the content creation.

A major goal of FLLCasts is to allow authors to reuse content. Reusing a content allows an author to focus on developing better content and then reuse this content in different course books and groups.

Always plan for re-usability

Tutorials, Programs, Materials are the content. Courses (Course Books) and CourseSection (Lessons) are the structure of the content. But the same content could be structured in a different way and in different details depending on the group to which this content will be presented. 


The tutorials for "programming the robot to move forward" is developed once and then the same tutorial is used in the course book for young students where no difficult tasks are presented, while in the course books for older student the same tutorial is reused and additional more challenging tasks are presented.

Example 2: 

Building instructions for robot X could be used in lesson 1 of the course book and lesson 4. 

Build once, reuse many times.

Nonreusable content 

Sometimes authors need to develop content that will not be reused in other lessons and is there to glue Tutorial 1 to Tutorial 2 and say to students why this two Tutorials are presented in this order. 


The introduction to lesson 15 from course book 3 is unique. It can not and will not be reused. It is not a tutorial. The tutorial for finding the minimum value of an array could be used many times in many course books, but the specific into of what will happen in lesson 15 of course book 3 is specific to this lesson. 


Uploading 3D instructions

In order to successfully build a material as 3D Instructions, you need to prepare and upload a zip archive with the following structure:

  • build.ini
  • one or more *.ldr files


The build.ini file defines some basic settings for the build and has the following structure:

main_ldr_file = *the-name-of-the-main-ldr-file*
rotation_matrix_precision = *integer-value-between-1-and-5*

The first value *the-name-of-the-main-ldr-file* is the name of the file from which the script will start and is actually the file that will be shown in the 3D Instructions. The second value represents the precission with which the script performs checks if the matrices of the parts are orthogonal. The default value is 3, but you have the ability to change it.

Ldr file(s)

The instructions can be multiple files with refferences or a single ldr file with defined inline submodules. 

Dat file(s)

The script allows you to have dat files in the zip. Dat files are interpretated as a part and the script will not show their assembly instructions.


Note that no other files are allowed and you will get a build error.

Creating a new Course Section (Lesson) and reusing Tutorials and Materials

A Course Section (Lesson) at the FLLCasts platform allows you to structure and reuse the content already developed in the form of Tutorial, Material and other Course Sections. In this tutorial we would look at how to reuse content.

Reusing content in a course section

  1. Each course section is part of a course
  2. Create a new course at https://www.fllcasts.com/courses/new
  3. Go to the Edit page of the created course.
  4. content picture
  5. Fill in the Title of your lesson and the position you would like this lesson to have in the course. If the Course Section is public than it will be visible to students without enrolling into the course. Select "Update course" and this will create the Course Section (Lesson) in the course. You will see it on the edit page.
  6. Open the Course Section. This is how it will look like
  7. content picture
  8. Select Edit
  9. Go to the Content part of the Edit page.
  10. Select the "Add new Content" button
  11. content picture
  12. Search for tutorials, materials, programs  based on the public id of this content. See more about public ids at How to search at FLLCasts 
  13. content picture
  14. content picture
  15. After you select the content will appear with a picture and description
  16. content picture
  17. Select "Update Course section" and this will update the course section to contain the tutorials, materials and programs that you've search for and selected. 

Conditional Messages Syntax

Conditional Messages allows you to send an message to people for which specific conditions apply. For example people that have just enrolled and their subscription is active 

records.days_old=0, subscriptions.status="active"


Days old


Matches the records that have started the course X days ago. If X=0 than the message is send right the way when the record is created, eg the use is enrolled. 

Id Mod


Seachers for records where records.id mod X=Y
Designed to be used for separating the records on chunks.
Syntaxt for searching is 'records.id_mod="X/A1;A2;..AN"' where X is the number of segments we want the records to be divided on
and A1;A2;..AN are the segments in which we want to take the records from

 records.id_mod="4/1" divides the records on 4 equal segments and takes the records in the second on.   


Days old 




Matches all subscriptions with the given status like "active", "canceled" or "deactivated"


subscriptions.name="The subscription product name"

Matches all the records that have a subscription with the given hame.