Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Creating interactive learning interfaces at Kha...
Search
spicyj
September 15, 2014
Technology
120
0
Share
Creating interactive learning interfaces at Khan Academy
For @Scale 2014 on September 15, 2014.
spicyj
September 15, 2014
More Decks by spicyj
See All by spicyj
React: What Lies Ahead
spicyj
6
390
Understanding state in React
spicyj
1
120
ndb
spicyj
0
140
css
spicyj
2
880
Other Decks in Technology
See All in Technology
Agentic AI時代における メルカリのAIガバナンスとガードレール実装
naoichihara
15
14k
freee-mcpを Local→Remote で出してわかった MCP認可実装のリアル
terara
3
620
Geek Woman の育ち方 〜コミュニティとAIと〜
chicaco
0
410
GitHub Copilot のこれまでとこれから: From Copilot to Collaborative Agents
yuriemori
1
160
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
720
layerx-fde-practices
cipepser
6
2.7k
コーディングエージェントはTypeScriptの 型エラーをどう自己修正しているのか
melonps
4
470
AIが変えた"品質の守り方"
kkakizaki
3
1.1k
その英語学習、AWSで代替できませんか?
suzutatsu
1
230
権限管理設計を完全に理解した
rsugi
1
200
TypeScript で Platform SDK を作る技術
toiroakr
1
260
データ基盤構築・運用の現場から 〜 Snowflake Intelligence 導入で変わった、データ活用の未来 〜
wonohe
0
170
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.1k
What's in a price? How to price your products and services
michaelherold
247
13k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
920
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
300
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to train your dragon (web standard)
notwaldorf
97
6.6k
WCS-LA-2024
lcolladotor
0
600
So, you think you're a good person
axbom
PRO
2
2k
Transcript
Creating interactive learning interfaces at Khan Academy Ben Alpert and
Pamela Fox
None
None
None
Constraints are liberating.
“khan-exercises”
<div class="vars"> <var id="X">randRange(5, 10)</var> <var id="Y">randRange(5, 10)</var> </div> !
<div class="problem"> <p>Bob has <var>X</var> apples...</p> </div>
<div class="graphie"> graphInit({ range: 10, scale: 20 }); ! plot(function(x)
{ return 2 * sin(x); }, [-10, 10]); </div>
None
<label> <input checked name="dashradio" onclick="javascript: KhanUtil.currentGraph.graph.dasharray = ''; KhanUtil.currentGraph.graph.update(); "
type="radio" value="solid"> Solid line </label> <label> <input name="dashradio" onclick="javascript: KhanUtil.currentGraph.graph.dasharray = '- '; KhanUtil.currentGraph.graph.update(); " type="radio" value="dashed"> Dashed line </label>
Too much power.
“Perseus”
None
What about pictures?
For diagrams, we want… • Simple to create • Consistent
look and feel • Flexibility to draw anything
None
Diagrams turn into image files that any browser can render,
but we save the source too.
Constraining yourself can be liberating too.
var MissionDashboard = React.createClass({ render: function() { return ( <div
className="dashboard-root"> <MissionProgress mission={this.props.mission} /> <TaskArea mission={this.props.mission} /> </div> ); } });
“Falling into the“ “pit of success” Jeff Atwood
Unthematic announcement time.
f ( x ) = Z 1 1 ˆ f
( ⇠ ) e 2 ⇡i⇠x d⇠
None
• Used in production since last summer • Beautiful math
typesetting • About 50x faster than MathJax • http://khan.github.io/KaTeX/
None
Thanks.