티스토리 뷰
지난 시간에 이어서 SCORM의 CMI 데이터 모델에 대한 정리를 마무리 하도록 하겠습니다.
11. Learner ID
cmi.learner_id
SCO를 사용하는 학습자의 아이디 또는 구분자
GetValue
미니주석) 보통 LMS에 로그인 할 때 사용하는 ID가 있습니다. 그걸 의미한다고 보시면 됩니다.
12. Learner Name
cmi.learner_name
SCO를 사용하는 학습자의 이름
GetValue
미니주석) 역시 LMS에서 사용하는 학습자의 이름입니다. learner_id나 learner_name은 사용자가 설정할 수 없습니다. 즉, SetValue를 지원하지 않는 것이죠..
13. Learner Preference
cmi.learner_preference._children
cmi.learner_preference 데이터모델에서 지원하는 자식 엘리먼트의 리스트를 의미합니다.
GetValue
미니주석) learner_preference란 학습자의 성향이나 선호도라고 생각하시면 될 것 같습니다. audio나 언어 관련 정보를 지정합니다.
cmi.learner_preference.audio_level
학습자가 음성 볼륨 조절과 관련된 단계를 설정.
GetValue, SetValue
미니주석) 0 이상의 값을 가질 수 있습니다. 일반적으로 볼륨 조절이라고 생각하시면 되구요.. 1이 기본값입니다.
cmi.learner_preference.language
학습자가 선호하는 언어를 나타냄
GetValue, SetValue
cmi.learner_preference.delivery_speed
콘텐츠에 대한 속도 조절입니다. 2배 빠르게 혹은 2배 느리게.. 등으로 설정할 수 있습니다.
GetValue, SetValue
cmi.learner_preference.audio_captioning
음성에 대한 자막을 보여줄지 여부를 나타냄
GetValue, SetValue
다음과 같은 값들이 가능합니다.
"off", "no_change", "on" 각각 "-1", "0", "1"로 지정합니다.
미니주석) 실제로 learner_preference를 이용해서 볼륨조절이나 자막 보여주기, 속도조절을 적용하지는 않고 있습니다.
대부분 걍 콘텐츠 내부에서 사용자가 조절 할 수 있도록 구성하고 있지요~
어쨌든 SCORM에서는 이런 식으로 적용할 수도 있다는 것입니다. 참고하세요 ^^
14. Location
cmi.location
현재 학습하고 있는 SCO의 위치.
SCO는 여러개의 파일로 이루어 질 수 있습니다. 이런 경우, SCO내의 북마크로 활용될 수도 있습니다.
GetValue, SetValue
미니주석) location은 SCO에 대한 학습이 종료될 때. 즉, terminate()가 호출될 때 기본적으로 저장합니다.
북마크 기능이 필요했던 SCORM 1.2에서는 SCO가 초기화 할 때 이 location을 가져와서 해당 위치로 이동하기도 했었습니다.
15. Maximum Time Allowed
cmi.max_time_allowed
해당 SCO를 최대한 학습할 수 있는 시간.
GetValue
미니주석) imsmanifest.xml 파일에서 이 부분에 대한 값을 미리 설정해 둡니다. 그러면 CMI 데이터 모델에 있는 time_limit_action에 의해 학습시간이 초과되었을 경우, 처리하는 방식을 결정하게 됩니다.
제 생각에 원래 시험과 같이 주어진 시간 내에서 처리해야 하는 경우를 위해 만들어진 것이라고 보는데요..
실제 프로젝트에서는 지정된 시간 이상 학습하기를 원하는 요청이 많이 있어.. 꼼수로 이걸 이용하기도 했었습니다.
16. Mode
cmi.mode
학습자가 SCO를 어떤 형태로 학습하는지 결정하는 모드.
GetValue, Sequencing impacts
미니주석) mode는 다음 세가지 값을 가질 수 있습니다. "browse", "normal", "review"
실제 프로젝트에서는 "browse"는 관리자나 선생님이 SCO에 들어올 때 처리했었습니다. 이것은 학습진도를 체크하지 않고 관람자 모드이기 때문입니다.
"normal"이 일반적으로 학생들이 들어와서 학습하고, 학습추적 데이터를 저장할 때 사용했구요..
"review"는 학습이 완료된 상태에서 복습하기 위해 들어온 경우 처리했었습니다.
아마 스펙에 나와 있는 내용과도 일치할 거라구 생각하네요.. ^^
17. Objectives
학습목표라고 생각하면 됩니다. 보통 학습의 완료여부와 함께.. pass와 fail을 결정하기도 합니다.
시퀀싱을 활용하는데 있어 중요한 요소로 활용합니다.
cmi.objectives._children
cmi.objectives 데이터 모델에서 지원하는 자식 엘리먼트 리스트
GetValue
cmi.objectives._count
학습목표(objective)의 전체 개수.
GetValue
cmi.objectives.n.id
n번째 학습목표에 대한 구분자
GetValue
cmi.objectives.n.score._children
cmi.objectives.n.score 데이터 모델에서 지원하느 자식 엘리먼트 리스트
GetValue
cmi.objectives.n.score.scaled
n번째 학습목표에 대한 학습자의 점수를 비율로 적용한 값. -1 ~ 1 사이의 값.
GetValue, SetValue, Sequencing Impacts
미니주석) 시퀀싱에서 보면 Objective Measure Status / Objective Normalized Measure 라는 값이 있습니다.
이 값이 score.scaled와 연관이 되어 있다고 보시면 됩니다.
즉, score.scaled 가 설정되어 있지 않으면 Objective Measure Status는 false가 됩니다.
반면에 score.scaled가 설정되어 있으면 Objective Measure Status는 true가 되고, Objective Normalized Measure값은 score.scaled가 됩니다.
이 값을 이용해서 시퀀싱을 처리하게 됩니다.
cmi.objectives.n.score.raw
n번째 학습목표에 대한 학습자의 실제 점수
GetValue, SetValue
cmi.objectives.n.score.min
n번째 학습목표에 대한 가능한 최소 점수
cmi.objectives.n.score.max
n번째 학습목표에 대한 가능한 최대 점수
미니주석) 특정 학습목표가 존재할 경우, 이 값을 활용하게 됩니다. 그냥 해당 SCO에 대한 학습 결과는 cmi.score에 저장합니다.
cmi.objectives.n.success_status
n번째 학습목표에 대한 pass 여부입니다. ("passed", "failed", "unknown"의 값을 가집니다.)
GetValue, SetValue, Sequencing Impacts
cmi.objectives.n.completion_status
n번째 학습목표에 대한 완료 여부입니다. ("completed", "incomplete", "not_attempted", "unknown"의 값을 가집니다.)
GetValue, SetValue
cmi.objectives.n.progress_measure
n번째 학습목표에 대한 진행정도를 나타냅니다.
GetValue, SetValue
cmi.objectives.n.description
n번째 학습목표에 대한 설명.
GetValue, SetValue
18. Progress Measure
cmi.progress_measure
학습자의 학습진행 정도를 0 ~ 1 사이의 값으로 표시
0 : "not attempted", 1: "completed", 0 < n < 1 : "imcomplete"
GetValue, SetValue, Sequencing Impacts
19. Scaled Passing Score
cmi.scaled_passing_score
SCO를 master하기 위해 요구되는 Pass 점수. -1.0 ~ 1.0 사이의 값으로 표시
GetValue
미니주석) cmi.completion_threshold와 cmi.scaled_passing_score를 구분하셔야 합니다.
전자는 SCO를 완료(complete)하기 위한 조건이고, 후자는 SCO를 마스터(master)하기 위한 조건입니다.
일반적으로 complete는 학습완료라고 보시면 되구요.. master는 pass/fail에서 pass라고 보는 것이 맞을 듯 합니다.
20. Score
cmi.objectives에서 살펴본 내용과 크게 다르지 않습니다.
다만, 특정 학습목표가 아니라 SCO 전체에 대한 점수라고 생각하시면 됩니다.
cmi.score._children
cmi.score 데이터 모델에서 지원하느 자식 엘리먼트 리스트
GetValue
cmi.score.scaled
SCO에 대한 학습자의 점수를 비율로 적용한 값. -1 ~ 1 사이의 값.
GetValue, SetValue, Sequencing Impacts
cmi.score.raw
SCO에 대한 학습자의 실제 점수
GetValue, SetValue
cmi.score.min
SCO에 대한 가능한 최소 점수
cmi.score.max
SCO에 대한 가능한 최대 점수
21. Session Time
cmi.session_time
현재 세션에서 해당 SCO를 학습한 시간.
SetValue
미니주석) 해당 SCO에 대한 총 학습시간은 cmi.total_time에 저장됩니다.
22. Success_status
cmi.success_status
학습자가 SCO를 마스터(master) 했는지 여부. "passed", "failed", "unknown" 값 중의 하나.
GetValue, SetValue, Sequencing Impacts
미니주석) cmi.completetion_status와 구분하시기 바랍니다. 학습완료(complete)는 했으나 마스터(master)하지 못하는 경우도 있습니다.
Scaled Passing Score, Scaled Score, Success Satus를 이용해 값을 결정합니다.
Completion Threshold, Progress Measure, Completion Status를 이용해 complete 여부를 결정했었죠..
23. Suspend Data
cmi.suspend_data
cmi.exit로 빠져나깔 때, 잠시 중지(suspend)하는 경우가 있습니다. 이 경우, 다시 돌아왔을 때 전에 사용하던 데이터를 유지할 필요가 있을 수 있습니다.
그럴 때 suspend_data를 이용해 정보를 저장해 두면 된다고 하네요~~
SetValue
24. Time Limit Action
cmi.time_limit_action
cmi.max_time_allowed가 초과되었을 때 SCO가 처리해야 하는 방식을 나타냄.
"exit_message" : 메시지를 보여주고 종료
"continue_message" : 메시지를 보여주고 계속 진행
"exit_no_message" : 메시지 보여주지 않고 종료
"continue_no_message" : 메시지 보여주지 않고 계속 진행
GetValue
25. Total Time
cmi.total_time
학습자가 SCO를 학습한 총 시간.
GetValue
미니주석) 기본적으로 total time과 같이 시간간격을 표현하는 형식은 다음과 같습니다.
P[yY][mM][dD][T[hH][mM][s[.s]S]]
예를 들어, P1Y3M2DT3H 는 1년 3개월 2일 3시간을 나타냅니다.
이상으로 SCORM 2004의 CMI 데이터 모델에 대한 정의를 마무리 했습니다.
다음 주에는 마지막으로 SCORM 2004의 시퀀싱에 대해 알아보려고 합니다.
그럼.. 좋은 하루 되세요~~ 2007. 4. 11 From 미니...
'XML Developer > SCORM' 카테고리의 다른 글
8. SCORM 콘텐츠 패키징 절차에 대한 생각.. (5) | 2007.11.07 |
---|---|
6. SCOM CMI 데이터 모델 첫번째 (0) | 2007.03.28 |
5. SCORM RTE(Run-Time Environment) #2 (0) | 2007.03.21 |
4. SCORM RTE(Run-Time Environment) #1 (0) | 2007.01.25 |
3. 콘텐츠 통합 모델 (Contents Aggregation Model) (1) | 2006.11.27 |