functional programming for all!€¦ · e.g., recursion, persistent/immutable data structures,...

69
Functional Scaling a MOOC for Students and Professionals Alike TFPIE’17, Canterbury, UK June 21st, 2017 Heather Miller Programming for All!

Upload: others

Post on 08-Sep-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Functional

Scaling a MOOC for Studentsand Professionals Alike

TFPIE’17, Canterbury, UKJune 21st, 2017

Heather Miller

Programming for All!

Page 2: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

First of all, this wasn’t all done by me alone.

Lukas Rytz Vojin Jovanovic Manohar Jonnalagedda Aleksandar Prokopec Jorge Vicente Cantero Martin Odersky Viktor Kuncak

Erik Meijer Tao Lee Tobias Schlatter Philipp Haller Julien Richard-Foy Fengyun Liu

Others who helped make our MOOC story possible:

Page 3: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Agendathe coursestools & infrastructurethe data we collectedour impressions

(it’s open-source!)

Page 4: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Agendathe coursestools & infrastructurethe data we collectedour impressions

(it’s open-source!)

My goal in this talk:To give you as complete of an impression as I can about the full experience of running a popular MOOC on functional programming.

Page 5: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Our foray into MOOCs…

Started in 2012:Functional Programming Principles in Scala

⬆(in its infancy at the time)on:

At a glance:To date, 6 MOOCs

~800,000 learners reached

Page 6: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Daphne Koller visited us at EPFL in July 2012:

Page 7: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

• sdf

By September 2012, our 1st MOOC was launched!

Page 8: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

• sdf

Introduction of fundamentals + functional programming concepts

GOAL:

E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc.

Page 9: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Lecture videos.

In-video quizzes.

Auto-graded programming assignments.

Preliminaries

– each 6-8 minutes long– total 1.5-2 hours per week

7 weeks.– workload: 5-7 hours per week– verbatim 50% of EPFL’s on-campus Functional Programming course (2nd year bachelor level)

Page 10: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

week 1: functions & evaluation, recursion

Content:

week 2: higher-order functionsweek 3: data and abstractionweek 4: types and pattern matchingweek 5: functional listsweek 6: list comprehensions + mapsweek 7: streams & lazy evaluation

Taught by:Martin Odersky

Page 11: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

week 1: functions & evaluation, recursion

Content:

week 2: higher-order functionsweek 3: data and abstractionweek 4: types and pattern matchingweek 5: functional listsweek 6: list comprehensions + mapsweek 7: streams & lazy evaluation

Ok. How’d it go?Taught by:Martin Odersky

Page 12: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded
Page 13: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Number Enrolled

http://www.katyjordan.com/MOOCproject.html

Page 14: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

http://www.katyjordan.com/MOOCproject.html

Number Enrolled

50,000 students19.2% completion rate

6.5% completion rate

AVERAGE:across all MOOCs

Page 15: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

http://www.katyjordan.com/MOOCproject.html

Number Enrolled

50,000 students19.2% completion rate

Jordan, K. (2014) Initial trends in enrollment and completion of massive open online courses. The International Review of Research in Open and Distance Learning, 15(1), 133-160.

6.5% completion rate

AVERAGE:across all MOOCs

Page 16: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Why such a highcompletion rate?our completion rate was 3x the norm.

Page 17: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

We think it was the tooling & infrastructure.

automated cloud-based

gradersinteractive build tool

decent choice of IDEs style checkers

testing frameworks

Page 18: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Interactive development/submission cycle.

Scala’s interactive build tool, configured to submit student assignments to the automated cloud-based graders from the command line.

Compile. Test. Submit.

Page 19: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.

Page 20: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.Provided two types of feedback:

Massive suite of secret unit tests.

Style-checker

Page 21: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.Provided two types of feedback:

Massive suite of secret unit tests.

Style-checkerdiscourages:– mutable variables – return statements – the null value – while loops – magic numbers – overly long lines of code – non-standard capitalization – + more

Page 22: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.

Page 23: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.

Page 24: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.

Page 25: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Automated grading/feedback.Custom cloud-based auto-grader.Provided two types of feedback:

