Slide 1

Slide 1 text

3FBEJOH 8SJUJOH  "SJUINFUJD BOE+BWB4DSJQU @pamelafox, Fluent 2014 Wednesday, March 12, 14

Slide 2

Slide 2 text

8IBU*EP Variables Strings Functions Logic Looping Arrays Objects khanacademy.org/cs/programming Wednesday, March 12, 14 I’m Pamela, and I work for Khan Academy. Khan Academy is a non-profit that creates free educational content for students around the world. My job is to create the programming curriculum, and engineer the platform that delivers it. On Khan, we give students an environment to use JavaScript with ProcessingJS, a library that uses the canvas tag for drawing and animation. We teach them concepts in coding talk-throughs, and then have them try out the concepts in step-by-step coding challenges - like this one, where you color an ice cream cup with your favorite colors. We also have awesome mascots, like our beaver Hopper, who’s named after General Grace Hopper.

Slide 3

Slide 3 text

8IBU*EPPO)BMMPXFFO Wednesday, March 12, 14 Another of our mascots is Winston - four ellipses, but a WHOLE LOT of personality. I attempted to dress up like him for halloween, but mostly I just creeped everybody out at work and on the caltrain...

Slide 4

Slide 4 text

8IBUXPVMEUIF XPSMECFMJLF JGTUVEFOUTMFBSOFE +BWB4DSJQUJO HSBEFTDIPPM Wednesday, March 12, 14 Today, I want to discuss a hypothetical world with all of you - a world where all students learn JS in grade school.

Slide 5

Slide 5 text

5IF7JTJPO ???? grade - JavaScript 101 College Career High school Wednesday, March 12, 14 In this world, we have to figure out: what age would the students learn JS at?

Slide 6

Slide 6 text

8IBUJTUIFFBSMJFTU BHFUIBUZPVDBO MFBSO+BWB4DSJQU Wednesday, March 12, 14 Let’s start with what age all of you started learning JS. Ask them: when did you learn JS? Under 10? Under 13? Under 16? Under 21? Under 25? Who thinks you could learn it at age 13? Okay now let’s be more scientific.

Slide 7

Slide 7 text

