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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
380
Understanding state in React
spicyj
1
110
ndb
spicyj
0
130
css
spicyj
2
880
Other Decks in Technology
See All in Technology
私がよく使うMCPサーバー3選と社内で安全に活用する方法
kintotechdev
0
150
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
160
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
400
Bref でサービスを運用している話
sgash708
0
220
FastMCP OAuth Proxy with Cognito
hironobuiga
3
230
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
650
FASTでAIエージェントを作りまくろう!
yukiogawa
4
180
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
300
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
180
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
270
FlutterでPiP再生を実装した話
s9a17
0
240
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
660
エンジニアに許された特別な時間の終わり
watany
106
240k
[SF Ruby Conf 2025] Rails X
palkan
2
870
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
210
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
My Coaching Mixtape
mlcsv
0
90
Un-Boring Meetings
codingconduct
0
240
Ethics towards AI in product and experience design
skipperchong
2
240
GraphQLとの向き合い方2022年版
quramy
50
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
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.