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

More Related Content

PPTX
認証サービスへのWebAuthnの導入
PDF
우아한 모노리스
PDF
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
PDF
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
PDF
FIDO認証によるパスワードレスログイン実装入門
PDF
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
PDF
카카오톡의 서버사이드 코틀린
PPTX
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
認証サービスへのWebAuthnの導入
우아한 모노리스
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
FIDO認証によるパスワードレスログイン実装入門
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
카카오톡의 서버사이드 코틀린
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi

What's hot (20)

PDF
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
PDF
코드 생성을 사용해 개발 속도 높이기 NDC2011
PDF
눈으로 듣는 음악 추천 시스템
PDF
추천시스템 이제는 돈이 되어야 한다.
PDF
認証の課題とID連携の実装 〜ハンズオン〜
PDF
Webアプリでパスワード保護はどこまでやればいいか
PDF
카카오톡으로 여친 만들기 2013.06.29
PDF
[236] 카카오의데이터파이프라인 윤도영
PDF
개발자를 위한 (블로그) 글쓰기 intro
PDF
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SiZoAH] : 리뷰 기반 의류 사이즈 추천시스템
PPTX
最近のやられアプリを試してみた
PDF
萬事萬物皆是 LOG - 系統架構也來點科普
PPTX
Data pipeline and data lake
PDF
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
PDF
Data Science. Intro
PDF
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
PDF
Python 테스트 시작하기
PDF
ID連携における仮名
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
코드 생성을 사용해 개발 속도 높이기 NDC2011
눈으로 듣는 음악 추천 시스템
추천시스템 이제는 돈이 되어야 한다.
認証の課題とID連携の実装 〜ハンズオン〜
Webアプリでパスワード保護はどこまでやればいいか
카카오톡으로 여친 만들기 2013.06.29
[236] 카카오의데이터파이프라인 윤도영
개발자를 위한 (블로그) 글쓰기 intro
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SiZoAH] : 리뷰 기반 의류 사이즈 추천시스템
最近のやられアプリを試してみた
萬事萬物皆是 LOG - 系統架構也來點科普
Data pipeline and data lake
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
Data Science. Intro
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
Python 테스트 시작하기
ID連携における仮名
Ad

Similar to PyCon Korea 2018 - 파이썬으로 학생 들여다보기 (20)

PDF
파이썬으로 익히는 딥러닝
PDF
파이썬 데이터 분석 (18년)
PDF
1.introduction
PPTX
1.introduction(epoch#2)
PPTX
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
PDF
1.Introduction to Python and TensorFlow
PPTX
Nlp study1
PDF
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
PPTX
문과생 대상 파이썬을 활용한 데이터 분석 강의
PPTX
Python
 
PDF
R을 이용한 데이터 분석
PPTX
Matplotlib 기초 이해하기_20160730
PDF
Light Tutorial Python
PDF
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
PPTX
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
PPTX
Python 활용: 이미지 처리와 데이터 분석
PPTX
Python data analysis library
PDF
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
PPTX
[자바카페] 람다 일괄처리 계층
PDF
Python MySQL을 활용한 대용량 데이터 수집
파이썬으로 익히는 딥러닝
파이썬 데이터 분석 (18년)
1.introduction
1.introduction(epoch#2)
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
1.Introduction to Python and TensorFlow
Nlp study1
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
문과생 대상 파이썬을 활용한 데이터 분석 강의
Python
 
R을 이용한 데이터 분석
Matplotlib 기초 이해하기_20160730
Light Tutorial Python
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
Python 활용: 이미지 처리와 데이터 분석
Python data analysis library
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
[자바카페] 람다 일괄처리 계층
Python MySQL을 활용한 대용량 데이터 수집
Ad

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