Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PyCon Korea 2018 - 파이썬으로 학생 들여다보기

274 views

Published on

학습 분석을 위해 데이터를 구조화 하려는 시도를 먼저 다루고, 파이썬으로 이들 데이터를 어떻게 생성하는지를 다룰 예정입니다.

Published in: Software
  • Be the first to comment

  • Be the first to like this

PyCon Korea 2018 - 파이썬으로 학생 들여다보기

  1. 1. 파이썬으로 학생 들여다보기 박윤곤
  2. 2. 발표자 소개 • 박윤곤 • 아이스크림에듀 / 지능정보기술연구소 (2018.1 ~ 현재)
  3. 3. 목차 • 학습 데이터를 구조화 하려는 시도 • 학습 데이터 저장하기 • 학습 데이터 분석하기 • Q&A
  4. 4. 학습 데이터를 구조화 하려는 시도
  5. 5. 일반적인 학습 활동 …강의 조별 활동 평가 숙제
  6. 6. 온라인 학습에서는? 동영상 강의 질문 (커뮤니티) 평가 숙제 …
  7. 7. 학습 과정에서 발생하는 의문들 강의를 들을 때 처음부터 쭉 듣나? 아니면 건너뛰면서 듣나? 숙제를 내면 바로 제출할까? 아니면 미뤘다가 할까? 시험 문제를 풀 때 고민할까? 아니면 그냥 찍을까? 수업과 관련해서 어떤 질문이 주로 올라올까?
  8. 8. But, 텍스트 JSON CSV … A B C A B D RDB
  9. 9. 일관성 있게 데이터를 저장하고 분석할 방법은 없을까요? 학생 우리 반 우리 학교우리 학년
  10. 10. 학습 데이터를 구조화 하려는 시도 • xAPI(Experience API, a.k.a Tin Can API) • ADL(Advanced Distributed Learning) • 2013년에 1.0.0 버전 릴리즈 • 현재 최신 버전의 스펙은 1.0.3 (참조) • Caliper Analytics • IMS Global • 2015년 1.0 버전 릴리즈 • 현재 최신 버전의 스펙은 1.1 (참조)
  11. 11. 데이터 구조 Actor Verb Object ID Stored … Actor Action Object ID EventTime …Type xAPI - Statement Caliper - Event
  12. 12. xAPI vs. Caliper - 공통점/차이점 • 공통점 • JSON을 기반으로 한 데이터 • 차이점 • 필수 속성의 차이: S+V+O vs. S+V+O+Type+ID+EventTime • 학습 유형에 대한 용어가 구체적으로 정의되어 있음: Caliper > xAPI • 데이터 구성의 유연성: xAPI > Caliper
  13. 13. 표준화된 데이터 구조의 장점? • 데이터 설계에 들어가는 시간을 줄일 수 있습니다. • 표준화된 데이터를 수집/분석하는 툴을 필요에 따라 쓸 수 있습니다. • 예 1) Learning Locker (xAPI) • 예 2) OpenLRW, OpenDashboard (Caliper) • 데이터 수집/분석에 필요한 도구를 직접 개발하고 배포할 수 있습니다.
  14. 14. 사용 사례 • xAPI (https://xapi.com/adopters/) • Adobe (Captivate) • Blackboard • Caliper (https://www.imsglobal.org/cc/statuschart/caliper-analytics) • Blackboard • Canvas
  15. 15. 사용 사례 • Caliper 데이터를 홈런 서비스에 적용해 보았더니… <3월> 1일 3~4백만 건 1GB 이상 (평일 기준) <7월> 1일 5백만 건 이상 약 2GB (평일 기준)
  16. 16. xAPI와 Caliper는 학습 데이터를 구성하는 방법을 제시합니다. 생성한 데이터의 분석은 서비스 제공자의 몫입니다.
  17. 17. 학습 데이터 저장하기
  18. 18. xAPI와 Caliper를 지원하는 라이브러리 Java JavaScript Ruby Python .NET PHP Java JavaScript Objective-C PHP Python .NET xAPI Caliper
  19. 19. Tin Can Python (xAPI) 설치 • 설치 과정 • 하지만, Python 2.7 버전만 지원합니다. • 3년 전이 마지막 업데이트입니다. $ pip install tincan
  20. 20. Caliper Python 설치 • 설치 과정 • Python 3.x, 2.7 버전을 지원합니다. • PyPI에 등록되어 있지 않아 수동으로 설치해야 합니다. $ git clone https://github.com/IMSGlobal/caliper-python.git $ pip install -e caliper-python
  21. 21. 파이썬으로 학습 데이터 생성하기 • xAPI – Actor actor.to_json()
  22. 22. 파이썬으로 학습 데이터 생성하기 • xAPI – Verb verb.to_json()
  23. 23. 파이썬으로 학습 데이터 생성하기 • xAPI – Object obj.to_json()
  24. 24. 파이썬으로 학습 데이터 생성하기 • xAPI – Statement
  25. 25. 파이썬으로 학습 데이터 생성하기
  26. 26. 파이썬으로 학습 데이터 생성하기 • Caliper – Actor actor.as_json( thin_context=True, thin_props=True )
  27. 27. 파이썬으로 학습 데이터 생성하기 • Caliper – Action
  28. 28. 파이썬으로 학습 데이터 생성하기 • Caliper – Object obj.as_json( thin_context=True, thin_props=True )
  29. 29. 파이썬으로 학습 데이터 생성하기 • Caliper – Event
  30. 30. 파이썬으로 학습 데이터 생성하기
  31. 31. 간단한 예제를 만들어 봅시다. • Flask + MongoDB + Caliper • Flask – 학습 활동, 학습 데이터 수신 지점 구현 • MongoDB – 학습 데이터 저장 (Learning Record Store) • Python에서 MongoDB를 사용하려면? PyMongo, MongoEngine, … • Caliper – 학습 활동 데이터를 구성 • 예제 소스 • https://github.com/rubysoho07/learning-analytics-example
  32. 32. 그냥 RDB에 저장하고 분석하면 안 되나요? • RDB에서 데이터 저장 및 분석을 못 하는 건 아닙니다. • 하지만, • 요구사항의 변경 = 수집하는 데이터의 구조 변화 (자주 일어납니다!) • 이러한 상황에 유연하게 대처하기 위해 MongoDB를 사용하였습니다.
  33. 33. 학습 데이터 수신/저장 기능 만들기
  34. 34. 학습 데이터 Sensor 만들기
  35. 35. 구성된 시스템 Flask Application MongoDB SensorBackend Event Endpoint POST
  36. 36. 로그인/로그아웃
  37. 37. 로그인/로그아웃 (계속)
  38. 38. 학습 활동 수행 – 로그인/로그아웃 클릭! 클릭!
  39. 39. 읽기자료로 이동
  40. 40. 읽기자료로 이동
  41. 41. 학습 활동 수행 – 읽기 자료로 이동 클릭!
  42. 42. 학습 활동 수행 – 읽기 자료로 이동
  43. 43. 읽기자료에 태그 달기
  44. 44. 읽기자료에 태그 달기
  45. 45. 학습 활동 수행 – 태그 달기 입력 후 클릭!
  46. 46. 학습 활동 수행 – 태그 달기
  47. 47. 평가 시작
  48. 48. 평가 시작
  49. 49. 학습 활동 수행 – 평가 시작 클릭!
  50. 50. 학습 활동 수행 – 평가 시작
  51. 51. 평가 제출
  52. 52. 평가 제출
  53. 53. 학습 활동 수행 – 평가 제출 선택 후 클릭!
  54. 54. 학습 활동 수행 – 평가 제출
  55. 55. 데이터 쌓이는 상황 확인
  56. 56. 학습 데이터 분석하기
  57. 57. 오늘의 타임라인
  58. 58. 오늘의 타임라인
  59. 59. 오늘의 타임라인
  60. 60. 동일 시험 응시자 성적 평균 구하기 (나의 성적)
  61. 61. 동일 시험 응시자 성적 평균 구하기
  62. 62. 동일 시험 응시자 성적 비교
  63. 63. Q&A
  64. 64. 다음 단계가 궁금하신가요? 아이스크림에듀 지능정보기술연구소는 다음 단계를 함께 만들 분을 찾고 있습니다! hahafree12@gmail.com / rubysoho07

×