Functional Programming for All! Scaling a MOOC for Students and - - PowerPoint PPT Presentation

functional programming for all
SMART_READER_LITE
LIVE PREVIEW

Functional Programming for All! Scaling a MOOC for Students and - - PowerPoint PPT Presentation

Functional Programming for All! Scaling a MOOC for Students and Professionals Alike Heather Miller TFPIE17, Canterbury, UK June 21st, 2017 First of all, this wasnt all done by me alone. Others who helped make our MOOC story possible:


slide-1
SLIDE 1

Functional

Scaling a MOOC for Students and Professionals Alike

TFPIE’17, Canterbury, UK

June 21st, 2017

Heather Miller

Programming for All!

slide-2
SLIDE 2

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:

slide-3
SLIDE 3

Agenda

the courses tools & infrastructure the data we collected

  • ur impressions

(it’s open-source!)

slide-4
SLIDE 4

Agenda

the courses tools & infrastructure the data we collected

  • ur 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.

slide-5
SLIDE 5

Our foray into MOOCs…

Started in 2012:

Functional Programming Principles in Scala

⬆(in its infancy at the time)

  • n:

At a glance:

To date, 6 MOOCs ~800,000 learners reached

slide-6
SLIDE 6

Daphne Koller visited us at EPFL in July 2012:

slide-7
SLIDE 7
  • sdf

By September 2012, our 1st MOOC was launched!

slide-8
SLIDE 8
  • sdf

Introduction of fundamentals + functional programming concepts

GOAL:

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

slide-9
SLIDE 9

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)

slide-10
SLIDE 10

week 1: functions & evaluation, recursion

Content:

week 2: higher-order functions week 3: data and abstraction week 4: types and pattern matching week 5: functional lists week 6: list comprehensions + maps week 7: streams & lazy evaluation

Taught by: Martin Odersky

slide-11
SLIDE 11

week 1: functions & evaluation, recursion

Content:

week 2: higher-order functions week 3: data and abstraction week 4: types and pattern matching week 5: functional lists week 6: list comprehensions + maps week 7: streams & lazy evaluation

  • Ok. How’d it go?

Taught by: Martin Odersky

slide-12
SLIDE 12
slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

50,000 students

19.2% completion rate

6.5% completion rate

AVERAGE:

across all MOOCs

slide-15
SLIDE 15

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

50,000 students

19.2% completion rate

Jordan, K. (2014) Initial trends in enrollment and completion of massive

  • pen online courses.

The International Review

  • f Research in Open and

Distance Learning, 15(1), 133-160.

6.5% completion rate

AVERAGE:

across all MOOCs

slide-16
SLIDE 16

Why such a high

completion rate?

  • ur completion rate was 3x the norm.
slide-17
SLIDE 17

We think it was the tooling & infrastructure.

automated cloud-based graders interactive build tool decent choice

  • f IDEs

style checkers testing frameworks

slide-18
SLIDE 18

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.
slide-19
SLIDE 19

Automated grading/feedback.

Custom cloud-based auto-grader.

slide-20
SLIDE 20

Automated grading/feedback.

Custom cloud-based auto-grader.

Provided two types of feedback: Massive suite of secret unit tests. Style-checker

slide-21
SLIDE 21

Automated grading/feedback.

Custom cloud-based auto-grader.

Provided two types of feedback: Massive suite of secret unit tests. Style-checker

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

slide-22
SLIDE 22

Automated grading/feedback.

Custom cloud-based auto-grader.

slide-23
SLIDE 23

Automated grading/feedback.

Custom cloud-based auto-grader.

slide-24
SLIDE 24

Automated grading/feedback.

Custom cloud-based auto-grader.

slide-25
SLIDE 25

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

slide-26
SLIDE 26

IDEs

Popular IDEs come with worksheets for easy experimenting:

slide-27
SLIDE 27

IDEs

Popular IDEs come with worksheets for easy experimenting:

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

slide-28
SLIDE 28

So, what

does it mean?

slide-29
SLIDE 29

So, what

does it mean?

Students had a very tight feedback loop.

slide-30
SLIDE 30

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

slide-31
SLIDE 31

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%

Percentage of Students

Fall 2012 Spring 2013

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

slide-32
SLIDE 32

also, this

wasn’t just students professionals too!

but,

slide-33
SLIDE 33

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

Participants’ highest degrees

slide-34
SLIDE 34

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

Participants’ fields of study

slide-35
SLIDE 35

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?

slide-36
SLIDE 36

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) 20 40 60 80 100 Percentage of Students

1 2 7 22 68 1 1 6 21 71

Fall 2012 1 (Disagree) 2 3 4 5 (Agree) 20 40 60 80 100