Massive suite of secret unit tests.

Style-checker

Importantly:

Resubmissions welcome.Feedback arrives fast.seconds – 15 minutes

Page 26: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

IDEs

Popular IDEs come with worksheets for easy experimenting:

Page 27: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

IDEs

Popular IDEs come with worksheets for easy experimenting:

Use sbt right from Eclipse/IntelliJ.code, compile, test, submit, all from the IDE.

Page 28: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

So, whatdoes it mean?

Page 29: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

So, whatdoes it mean?

Students had a very tight feedback loop.

Page 30: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

If you scored >0, it was most likely that you got 100% (80/80) in the course.

Page 31: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Most people got a perfect score within 4 submission attempts.

5 10 15 20

# Submissions

0.0%

5.0%

10.0%

15.0%

20.0%

25.0%

30.0%

35.0%

40.0%

45.0%

Per

cent

age

ofStu

den

ts

Fall 2012

Spring 2013

(The number of submissions required to achieve a perfect score.)

Page 32: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

also, thiswasn’t just students

professionals too!but,

Page 33: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

A vast majority of participants already had graduated from university – 87%.

Participants’ highest degrees

Page 34: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

A vast majority of participants come from computer science or computer/software engineering – 71%.

Participants’ fields of study

Page 35: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

A large portion of participants plan on applying what they’ve learned in the course at work – 40%.

Where do you plan to apply what you’ve learned in the course?

Page 36: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

And yet ~70% of professional respondents felt the course was well-worth their time.

Do you feel the course was worth it? All respondents vs those who use Scala at

work

1(Disagree)

2 3 4 5(Agree)

0

20

40

60

80

100

Per

cent

age

ofSt

uden

ts

1 27

22

68

1 16

21

71

Fall 2012

1(Disagree)

2 3 4 5(Agree)

0

20

40

60

80

100

1 28

24

66

1 16

22

70

Spring 2013

All Respondents Respondents Using Scala at Work

For Fall 2012, 71% amounts to 2,148/3,203 professional respondents.

Page 37: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

A vast majority of which received perfect scores, and felt that the course was well worth their time.

we can conclude that there were indeed a significant number of professionals participating in the course.

SO,

Page 38: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

How’d it fare on campus?

Alongside of 50,000 MOOC learners,150 EPFL students took MOOC for credit.

Page 39: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

How’d it fare on campus?

Alongside of 50,000 MOOC learners,150 EPFL students took MOOC for credit.

MOOC Traditionaloffline course

EPFL Semester:week 0 week 14week 7

written midterm

examwritten

final exam

Page 40: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

How did it differ for EPFL students?

MOOC participants

EPFL students

5-7 videos each week, 8-12min

LECTURES

weekly programming exercises

ASSIGNMENTS work in groups, with TAs on HW

EXERCISE SESSIONS

midterm & finalWRITTEN EXAMS

offline traditional 2nd half of course

SAME AS MOOC +

Page 41: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

What’d the EPFL students think?

In the future, I'd prefer a course like this be...

69% 17.8% 7% 6%Online,

14 weeksOnline 7wks,

On-campus 7wksOn-

campus 14wks

No opinion

Page 42: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Hang on,where did this data

come from?

Page 43: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

The dataTwo iterations of Functional Programming Principles in Scala.

Fall 2012Spring 2013

Page 44: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

The dataTwo iterations of Functional Programming Principles in Scala.

Fall 2012Spring 2013

Three sources per iteration:– Scores & submission data from Coursera– Survey data– EPFL specialized course survey

Page 45: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Survey data

Post-course survey:For the Fall 2012 course, 7,492 respondents out of ~50,000For the Spring 2013 course, 4,595 respondents out of ~37,000

Total: 12,087 respondents

Page 46: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Survey data

Post-course survey:For the Fall 2012 course, 7,492 respondents out of ~50,000For the Spring 2013 course, 4,595 respondents out of ~37,000

Total: 12,087 respondents

Example questions:If applicable, what field of study was your highest degree in?What's your highest degree?How many years have you been programming?How difficult did you find the course overall?Where do you plan to apply what you've learned in this course?What experience do you have with other programming languages or paradigms?

