Educational Products 2020.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:

namedescriptionvalueexample
titleTitle of the coursestringJava Basics, Kotlin for beginners
languageThe language used for course materialsAny supported languageEnglish, German, French, Spanish, Russian, and so on.
summaryA summary describing what the course is aboutstringLet’s learn some basics of Java programming language
programming_languageProgramming language of the courseAny supported programming languageJava, Kotlin, Python, Scala, JavaScript, or Rust
programming_language_versionA version of the programming language (optional)The version of the programming language3.8 (for Python)
environmentAdditional information about the course environmentstringsbt (for Scala courses)
contentDirectory names of lessons or sections included in the courseList of directory names
content: - Introduction - First steps - Basics - Test - Introduction - First steps - Basics - Test
solutions_hiddenHide "Peek Solution..."boolean
solutions_hidden: true: true

    section-info.yaml

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

    namedescriptionvalueexample
    contentDirectory names of the lessons included in the sectionList of directory names
    content: - Introduction - First steps - Basics - Test - Introduction - First steps - Basics - Test

      lesson-info.yaml

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

      namedescriptionvalueexample
      typeLesson type“lesson” (optional), “framework”
      type:type: lesson
      type:type: framework
      contentDirectory names of tasks included in the sectionList of directory names
      content: - Introduction - First steps - Basics - Test - 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:

        namedescriptionvalueexample
        typeTask type“edu”, “theory”, “output”, “ide”, “code”, “choice”
        type: edu edu
        type: theory theory
        type: code 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, “:”.stringHello, World!
        filesFiles included in the taskList of file paths relative to task directory. Also contains the file’s name, visible fields, and placeholders’ parameters.
        files: - name: src/Task.java files: - name: src/Task.java src/Task.java
        visibleIndicates whether the file is shown to the learnerboolean
        visible: true true
        visible: false false
        feedback_link (optional)Custom link for learners to leave their feedback about the taskstringGoogle Forms link: https://forms.gle/FNKFJTup5ACGfmMi5
        placeholdersAnswer placeholders. See this table to learn about the parameters.array
        placeholders: - offset: 162 length: 51 placeholder_text: type_here placeholders: - offset: 162 length: 51 placeholder_text: type_here 162 placeholders: - offset: 162 length: 51 placeholder_text: type_here 51 placeholders: - offset: 162 length: 51 placeholder_text: type_here type_here
        solution_hiddenHide Peek solution... for the particular taskboolean
        solution_hidden: true true
        solution_hidden: false 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:

          namedescriptionvalueexample
          is_multiple_choiceIndicates whether the multiple-choice task allows multiple correct answersboolean
          is_multiple_choice: false false
          is_multiple_choice: true true
          message_correct (optional)Custom message to be shown to a learner if they choose the correct solutionstring“Great job!” or “Fantastic!”
          message_incorrect (optional)Custom message to be shown to a learner if they choose an incorrect solutionstring“Review how to define a function to solve this task”
          optionsThe list of options. See this table to learn about the parameters.string
          options: - text: 1 is_correct: true - text: 2 is_correct: false options: - text: 1 is_correct: true - text: 2 is_correct: false 1 options: - text: 1 is_correct: true - text: 2 is_correct: false true options: - text: 1 is_correct: true - text: 2 is_correct: false 2 options: - text: 1 is_correct: true - text: 2 is_correct: false false

            Options

            Options have the following parameters:

            namedescriptionvalueexample
            textThe text of the optionstring
            - text: 1 is_correct: true - text: 2 is_correct: false 1 - text: 1 is_correct: true - text: 2 is_correct: false true - text: 1 is_correct: true - text: 2 is_correct: false 2 - text: 1 is_correct: true - text: 2 is_correct: false false
            is_correctIf the option is a part of the correct answerboolean
            is_correct: true true
            is_correct: false false

              Placeholders

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

              namedescriptionvalueexample
              offsetPlaceholder start offsetnumber162
              lengthPlaceholder lengthnumber51
              placeholder_textText to be shown to the learner as a placeholderstringtype_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: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false Introduction to Java dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false Getting started dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false Hello World dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false src/Task.java dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false 1 dependency: section: Introduction to Java lesson: Getting started task: Hello World file: src/Task.java placeholder: 1 is_visible: false false

                Dependency

                Dependencies have the following parameters:

                namedescriptionvalueexample
                sectionSection directory name if the placeholder dependency is inside a sectionstringIntroduction to Java
                lessonLesson directory namestringGetting started
                taskTask directory namestringHello World
                fileFile path relative to the directory of the taskstringsrc/Task.java
                placeholderPlaceholder index starting from 0number1
                is_visibleIndicates whether the placeholder is shown in place of a dependencyboolean

                is_visible: true true

                is_visible: false false

                  Last modified: 08 March 2021