1 2 8 24 66 1 1 6 22 70

Spring 2013

All Respondents Respondents Using Scala at Work

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

slide-37
SLIDE 37

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,

slide-38
SLIDE 38

How’d it fare on campus?

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

slide-39
SLIDE 39

How’d it fare on campus?

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

  • ffline course

EPFL Semester:

week 0 week 14 week 7

written midterm exam written final exam

slide-40
SLIDE 40

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 & final

WRITTEN EXAMS

  • ffline traditional

2nd half of course SAME AS MOOC +

slide-41
SLIDE 41

What’d the EPFL students think?

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

69% 17.8% 7% 6%

Online, 14 weeks Online 7wks, On-campus 7wks On- campus 14wks No

  • pinion
slide-42
SLIDE 42

Hang on,

where did this data come from?

slide-43
SLIDE 43

The data

Two iterations of Functional Programming Principles in Scala. Fall 2012 Spring 2013

slide-44
SLIDE 44

The data

Two iterations of Functional Programming Principles in Scala. Fall 2012 Spring 2013 Three sources per iteration:

– Scores & submission data from Coursera – Survey data – EPFL specialized course survey

slide-45
SLIDE 45

Survey data

Post-course survey:

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

Total: 12,087 respondents

slide-46
SLIDE 46

Survey data

Post-course survey:

For the Fall 2012 course, 7,492 respondents out of ~50,000 For 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?

slide-47
SLIDE 47

by the way, the data is open source

+ tools to generate visualizations of the data

slide-48
SLIDE 48

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.

slide-49
SLIDE 49

6 - Excellent/Strongly Agree 5 4 3 2 1 - Poor/Strongly Disagree No Opinion

Legend

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%

)

The online help for the course is…: 20.24% 28.57% 28.57% 8.3%

2%11.9%

)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1% 48.83%

)

In the future, I'd prefer a course like this be... 69% 17.8% 7% 6%

Online 14 weeks On- campus 14 weeks No Opinon Online 7wks/ On-campus 7wks

)

EPFL student data

slide-50
SLIDE 50

6 - Excellent/Strongly Agree 5 4 3 2 1 - Poor/Strongly Disagree No Opinion

Legend

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%

)

The online help for the course is…: 20.24% 28.57% 28.57% 8.3%

2%11.9%

)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1% 48.83%

)

In the future, I'd prefer a course like this be... 69% 17.8% 7% 6%

Online 14 weeks On- campus 14 weeks No Opinon Online 7wks/ On-campus 7wks

)

~80% of students think the course was very good

  • r excellent

EPFL student data

slide-51
SLIDE 51

EPFL student data

6 - Excellent/Strongly Agree 5 4 3 2 1 - Poor/Strongly Disagree No Opinion

Legend

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%

)

The online help for the course is…: 20.24% 28.57% 28.57% 8.3%

2%11.9%

)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1% 48.83%

)

In the future, I'd prefer a course like this be... 69% 17.8% 7% 6%

Online 14 weeks On- campus 14 weeks No Opinon Online 7wks/ On-campus 7wks

)

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

slide-52
SLIDE 52

EPFL student data

6 - Excellent/Strongly Agree 5 4 3 2 1 - Poor/Strongly Disagree No Opinion

Legend

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%

)

The online help for the course is…: 20.24% 28.57% 28.57% 8.3%

2%11.9%

)

The help in the exercise sessions for the course is…: 4.6%24.41% 15.11% 5.8%1% 48.83%

)

In the future, I'd prefer a course like this be... 69% 17.8% 7% 6%

Online 14 weeks On- campus 14 weeks No Opinon Online 7wks/ On-campus 7wks

)

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

slide-53
SLIDE 53

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.

slide-54
SLIDE 54

The result?

Happier EPFL Students Uptaken and depended-on by professionals in industry

Good performance, high course ratings

slide-55
SLIDE 55

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

slide-56
SLIDE 56

2013: New MOOC,

Our foray into MOOCs continued…

Principles of Reactive Programming

~67,000 registrants in first run

slide-57
SLIDE 57
slide-58
SLIDE 58

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 Programming Big Data Analysis with Scala & Spark

400,000 registrants in first year for courses in mini-degree

slide-59
SLIDE 59
slide-60
SLIDE 60
slide-61
SLIDE 61

Financials?

slide-62
SLIDE 62

Financials?

Well, it works*

*mini-degrees, that is.

slide-63
SLIDE 63

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.

slide-64
SLIDE 64

Take aways…

slide-65
SLIDE 65

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

slide-66
SLIDE 66

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

slide-67
SLIDE 67

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

slide-68
SLIDE 68

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

slide-69
SLIDE 69

Thank you!

Questions?