Educational Products 2019.3 Help

Introducing YAML format

EduTools 2.7 provides a completely reworked solution for storing course configuration files.

Previously, all course metadata was stored in XML format. Now you can see all the information about your course conveniently stored in YAML format. We worked hard to make this possible and we hope that you will enjoy using this feature.

YAML has a number of advantages such as:

  • Simple and understandable structure of configuration files. Configuring course properties becomes effortless.

  • Easy to store in a VCS, with a clearer diff.

  • Edit configuration files with ease: invalid values are highlighted and available value options are suggested via completion.

  • No extra delimiter. This makes the document more lightweight and much more readable.

course-info.yaml

course-info.yaml is a configuration file that contains basic information about a course.

It has the following structure:

name

description

value

example

title

Title of the course

string

Java Basics, Kotlin for beginners

language

The language used for course materials

Any supported language

English, German, French, Spanish, Russian, and so on.

summary

A summary describing what the course is about

string

Let’s learn some basics of Java programming language

programming_language

Programming language of the course

Any supported programming language

Java, Kotlin, Python, Scala, JavaScript, or Rust

programming_language_version

A version of the programming language (optional)

The version of the programming language

3.8 (for Python)

environment

Additional information about the course environment

string

sbt (for Scala courses)

content

Directory names of lessons or sections included in the course

List of directory names

content: - Introduction - First steps - Basics - Test

solutions_hidden

Hide "Peek Solution..."

boolean

solutions_hidden: true

section-info.yaml

section-info.yaml is a course configuration file that specifies the structure of sections:

name

description

value

example

content

Directory names of the lessons included in the section

List of directory names

content: - Introduction - First steps - Basics - Test

lesson-info.yaml

lesson-info.yaml is a course configuration file that manages the parameters of lessons:

name

description

value

example

type

Lesson type

“lesson” (optional), “framework”

type: lesson
type: framework

content

Directory names of tasks included in the section

List of directory names

content: - Introduction - First steps - Basics - Test

The type parameter has two possible values: lesson and framework. These values determine the type of lesson.

Change the value to ‘lesson’ or ‘framework’ if you want to convert your framework lesson to a simple one or vice versa.

task-info.yaml

task-info.yaml is a configuration file that describes the properties of a task:

name

description

value

example

type

Task type

“edu”, “theory”, “output”, “ide”, “code”, “choice”

type: edu
type: theory
type: code

custom_name (optional)

Custom name for the task if it differs from its directory name. Useful when you need to use a symbol that is not allowed in directory names, for example, “:”.

string

Hello, World!

files

Files included in the task

List of file paths relative to task directory. Also contains the file’s name, visible fields, and placeholders’ parameters.

files: - name: src/Task.java

visible

Indicates whether the file is shown to the learner

boolean

visible: true
visible: false

feedback_link (optional)

Custom link for learners to leave their feedback about the task

string

Google Forms link: https://forms.gle/FNKFJTup5ACGfmMi5

placeholders

Answer placeholders. See this table to learn about the parameters.

array

placeholders: - offset: 162 length: 51 placeholder_text: type_here

solution_hidden

Hide Peek solution... for the particular task

boolean

solution_hidden: true
solution_hidden: false

The type may have one of six possible values: edu, theory, output, ide, code, or choice. These values determine the type of task.

  • edu - a task that has local tests.

  • theory - a task that doesn't require tests but might contain a code sample.

  • output - a task that is validated by the provided output of the program.

  • ide - a task that helps to learn IDE functionality.

  • code - tasks that work with a remote checker (specific to Stepik only).

  • choice - quiz tasks, tasks with multiple answer choices (for their parameters see this table).

Multiple-choice tasks

The specific parameters of multiple-choice tasks are described in the table below:

name

description

value

example

is_multiple_choice

Indicates whether the multiple-choice task allows multiple correct answers

boolean

is_multiple_choice: false
is_multiple_choice: true

message_correct (optional)

Custom message to be shown to a learner if they choose the correct solution

string

“Great job!” or “Fantastic!”

message_incorrect (optional)

Custom message to be shown to a learner if they choose an incorrect solution

string

“Review how to define a function to solve this task”

options

The list of options. See this table to learn about the parameters.

string

options: - text: 1 is_correct: true - text: 2 is_correct: false

Options

Options have the following parameters:

name

description

value

example

text

The text of the option

string

- text: 1 is_correct: true - text: 2 is_correct: false

is_correct

If the option is a part of the correct answer

boolean

is_correct: true
is_correct: false

Placeholders

The specific parameters of placeholders are described in the table below:

name

description

value

example

offset

Placeholder start offset

number

162

length

Placeholder length

number

51

placeholder_text

Text to be shown to the learner as a placeholder

string

type_here

dependency (optional)

Dependency on another placeholder. See this table to learn about the parameters.

string

dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false

Dependency

Dependencies have the following parameters:

name

description

value

example

section

Section directory name if the placeholder dependency is inside a section

string

Introduction to Java

lesson

Lesson directory name

string

Getting started

task

Task directory name

string

Hello World

file

File path relative to the directory of the task

string

src/Task.java

placeholder

Placeholder index starting from 0

number

1

is_visible

Indicates whether the placeholder is shown in place of a dependency

boolean

is_visible: true

is_visible: false

Last modified: 27 March 2020