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.
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...
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!