Going Rogue
How Code.org Created a
Curriculum Development Platform,
Without their Engineers
Josh Caldwell
Curriculum Development Manager
josh@code.org | @mrjoshida
Recovering Middle School Teacher
Curriculum Developer
Not an Engineer
Glutton for Punishment
@codeorg | @mrjoshida
Who am I?
Who is Code.org?
@codeorg | @mrjoshida
#HourofCode
Our vision:
in every school
every student
opportunity
@codeorg | @mrjoshida
We’re a small team
Who is Code.org?
@codeorg | @mrjoshida
With a big reach
Who is Code.org
Our engineers make great tools
@codeorg | @mrjoshida
Who is Code.org
@codeorg | @mrjoshida
Elementary school
Middle School
High School
CS Fundamentals
CS in Science
CS in Algebra
CS Discoveries
AP CS Principles
That we use in great courses
Who is Code.org?
@codeorg | @mrjoshida
Written on not-so-great tools :/
Multiple writing formats (md, gdoc, pdf)
Manually created/updated overview docs:
(Standards alignment, pacing guides, resource lists, lesson/unit summaries, vocab lists, and on and on)
No meta data
Inconsistent style and format
Too much tribal knowledge
Who is Code.org?
@TeachCode | #TeacherCon
Learning objectives
Materials and prep
Digital resources
New vocab
New code
Overview and purpose
Tags and keywords
Related extension lessons
Assessment info
Aligned learning standards
Famous Last Words...
“All we need is a slightly
customized CMS,
why don’t I just
set one up myself?”
@codeorg | @mrjoshida
“Improving” our writing process
+
Phase 1
@codeorg | @mrjoshida
“Improving” our writing process
Pitching
to the
Engineering
team...
@codeorg | @mrjoshida
“Improving” our writing process
A few simple requirements...
@codeorg | @mrjoshida
“Improving” our writing process
@codeorg | @mrjoshida
“Improving” our writing process
New plan:
Go Static
@codeorg | @mrjoshida
Phase 2
@codeorg | @mrjoshida
CurriculumBuilder Phase 2
Successes:
More consistent lessons
Control over formatting
Writers can self publish
Easy to update
Easy to create meta views
@codeorg | @mrjoshida
CurriculumBuilder Phase 2
Challenges:
Multiple sources of truth
No comm between tools
More internal users
Evolving curricula
Big project
@codeorg | @mrjoshida
CurriculumBuilder Phase 2
Phase 3
(in progress)
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
Consolidating Truth & Communicating
LevelBuilder
CurriculumBuilder
Level progressions
Student instructions
Teacher tips
Starting code
Exemplars
Teaching guide
Additional resources
Lesson description
Assessment information
Objectives & Standards
Vocab
etc.
JSON!
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
Don’t Cross
The Streams!
Django Rest Framework
+
Django-jackfrost
=
Reliable Read Only API
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
More Users & Evolving Curricula
Need for auditing and recovery
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
django-reversion & django-reversion-compare
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
Big Project
Still working on that...
@codeorg | @mrjoshida
CurriculumBuilder Phase 3
Takeaways
There’s a package for almost everything
@codeorg | @mrjoshida
mezzanine.jupo.org
django-rest-framework.org
github.com/kezabelle/django-jackfrost
github.com/jschneier/django-storages
github.com/etianen/django-reversion
github.com/jedie/django-reversion-compare
github.com/semente/django-smuggler
Takeaways
Sometimes too many...
@codeorg | @mrjoshida
Shout out to djangopackages.org
Takeaways
Start small
@codeorg | @mrjoshida
Don’t be afraid to iterate
Takeaways
There are a lot of tutorials out there
@codeorg | @mrjoshida
But most are not great instruction
Takeaways
Take advantage of the community
@codeorg | @mrjoshida
Like I didn’t
Takeaways
Beware of “I betcha can’t…”
or
When all you have is a hammer...
@codeorg | @mrjoshida
Thanks!
Thank You!
@codeorg | @mrjoshida
code.org/about/jobs
code.org/volunteer