-&5`4#&.03&41&$*'*$ Wednesday, March 12, 14 If we can make this question more specific, we can answer it with some statistics from Khan Academy, since we have hundreds of thousands of students learning JS on our platform.

Slide 8

Slide 8 text

)PXEPFTBHFQSFEJDUTVDDFTT GPSBTUVEFOUMFBSOJOH +41SPDFTTJOH+4 PO,IBO"DBEFNZ Wednesday, March 12, 14

Slide 9

Slide 9 text

'PSPVSpSTUDPEJOHDIBMMFOHF Concepts covered: statements, calling functions Wednesday, March 12, 14 Let’s look at stats for our first coding challenge, where students have to write three commands to draw three rectangles to form an H, and they need to figure out the right syntax (no copy/paste) and appropriate numbers.

Slide 10

Slide 10 text

'PSPVSpSTUDPEJOHDIBMMFOHF Note: Females and males have same completion rate! 327,879 students “started” the challenge 51,431 of those students give their age Wednesday, March 12, 14

Slide 11

Slide 11 text

3FBTPOTGPSEJGGFSFODFT The concept of issuing a command is inherently too difficult for younger children OR 1) Programming requires patience 2) JS programming requires typing skills 3) ProcessingJS requires spatial reasoning Wednesday, March 12, 14

Slide 12

Slide 12 text

45*-- For the 13-year-olds that viewed the first coding challenge,  completed that challenge. The highest completion rate for any age is . Wednesday, March 12, 14

Slide 13

Slide 13 text

8IBUBCPVUNPSF EJGpDVMUDPODFQUT Wednesday, March 12, 14 Okay, that first challenge didn’t involve very complex programming concepts. What if we introduce iteration and conditionals and all of that? What will happen to our completion rates?

Slide 14

Slide 14 text

'PSPVSpSTUMPHJDDIBMMFOHF Concepts covered: if, comparators, control flow Wednesday, March 12, 14 We can look at our first logic challenge, which is a ways down in the curriculum, and gets them to figure out how to get a ball to bounce off the bottom of the screen by comparing its y value.

Slide 15

Slide 15 text

'PSPVSpSTUMPHJDDIBMMFOHF 18,786 students “started” the challenge 5,331 of those students give their age Wednesday, March 12, 14 We have a lot more stats for our first challenge, because many students did Hour of Code, which included that first challenge, but this logic challenge is outside of that.

Slide 16

Slide 16 text

5IFDPODFQUTHPUIBSEFS Wednesday, March 12, 14 We see a much bigger disparity across ages for this challenge than the first ! We also have much less data, so we should take this with a grain of salt, but still.

Slide 17

Slide 17 text

3FBTPOTGPSEJGGFSFODFTGSPNpSTU The concepts of conditionals and comparators are too difficult for younger children OR 1) Programming requires patience 2) JS programming requires typing skills 3) ProcessingJS requires spatial reasoning and temporal-spatial reasoning Wednesday, March 12, 14 There are only a few reasons now why we might see greater disparity across the ages - it may be too conceptually difficult. It could also be the particular way that WE are using conditionals, in ProcessingJS, is too difficult. We’d have to have a non-ProcessingJS curriculum to compare to, to know that for sure.

Slide 18

Slide 18 text

45*-- For the 13-year-olds that viewed the logic coding challenge,  completed that challenge. Wednesday, March 12, 14 But we still have pretty good numbers, even so.

Slide 19

Slide 19 text

"SFBTPOBCMFDPODMVTJPO 5IFNBKPSJUZPGZFBSPMET DBOMFBSO+41SPDFTTJOH+4 QSPHSBNNJOHPO,IBO"DBEFNZ  Wednesday, March 12, 14

Slide 20

Slide 20 text

5IF7JTJPO 7th grade 9th grade College - JavaScript 101 - Practice with personal projects - Feel comfortable with programming - Use JavaScript to explore other areas 8th grade Career Wednesday, March 12, 14 Now we can flesh out a bit of this world. Let’s say we can teach most students JavaScript in 7th grade. They can keep practicing it, and feel comfortable by 9th grade, the start of high school. Now, it gets interesting, because we could see how JS overlaps with the rest of high school.

Slide 21

Slide 21 text

)PXDPVMEIJHITDIPPMFST VTF+BWB4DSJQU UPFYQMPSFPUIFSBSFBT Wednesday, March 12, 14

Slide 22

Slide 22 text

Literature History Physics Art Politics Calculus Chemistry Biology Probability Foreign Language 3FBEJOH 8SJUJOH "SJUINFUJD Wednesday, March 12, 14

Slide 23

Slide 23 text

3FBEJOH 8SJUJOH "SJUINFUJD Literature History Physics Art Politics Calculus Chemistry Biology Probability Foreign Language +BWB4DSJQU Wednesday, March 12, 14

Slide 24

Slide 24 text

"SU +BWB4DSJQU Wednesday, March 12, 14 https://www.khanacademy.org/cs/linear-perspective-house/5937351031259136 https://www.khanacademy.org/cs/linear-perspective/5807530554949632

Slide 25

Slide 25 text

&OHMJTI +BWB4DSJQU Wednesday, March 12, 14 https://www.khanacademy.org/cs/how-the-cacti-got-their-spikesmy-english-project/2797928185

Slide 26

Slide 26 text

-JUFSBUVSF +BWB4DSJQU Wednesday, March 12, 14 Book covers

Slide 27

Slide 27 text

)JTUPSZ +BWB4DSJQU Wednesday, March 12, 14 https://www.khanacademy.org/cs/timeline-2/5267556277420032 https://www.khanacademy.org/cs/ashais-timeline/6051267279323136

Slide 28

Slide 28 text

1IZTJDT +BWB4DSJQU Wednesday, March 12, 14 https://www.khanacademy.org/cs/timeline-2/5267556277420032 https://www.khanacademy.org/cs/ashais-timeline/6051267279323136

Slide 29

Slide 29 text

)PXDPVMEUFBDIFST JODPSQPSBUF+BWB4DSJQU JOUPUIFJSDVSSJDVMVN - Extra credit - Project options - Optional course Wednesday, March 12, 14

Slide 30

Slide 30 text

)PXDPVMEUFBDIFST JODPSQPSBUF+BWB4DSJQU JOUPUIFJSDVSSJDVMVN - Extra credit - Project options - Optional course 03 Wednesday, March 12, 14

Slide 31

Slide 31 text

)PXDPVMEUFBDIFST JODPSQPSBUF+BWB4DSJQU JOUPUIFJSDVSSJDVMVN - Extra credit - Project options - Optional course 03 - Required JS 101 course - Teach other topics assuming JS as a skill Wednesday, March 12, 14

Slide 32

Slide 32 text

5IF7JTJPO 7th grade 9th grade College - JavaScript 101 - Practice with personal projects - Feel comfortable with programming - Use JavaScript to explore other topics Major in CS Use CS skills/theory with other major Go off into world, understand it better 8th grade Wednesday, March 12, 14 Now we have more of the vision. They learn JS in 7th grade, they use throughout high school to complement the rest of their subjects. After high school, they could go a few different ways. They might decide that they REALLY like programming, and major in CS in college. Or they could do another major, like biology, and use programming along with that major. Or they’d just go into the world, with programming as a skill that they could use in every day life- like to program a spreadsheet for their household budget. Either way, they’re empowered with an incredibly valuable skill.

Slide 33

Slide 33 text

5IBU`TBCJUOBSSPX Wednesday, March 12, 14 That particular vision is a bit narrow though. It’s ALL ABOUT JAVASCRIPT. Well, that’s because this is a JavaScript conference, and I’m a suck up. Also, because that’s what I happen to be teaching right now, and what happens to be the most popular language around. However, I’m not an absolutist, so let’s make this vision more general.