Page 47: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

by the way, the data is open source+ tools to generate visualizations of the data

Page 48: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

EPFL student data

Post-course survey:Given to EPFL students who took both the MOOC as well as the regular on-campus in-person course.

Page 49: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

Legend

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

EPFL student data

Page 50: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

Legend

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

~80% of students think the course was very good or excellent

EPFL student data

Page 51: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

EPFL student data6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

Legend

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

~58% of students would like more online courses in the future

Page 52: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

EPFL student data6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

Legend

6 - Excellent/Strongly Agree54321 - Poor/Strongly DisagreeNo Opinion

Overall, the online part of the course is:41.86% 38.37% 15.11% 4%(a)

In the future, I would like to get more online courses:33.72% 23.26% 23.26% 9.6% 3%2%5%(b)

The online help for the course is…:20.24% 28.57% 28.57% 8.3% 2%11.9%(c)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1%48.83%(d)In the future, I'd prefer a course like this be...69% 17.8% 7% 6%

Online 14 weeks On-campus14 weeks

No OpinonOnline 7wks/On-campus 7wks

(e)

~69% of students would like their entire course to be online, with no on-campus component

Page 53: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

students seemed to overwhelmingly prefer the MOOC version of the course. In fact, students even preferred the MOOC forums to the exercise sessions.

SO,

Test performance remained the same, course ratings remained high.

Page 54: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

The result?

Happier EPFL Students

Uptaken and depended-on by professionals in industry

Good performance, high course ratings

Page 55: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Conclusions

Positive experience for all

Highest rate of retention for a course our size

Both professionals and students alike had positive learning experiences.

between 2012-2013

Page 56: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

2013:New MOOC,

Our foray into MOOCs continued…

Principles of Reactive Programming~67,000 registrants in first run

Page 57: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded
Page 58: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

2013:New MOOC,

Our foray into MOOCs continued…

2016/2017:2 new MOOCs + capstone project bundled into a Scala mini-degree on Coursera

Principles of Reactive Programming~67,000 registrants in first run

Parallel ProgrammingBig Data Analysis with Scala & Spark

400,000 registrants in first yearfor courses in mini-degree

Page 59: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded
Page 60: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded
Page 61: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Financials?

Page 62: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Financials?

Well, it works**mini-degrees, that is.

Page 63: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Financials?

~2 million USD brought in in first fiscal year.Granted, how the money is actually split is a whole different issue.

Well, it works**mini-degrees, that is.

Page 64: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Take aways…

Page 65: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Take aways…

Autograding + a tight feedback loop is key to retention.Recent results [1] at LAK’17 arrive at the same conclusion.

[1] Follow the Successful Crowd: Raising MOOC Completion Rates through Social Comparison at Scale, LAK’17

Page 66: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Would I do it again in 2017?

Take aways…

Autograding + a tight feedback loop is key to retention.Recent results [1] at LAK’17 arrive at the same conclusion.

[1] Follow the Successful Crowd: Raising MOOC Completion Rates through Social Comparison at Scale, LAK’17

Page 67: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Would I do it again in 2017?

Take aways…

Autograding + a tight feedback loop is key to retention.Recent results [1] at LAK’17 arrive at the same conclusion.

Not sure.Did you notice I didn’t have data to show after 2013?

[1] Follow the Successful Crowd: Raising MOOC Completion Rates through Social Comparison at Scale, LAK’17

Page 68: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

The MOOC-provider landscape has drastically changed

Would I do it again in 2017?

Take aways…

Autograding + a tight feedback loop is key to retention.Recent results [1] at LAK’17 arrive at the same conclusion.

Not sure.Did you notice I didn’t have data to show after 2013?

[1] Follow the Successful Crowd: Raising MOOC Completion Rates through Social Comparison at Scale, LAK’17

Page 69: Functional Programming for All!€¦ · E.g., recursion, persistent/immutable data structures, higher-order functions, pattern matching, etc. Lecture videos. In-video quizzes. Auto-graded

Thank you!Questions?