Your SlideShare is downloading. ×
0
Learning, and Forgetting (not necessarily in that order)
What is Spaced Repetition? <ul><li>Combo of two empirical phenomena: </li></ul><ul><li>Spacing Effect </li></ul><ul><li>Fo...
Spacing Effect <ul><li>Humans and animals more easily remember or learn items in a list when they are studied a few times ...
Forgetting Curve R = % Recall t  = time S  = Strength of memory
 
The Experiment <ul><li>For each time a user earns initial proficiency in an exercise, look for the first time gap in the P...
A Shameful Admission <ul><li>I discovered a bug   </li></ul>
The Result:  Evidence of a Forgetting Curve
A look at Proficiency <ul><li>Other variables that predict accuracy on review problems: </li></ul><ul><li>% correct while ...
 
 
 
 
Hey, streaks don’t seem that bad… <ul><li>~ 4 out of 5 of proficiencies are earned by students missing 2 or less problems ...
 
A Fun Simulation… <ul><li>If we assume a fixed accuracy rate, how many problems does it take a simulated learner to earn p...
Bonus:  A Quick look at “R” <ul><li># ONE-LINE TO LOAD DATA </li></ul><ul><li>df=read.csv(&quot;ftest.new.csv&quot;) </li>...
A Quick Look at “R” (cont’d) <ul><li># CREATE A LOOKUP TABLE KEYED BY EXERCISE </li></ul><ul><li>ex_names = as.vector(  by...
A Quick Look at “R” (cont’d) <ul><li># RUN STATS MODELS </li></ul><ul><li>summary( lm( correct ~ time_gap, df ) ) </li></u...
A Quick Look at “R” (cont’d) <ul><li>bucket_plot = function(x, y, q=(0:4)/5, f=mean, main=&quot;&quot;, xlab=&quot;&quot;,...
Upcoming SlideShare
Loading in...5
×

Ka tech talk

107

Published on

This is the tech talk

Published in: Education, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
107
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Ka tech talk"

  1. 1. Learning, and Forgetting (not necessarily in that order)
  2. 2. What is Spaced Repetition? <ul><li>Combo of two empirical phenomena: </li></ul><ul><li>Spacing Effect </li></ul><ul><li>Forgetting Curve </li></ul><ul><li>(cite: Herman Ebbinghaus, 1885 (!) ) </li></ul>
  3. 3. Spacing Effect <ul><li>Humans and animals more easily remember or learn items in a list when they are studied a few times over a long period of time (&quot;spaced presentation&quot;), rather than studied repeatedly in a short period time (&quot;massed presentation&quot;). </li></ul>
  4. 4. Forgetting Curve R = % Recall t = time S = Strength of memory
  5. 6. The Experiment <ul><li>For each time a user earns initial proficiency in an exercise, look for the first time gap in the ProblemLog > 24hrs. Create a data point consisting of </li></ul><ul><li>(time_gap, next_problem_correct) </li></ul>
  6. 7. A Shameful Admission <ul><li>I discovered a bug  </li></ul>
  7. 8. The Result: Evidence of a Forgetting Curve
  8. 9. A look at Proficiency <ul><li>Other variables that predict accuracy on review problems: </li></ul><ul><li>% correct while earning proficiency </li></ul><ul><li># incorrect while earning proficiency </li></ul><ul><li>difficulty of the problem </li></ul>
  9. 14. Hey, streaks don’t seem that bad… <ul><li>~ 4 out of 5 of proficiencies are earned by students missing 2 or less problems </li></ul><ul><li>This data set only includes users who “review” </li></ul><ul><li>Small differences in mastery may be cumulative </li></ul><ul><li>And if we look at the harder half of modules and accuracy after 30 days, we get: </li></ul>
  10. 16. A Fun Simulation… <ul><li>If we assume a fixed accuracy rate, how many problems does it take a simulated learner to earn proficiency? </li></ul>accuracy mean median 0.95 13.4 10.0 0.9 18.5 15.0 0.85 26.9 21.0 0.8 41.7 31.0 0.75 66.8 49.0 0.7 114.5 81.0 0.65 209.5 148.0 0.6 412.4 290.0
  11. 17. Bonus: A Quick look at “R” <ul><li># ONE-LINE TO LOAD DATA </li></ul><ul><li>df=read.csv(&quot;ftest.new.csv&quot;) </li></ul><ul><li># CREATE DERIVED COLUMNS EASILY </li></ul><ul><li>df$num_missed = df$num_done - df$num_correct </li></ul><ul><li>df$pct_correct = df$num_correct/df$num_done </li></ul><ul><li># FILTER DATA AS DESIRED </li></ul><ul><li>df=df[!is.na(df$pct_correct),] </li></ul><ul><li>df = df[ df$time_gap >= 7, ] </li></ul>
  12. 18. A Quick Look at “R” (cont’d) <ul><li># CREATE A LOOKUP TABLE KEYED BY EXERCISE </li></ul><ul><li>ex_names = as.vector( by(df$exercise,df$exercise,function (v) as.character(v[1])) ) </li></ul><ul><li>exs = data.frame( exercise=ex_names ) </li></ul><ul><li>exs$num_users = as.vector( by(df$user, df$exercise, length) ) </li></ul><ul><li>exs$num_prof = as.vector( by(df$proficient, df$exercise, sum) ) </li></ul><ul><li>exs$pct_prof = exs$num_prof / exs$num_users </li></ul><ul><li># PRINT THE LOOKUP TABLE IN A SORTED ORDER </li></ul><ul><li>exs[ with( exs, order(-num_users) ), c(&quot;exercise&quot;, &quot;num_users&quot;) ] </li></ul><ul><li># APPEND A COLUMN TO THE MAIN df WITH A 'JOIN' </li></ul><ul><li>df$ex_pct_prof = exs[ match( df$exercise, exs$exercise ), &quot;pct_prof&quot; ] </li></ul>
  13. 19. A Quick Look at “R” (cont’d) <ul><li># RUN STATS MODELS </li></ul><ul><li>summary( lm( correct ~ time_gap, df ) ) </li></ul><ul><li># CREATE PLOTS </li></ul><ul><li>bucket_plot ( df$time_gap, df$correct, (0:24)/25 ) </li></ul><ul><li>bucket_plot ( df$ex_pct_prof, df$correct, (0:24)/25 ) </li></ul>
  14. 20. A Quick Look at “R” (cont’d) <ul><li>bucket_plot = function(x, y, q=(0:4)/5, f=mean, main=&quot;&quot;, xlab=&quot;&quot;, ylab=&quot;&quot;) </li></ul><ul><li>{ </li></ul><ul><li>cutoffs = quantile(x, q) </li></ul><ul><li>buckets = findInterval(x, cutoffs) </li></ul><ul><li>x2 = by(x, buckets, f) </li></ul><ul><li>y2 = by(y, buckets, f) </li></ul><ul><li>plot(x2, y2, main=main, xlab=xlab, ylab=ylab) </li></ul><ul><li>} </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×