SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
파이썬으로 학생 들여다보기
박윤곤
발표자 소개
• 박윤곤
• 아이스크림에듀 / 지능정보기술연구소 (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

Más contenido relacionado

La actualidad más candente

Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴IMQA
 
스토리포인트가이드
스토리포인트가이드스토리포인트가이드
스토리포인트가이드YoungKi Hong
 
Practices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practicesPractices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practicesManning Publications
 
Mixing Analytic Workloads with Greenplum and Apache Spark
Mixing Analytic Workloads with Greenplum and Apache SparkMixing Analytic Workloads with Greenplum and Apache Spark
Mixing Analytic Workloads with Greenplum and Apache SparkVMware Tanzu
 
hive HBase Metastore - Improving Hive with a Big Data Metadata Storage
hive HBase Metastore - Improving Hive with a Big Data Metadata Storagehive HBase Metastore - Improving Hive with a Big Data Metadata Storage
hive HBase Metastore - Improving Hive with a Big Data Metadata StorageDataWorks Summit/Hadoop Summit
 
Installing Anaconda Distribution of Python
Installing Anaconda Distribution of PythonInstalling Anaconda Distribution of Python
Installing Anaconda Distribution of PythonJatin Miglani
 
Spark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesSpark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesDatabricks
 
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...aiuy
 
SchoolAdmin - School Fees Collection & Accounting Software
SchoolAdmin - School Fees Collection & Accounting SoftwareSchoolAdmin - School Fees Collection & Accounting Software
SchoolAdmin - School Fees Collection & Accounting SoftwareRanganath Shivaram
 
Python decorators
Python decoratorsPython decorators
Python decoratorsAlex Su
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
Optimizing S3 Write-heavy Spark workloads
Optimizing S3 Write-heavy Spark workloadsOptimizing S3 Write-heavy Spark workloads
Optimizing S3 Write-heavy Spark workloadsdatamantra
 
Webinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsWebinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsTodd Radel
 
Ray and Its Growing Ecosystem
Ray and Its Growing EcosystemRay and Its Growing Ecosystem
Ray and Its Growing EcosystemDatabricks
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsGabriel Moreira
 
Python Developer Roadmap 2023
Python Developer Roadmap 2023Python Developer Roadmap 2023
Python Developer Roadmap 2023Simplilearn
 
Learned Embeddings for Search and Discovery at Instacart
Learned Embeddings for  Search and Discovery at InstacartLearned Embeddings for  Search and Discovery at Instacart
Learned Embeddings for Search and Discovery at InstacartSharath Rao
 
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdfChris Hoyean Song
 
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxData
 
Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentShahar Evron
 

La actualidad más candente (20)

Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴
 
스토리포인트가이드
스토리포인트가이드스토리포인트가이드
스토리포인트가이드
 
Practices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practicesPractices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practices
 
Mixing Analytic Workloads with Greenplum and Apache Spark
Mixing Analytic Workloads with Greenplum and Apache SparkMixing Analytic Workloads with Greenplum and Apache Spark
Mixing Analytic Workloads with Greenplum and Apache Spark
 
hive HBase Metastore - Improving Hive with a Big Data Metadata Storage
hive HBase Metastore - Improving Hive with a Big Data Metadata Storagehive HBase Metastore - Improving Hive with a Big Data Metadata Storage
hive HBase Metastore - Improving Hive with a Big Data Metadata Storage
 
Installing Anaconda Distribution of Python
Installing Anaconda Distribution of PythonInstalling Anaconda Distribution of Python
Installing Anaconda Distribution of Python
 
Spark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesSpark DataFrames and ML Pipelines
Spark DataFrames and ML Pipelines
 
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
 
SchoolAdmin - School Fees Collection & Accounting Software
SchoolAdmin - School Fees Collection & Accounting SoftwareSchoolAdmin - School Fees Collection & Accounting Software
SchoolAdmin - School Fees Collection & Accounting Software
 
Python decorators
Python decoratorsPython decorators
Python decorators
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
Optimizing S3 Write-heavy Spark workloads
Optimizing S3 Write-heavy Spark workloadsOptimizing S3 Write-heavy Spark workloads
Optimizing S3 Write-heavy Spark workloads
 
Webinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsWebinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamics
 
Ray and Its Growing Ecosystem
Ray and Its Growing EcosystemRay and Its Growing Ecosystem
Ray and Its Growing Ecosystem
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender Systems
 
Python Developer Roadmap 2023
Python Developer Roadmap 2023Python Developer Roadmap 2023
Python Developer Roadmap 2023
 
Learned Embeddings for Search and Discovery at Instacart
Learned Embeddings for  Search and Discovery at InstacartLearned Embeddings for  Search and Discovery at Instacart
Learned Embeddings for Search and Discovery at Instacart
 
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf
[KR] Building modern data pipeline with Snowflake + DBT + Airflow.pdf
 
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
 
Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application Deployment
 

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

2018 06-11-active-question-answering
2018 06-11-active-question-answering2018 06-11-active-question-answering
2018 06-11-active-question-answeringWoong won Lee
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
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 Systemhoondong kim
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해용 최
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍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
 
코디네이션 검색모델
코디네이션 검색모델코디네이션 검색모델
코디네이션 검색모델Jamin Ku
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
 
집단 지성 (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 & RankingIan Choi
 
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)Sang Don Kim
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)Yungon Park
 
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진
2019 데분 세션 발표자료(커리어 변신 데이터 분석가)_박범진BeomJinPark1
 
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 SparkSangHoon Lee
 
학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기재원 최
 
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 descriptionJack Yun
 

Similar a 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
 

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