Educational Products 2020.1 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
- Introduction - First steps - Basics - Test
solutions_hiddenHide "Peek Solution..."boolean
: 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
    - 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:
      contentDirectory names of tasks included in the sectionList of directory names
      - 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”
        edu
        theory
        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.
        src/Task.java
        visibleIndicates whether the file is shown to the learnerboolean
        true
        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
        162 51 type_here
        solution_hiddenHide Peek solution... for the particular taskboolean
        true
        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
          false
          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
          1 true 2 false

            Options

            Options have the following parameters:

            namedescriptionvalueexample
            textThe text of the optionstring
            1 true 2 false
            is_correctIf the option is a part of the correct answerboolean
            true
            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
              Introduction to Java Getting started Hello World src/Task.java 1 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

                true

                false

                  Last modified: 08 May 2020