Slide 34

Slide 34 text

T+BWB4DSJQUQSPHSBNNJOH 7th grade 9th grade College - Programming 101 - Practice with personal projects - Feel comfortable with programming - Use Programming to explore other topics Major in CS Use CS skills/theory with other major Go off into world, understand it better 8th grade Wednesday, March 12, 14 We could teach any sort of syntactic programming language. Maybe it’ll be Python or Go or a new language that’s invented tomorrow. Or maybe Quorum, a language that’s specifically been designed for teaching, based on usability studies. As long as it’s a language that empowers the students to create new things and solve problems, it fits the bill.

Slide 35

Slide 35 text

%JGGFSFOUUZQFTPGQSPHSBNNJOHBU EJGGFSFOUBHFT 7th grade 9th grade College - Syntactic Programming 101 - Practice with personal projects - Feel comfortable with programming - Use Programming to explore other topics Major in CS Use CS skills/theory with other major Go off into world, understand it better 8th grade 3rd grade - Block-based programming - HTML (Markup) programming 5th grade 1st grade - “Unplugged” programming Wednesday, March 12, 14 Okay, but that’s not the only sort of “programming” we could teach. We could teach programming that doesn’t involve any computers-- just ordering each other around like robots with commands. We could teach block-based programming, where they don’t need typing skills but still learn the concepts. We could teach HTML, where there are less concepts to grasp. We could teach different types of languages at different ages, and maybe we could see less age disparity for different types of programming.

Slide 36

Slide 36 text

1SPHSBNNJOHJTO`UUIFPOMZUIJOHXFEP XJUIDPNQVUFST Wednesday, March 12, 14 Okay, now, we should probably be teaching MORE than just programming. There’s so much we do with computers- security, algorithms, privacy, encryption. But that’s a whole other talk.

Slide 37

Slide 37 text

3FBEJOH 8SJUJOH  "SJUINFUJD BOE+BWB4DSJQU @pamelafox, Fluent 2014 Wednesday, March 12, 14 For today, as you go through the talks: just think about what it would be like if every student learnt JavaScript in grade school: How much could they learn? How much should they learn? How could we make it easier for them to learn? What could they use that knowledge to do? How could we make them feel incredibly powerful with that knowledge? I have some ideas, but I’m here to find out what ideas you have. Thank you!