Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Successfully reported this slideshow.

Like this presentation? Why not share!

- AI and Machine Learning Demystified... by Carol Smith 2272114 views
- The AI Rush by Jean-Baptiste Dumont 617770 views
- 10 facts about jobs in the future by Pew Research Cent... 360234 views
- 2017 holiday survey: An annual anal... by Deloitte United S... 590915 views
- Harry Surden - Artificial Intellige... by Harry Surden 315544 views
- Inside Google's Numbers in 2017 by Rand Fishkin 867668 views

1,443 views

Published on

Published in:
Technology

License: CC Attribution License

No Downloads

Total views

1,443

On SlideShare

0

From Embeds

0

Number of Embeds

699

Shares

0

Downloads

8

Comments

0

Likes

2

No embeds

No notes for slide

- 1. An interactive e-learning platform for Data Analysis based on R
- 2. Martijn Theuwissen Dieter De Mesmaeker Jonathan Cornelissen Who we are! Jonathan@datamind.org Dieter@datamind.org Martijn@datamind.org
- 3. You might know some of our side-projects! www.Rdocumentation.org! • Easily find and browse R documentation! • Comment & discuss! • Future features! • View package popularity and rankings! • Soon open-sourced!! www.R-fiddle.org! • Test and share R code in your browser! • Quickly share the results without needing scrap projects or files! • Discussion area! • Embed in your website or blog!!
- 4. Main takeaway!
- 5. 1. Motivation: Why e-learning with and for R? 2. Learner experience 3. Technical overview 4. Course creators experience on DataMind 1. Web interface 2. R interface 5. Submission Correctness Tests (examples) 6. Questions and answers?
- 6. Why e-learning with and for R? Need for scalable tools to learn R and Data Analysis…
- 7. Because of exponentially growing R user base More than 2 million R users growing at 40-60% yearly Source: http://r4stats.com/articles/popularity/ and http://prezi.com/s1qrgfm9ko4i/the-r-ecosystem/
- 8. Source: http://r4stats.com/articles/popularity/ 6,275 R packages at all major repositories, 4,315 of which were at CRAN Across a broad spectrum of domains: Financial engineering, biostatistics, data mining, … Because of the exponentially growing functionality
- 9. Keyword Competition Global2Monthly2Searches r"tutorial 0 6600 introduction"to"r 0 1600 online"statistics"course 0.98 1600 ggplot2"tutorial 0 880 statistics"course 0.85 880 an"introduction"to"r 0.01 880 r"book 0.06 590 learning"statistics 0.38 590 r"tutorials 0 590 r"introduction 0.01 480 statistics"courses 0.84 480 statistics"introduction 0.1 480 online"statistics"courses 0.99 320 r"course 0.04 260 r"training 0.17 260 free"online"statistics"course 0.56 260 statistics"training 0.62 210 online"statistics"class 0.98 170 statistics"class"online 0.98 140 data"analysis"tutorial 0.5 110 Analysis of r-project.org Analysis of Google keywords Compare to: SAS tutorial: 4400 Eviews tutorial: 390 Stata tutorial: 1900 Matlab tutorial: 22200 Hadoop tutorial: 12100 Source: Analysis based on http://cran.r-project.org/report_cran.html Source: Analysis based on http://adwords.google.com/select/ keywordtoolexternal That needs to learn the basics and the specifics of R • Number of downloads per month for: • Introduction to R pdfs: 140.000 • Summary pdfs: 50.000
- 10. Why e-learning with and for R?
- 11. • Great books, tutorials,… on R • But coding is learned by doing • No online learning interface for R • Documentation made by experts for experts, not for beginners or intermediate users Learners : Students, Professionals, Researchers, Employees Why e-learning with and for R?
- 12. • Great books, tutorials,… on R • But coding is learned by doing • No online learning interface for R • Documentation made by experts for experts, not for beginners or intermediate users Teachers : Learners : • Often give the same or similar feedback to students in exercise sessions • Manually correct assignments • Static content • Hard to get feedback Students, Professionals, Researchers, Employees Why e-learning with and for R? Data Analysis Professors, Consultants, Researchers, Book authors
- 13. Inspired by other learning-by-doing platforms… This time for R! www.codecademy.com www.codeschool.com tryR.codeschool.com
- 14. Benefits for students of learning R online 1. Everything in one place: assignments, sample code, R-console, … 2. Lowering the barrier: start right-away with R, no installation, version problems, .. since R runs in the background on our servers 3. Automated correction and feedback through Submission Correctness Tests (SCT) 4. Gamification more fun while learning
- 15. LIVE DEMO Surf to http://www.datamind.org
- 16. Technical overview DataMind IT architecture
- 17. R Open-source statistical language DataMind leverages state of the art open- source frameworks in the cloud • Scaling • Automated • Affordable
- 18. • Scalable • Plug & Play • Easy Rserve Ruby on Rails High productivity web application framework Node.js Platform for real- time scalable network applications R Open-source statistical language DataMind leverages state of the art open- source frameworks in the cloud
- 19. WebSockets AJAX requests Rserve Ruby on Rails High productivity web application framework Node.js Platform for real- time scalable network applications RESTful API R Open-source statistical language Angular.js MVC JavaScript framework for single- page applications, maintained by Google DataMind leverages state of the art open- source frameworks in the cloud
- 20. Rserve: Communication with R • Package of Simon Urbanek • Manages sessions and workspaces • Binary communication • Emulate console with capture.output() • Detect incomplete statements with parse() • Catch and print errors
- 21. RAppArmor: Security • Evaluation of external code è Huge security risk • Solution: • Limited access to OS • RAppArmor • Package of Jeroen Ooms • R-interface to OS Security • Limit CPU, Memory, Spawned processes
- 22. Course creators experience on DataMind How to create your own course? STEP 1: The elements of an interactive exercise STEP 2: Using the web or R interface to create an exercise STEP 3: Explaining interactivity
- 23. STEP 1: The elements of an interactive exercise 1. Write your assignment Write the assignment for your exercise
- 24. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions Provide instructions to student
- 25. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions 3. Provide sample code Provide sample code to help student getting started
- 26. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions 3. Provide sample code Pre-exercise code is run in the background to pre- load a dataset, graphs, etc.
- 27. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions 3. Provide sample code 4. Provide sample solution Provide help with a sample solution
- 28. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions 3. Provide sample code 4. Provide sample solution 5. Write your submission correctness test Write Submission Correctness Test in R that checks student input and returns feedback
- 29. STEP 1: The elements of an interactive exercise 1. Write your assignment 2. Write your instructions 3. Provide sample code 4. Provide sample solution 5. Write your submission correctness test
- 30. STEP 2: Using the web or R interface to create an exercise Datamind R Package to create your own courses: • www.datamind.org/#/CC/help • https://github.com/jonathancornelissen/ datamind Web Interface to create your own courses: • www.datamind.org/#/dashboard LIVE DEMO
- 31. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package
- 32. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package 2. Author a course
- 33. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package 2. Author a course 3. Preview your chapter locally
- 34. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package 2. Author a course 3. Preview your chapter locally 4. Log in to DataMind.org
- 35. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package 2. Author a course 3. Preview your chapter locally 4. Log in to DataMind.org 5. Upload a chapter to DataMind
- 36. STEP 2: Using R Markdown and the datamind Package 1. Install the datamind R package 2. Author a course 3. Preview your chapter locally 4. Log in to DataMind.org 5. Upload a chapter to DataMind 6. Share the love Special thanks to Ramnath Vaidyanathan Author of Slidify Package
- 37. Submission Correctness Tests STEP 3: Explaining Interactivity
- 38. Submission Correctness Tests (SCT) A Submission Correctness Test checks the input from a student and returns (i) whether the student’s input was correct and (ii) feedback to student. • These tests are written in R • Should be easy for a course creator -> started developing a datamind R package to aid course creators to write simple tests* *h$ps://github.com/jonathancornelissen/datamind "Mistakes are not errors but partially correct solutions with underlying logic." STEP 3: Explaining Interactivity
- 39. 1. Assignment to student: x should be 5 2. Student types: x <- 4 3. Submission Correctness Test: if( x == 5 ){ DM.result <- list(TRUE, “Well done, you genius!”) }else{ DM.result <- list(FALSE, “Please assign 5 to x”) } 4. Output to student “Please assign 5 to x” A Simple Submission Correctness Tests (SCT) STEP 3: Explaining Interactivity
- 40. 1. Assignment to student: x should be 5 2. Student types: x <- 5 3. Submission Correctness Test: if( x == 5 ){ DM.result <- list(TRUE, “Well done, you genius!”) }else{ DM.result <- list(FALSE, “Please assign 5 to x”) } 4. Output to student “Well done, you genius!” A Simple Submission Correctness Tests (SCT) STEP 3: Explaining Interactivity
- 41. • Everything in the student’s workspace • DM.user.code all code written by student • DM.console.output everything printed to user console INPUT Automated exercise correction with SCT Assignment to the student: Print a matrix with 3 rows containing the numbers 1 up to 9 If Student does this correctly then: DM.console.ouput contains [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 STEP 3: Explaining Interactivity
- 42. • Everything in the student’s workspace • DM.user.code all code written by student • DM.console.output everything printed to user console INPUT Automated exercise correction with SCT Assignment to the student: Print a matrix with 3 rows containing the numbers 1 up to 9 If Student does this correctly then: DM.console.ouput contains [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 STEP 3: Explaining Interactivity Submission Correctness Test written by course creator (potentially using datamind package) DM.result <- output_contains("matrix(1:9, byrow=TRUE, nrow=3)”)
- 43. • Everything in the student’s workspace • DM.user.code all code written by student • DM.console.output everything printed to user console INPUT Automated exercise correction with SCT Assignment to the student: Print a matrix with 3 rows containing the numbers 1 up to 9 If Student does this correctly then: DM.console.ouput contains [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 STEP 3: Explaining Interactivity Submission Correctness Test written by course creator (potentially using DM package) DM.result <- output_contains("matrix(1:9, byrow=TRUE, nrow=3)”) • Assigned to variable DM.result • List with two elements 1. TRUE / FALSE 2. Message to provide to student with feedback DM.result is shown to student OUTPUT
- 44. STEP 3: Explaining Interactivity Has the student estimated a certain model correctly? Generated a transformed time series that fulfills certain conditions? Generated a certain type of graph ? Forecasted a metric of interest within certain bounds? … SCT enable wide variety of options
- 45. Main takeaway! Become a course creator:info@DataMind.org
- 46. Q&AQuestions and Answers

No public clipboards found for this slide

Be the first to comment