SlideShare a Scribd company logo
파이썬으로 학생 들여다보기
박윤곤
발표자 소개
• 박윤곤
• 아이스크림에듀 / 지능정보기술연구소 (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

What's hot

patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
hyeongchae lee
 

What's hot (20)

알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
 
Pycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last SamuraiPycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last Samurai
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
Apache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data FrameworkApache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data Framework
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
 
강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
Connect Bigquery with python
Connect Bigquery with pythonConnect Bigquery with python
Connect Bigquery with python
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
Dask: Scaling Python
Dask: Scaling PythonDask: Scaling Python
Dask: Scaling Python
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 

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

함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
QooJuice
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Joongi Kim
 
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)
Sang Don Kim
 
2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence 2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence
Jong MIn Yu
 
Ybigta study description
Ybigta study descriptionYbigta study description
Ybigta study description
Jack Yun
 

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

2018 06-11-active-question-answering
2018 06-11-active-question-answering2018 06-11-active-question-answering
2018 06-11-active-question-answering
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해
 
20160126_python
20160126_python20160126_python
20160126_python
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
코디네이션 검색모델
코디네이션 검색모델코디네이션 검색모델
코디네이션 검색모델
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
 
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)
 
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With Spark
 
학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기
 
2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence 2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence
 
Ybigta study description
Ybigta study descriptionYbigta study description
Ybigta study description
 

Recently uploaded

INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
ahghwo99
 
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
cho9759
 

Recently uploaded (7)

인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 

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