Scorm 2004 вычисляет процент завершения на основе взаимодействий - PullRequest
3 голосов
/ 09 июля 2020

Я использую Scorm 2004, и мне интересно, есть ли способ рассчитать процент завершения на основе взаимодействия (например, cmi.interactions.*)? или какой простой способ рассчитать процент завершения?

Я думал об использовании взаимодействия потому, что у нас есть: cmi.interactions.0.objectives.n.id, и я думал, что мы можем использовать cmi.objective.n.completion_status. Но как найти общее количество целей, чтобы определить коэффициент выполнения?

Я ценю любую помощь или подсказку.

Обновление

Мне удалось разобрать suspended_data. Теперь вопрос в том, как получить из этого прогресс выполнения.

{
  "progress": {
    "lessons": {
      "1": {
        "c": 1,
        "p": 100,
        "i": {
          "0": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "1": {
            "c": 1
          },
          "2": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "3": {
            "c": 1
          },
          "4": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "5": {
            "c": 1
          },
          "6": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "7": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "8": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              },
              "1": {
                "c": 1
              },
              "2": {
                "c": 1
              },
              "3": {
                "c": 1
              },
              "4": {
                "c": 1
              }
            }
          },
          "9": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "10": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "11": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "12": {
            "c": 1
          },
          "13": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "14": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "15": {
            "c": 1
          },
          "16": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          }
        }
      },
      "2": {
        "c": 1,
        "p": 100,
        "i": {
          "0": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "1": {
            "c": 1
          },
          "2": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "3": {
            "c": 1
          },
          "4": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "5": {
            "c": 1
          },
          "6": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "7": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "8": {
            "c": 1
          },
          "9": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          }
        }
      },
      "3": {
        "c": 1,
        "p": 100,
        "i": {
          "0": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "1": {
            "c": 1
          },
          "2": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "3": {
            "c": 1
          },
          "4": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "5": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "6": {
            "c": 1
          },
          "7": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "8": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "9": {
            "c": 1
          },
          "10": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "11": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          },
          "12": {
            "c": 1
          },
          "13": {
            "c": 1,
            "i": {
              "0": {
                "c": 1
              }
            }
          }
        }
      },
      "4": {
        "a": 7,
        "p": 47,
        "r": 1,
        "s": 20,
        "i": {
          "0": {
            "c": 1,
            "k": 1,
            "s": 0
          },
          "1": {
            "c": 1,
            "k": 0,
            "s": 1
          },
          "2": {
            "c": 1,
            "k": 0,
            "x": [1]
          },
          "3": {
            "c": 1,
            "k": 1,
            "s": 3
          },
          "4": {
            "c": 1,
            "k": 0,
            "s": 3
          },
          "5": {
            "c": 1,
            "k": 0,
            "s": 2
          },
          "6": {
            "c": 1,
            "k": 1,
            "s": 1
          }
        }
      }
    },
    "p": 75
  },
  "score": 20
}

1 Ответ

0 голосов
/ 17 июля 2020

Вы ищете поле progress_measure, вероятно, в objectives. Их два, одно для цели и одно для общего sco:

Вы должны иметь возможность использовать cmi.objectives.n.progress_measure, чтобы получить прогресс выполнения самой цели. Есть несколько хороших примеров здесь, в этом форуме , которые могут помочь: https://community.articulate.com/discussions/articulate-storyline/how-to-manage-cmi-data-model-variables

Описание из документации данных модель :

cmi.objectives.n.progress_measure (реальный (10,7) диапазон (0..1), RW) Измерение прогресса ученика в достижении цели

Как использовать данные, хранящиеся в этом вычисляемом поле, чтобы получить% завершения:

Обратите внимание, что диапазон составляет от 0 до 1, поэтому для получения% завершения вам необходимо умножьте значение в cmi.objectives.n.progress_measure на 100, чтобы получить процент (например, 0,67 * 100 = 67%).

...