Going Rogue: How Code.org Created a Curriculum Development Platform Without their Engineers All

Video in TIB AV-Portal: Going Rogue: How Code.org Created a Curriculum Development Platform Without their Engineers All

Formal Metadata

Going Rogue: How Code.org Created a Curriculum Development Platform Without their Engineers All
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
As a Middle School computer science teacher, I know enough to be dangerous, but not enough to consider myself a “real” developer. As a member of the curriculum team at Code.org (a nonprofit dedicated to providing all students with access to CS education), I knew that our combination of rendered markdown files and Google docs was far from the most effective way to write and deliver curriculum. If only we could schematize our curriculum writing, I thought, we’d be able to write more consistent lessons with better support for teachers to see which lessons are aligned to which standards, or where a given concept was first taught. When I brought this proposal to our engineering team everyone was excited about the idea, but there was no way we had the bandwidth to actually create it. Our small team of engineers are booked solid building tools for students to learn programming and for teachers to manage their classes. When it comes to the needs of our curriculum writers, we obviously need to come after the students and teachers. But wait, I know how to program. I did the “Two Scoops” tutorial. Why couldn’t I make the tool I had dreamed of? Using Django and Mezzanine as a base, I gradually built a system that allows Code.org curriculum writers to write faster, more consistent, and better supported lessons at a massive scale. Along the way, I also dealt with the very real concerns of my engineering team. How can we be sure this will scale to our 10’s of thousands of teachers? What about our millions of students? How can we be certain that this doesn’t introduce new security vulnerabilities to our site? Are you sure you know what you’re doing here? The answer to all of these problems was surprising simple, and has allowed me to address the needs of our curriculum team without taking the engineering team’s focus away from the customers that really matter - teachers and students. After many months of development, CurriculumBuilder has become an essential internal tool for curriculum writing at Code.org, and continues to find new ways to solve problems that would otherwise go unaddressed. Not bad for a Middle School CS teacher who had never before written software used by others.
Computing platform
Degree (graph theory) Software developer Robotics Software developer Real number Computer science Code Video game Online help Mereology
Group action Different (Kate Ryan album) Computer science Branch (computer science) Multimedia Student's t-test Student's t-test Wave packet
Software engineering Computer science Set (mathematics) Student's t-test
Computer programming Computer science Student's t-test
File format Multiplication sign Software developer View (database) Cellular automaton Consistency File format Electronic mailing list Solid geometry Student's t-test Disk read-and-write head Food energy Metadata Googol Algebra Different (Kate Ryan album) Computing platform Right angle Algebra Physical system Probability density function Fundamental theorem of algebra
Standard deviation Content management system Computer file Information Digitizing Code Planning Digital signal Student's t-test Videoconferencing Information Process (computing) Object (grammar) Writing Extension (kinesiology)
Process (computing) Real number Pattern language Process (computing) Mereology
Code Multiplication sign Physical law Interactive television Bit Process (computing) Website Information security
Website Right angle Process (computing)
Point (geometry) Filter <Stochastik> Principal ideal Meta element Digital filter Game controller Computer file Link (knot theory) Sweep line algorithm Consistency Neuroinformatik Fluid statics Different (Kate Ryan album) Phase transition Office suite Endliche Modelltheorie Website Amenable group Form (programming) Link (knot theory) View (database) Consistency Point (geometry) Data storage device Content (media) Planning Control flow Process (computing) Fluid statics Website Endliche Modelltheorie
Source code Multiplication Phase transition Source code Computing platform Content (media) Whiteboard E-learning
Point (geometry) Standard deviation Slide rule Computer file Code Electronic program guide Student's t-test Streaming media Product (business) Goodness of fit Different (Kate Ryan album) Videoconferencing Energy level Information Descriptive statistics Arithmetic progression Addition Standard deviation Projective plane Code Student's t-test Energy level Object (grammar) Whiteboard Arithmetic progression E-learning
Reading (process) Fluid statics Server (computing) Building Telecommunication Software framework Website Staff (military) Office suite
Computer animation Internetworking Data recovery Office suite Physical system
Probability density function Execution unit Game controller Projective plane Maxima and minima Planning Host Identity Protocol Revision control Sign (mathematics) Arithmetic mean Phase transition Phase transition Energy level Moving average Summierbarkeit Reverse engineering
Different (Kate Ryan album) Gender 1 (number) Electronic program guide Software framework Perspective (visual)
Satellite Building State of matter Code Multiplication sign View (database) Real number Control flow Inclined plane Online help Student's t-test Open set Perspective (visual) Sign (mathematics) Hooking Iteration Meeting/Interview Position operator Form (programming) Reflection (mathematics) Constructor (object-oriented programming) Fitness function Interactive television Code Variance Planning Arithmetic mean Process (computing) Computer science Website Quicksort Reading (process) Spacetime
over and over and
over and over and
over and uh you just just so we know that this is my 1st taught at a technology conference i talk in front of thousands and thousands of teachers a year but I don't ever talk in front of developed so this is weird for me and if I make like middle school the jokes that the land on you just them that so who
is but I a recovering middle school teacher I Top computer science and robotics in English in middle school for years and years before coming to co . org but where I now develop computer science curriculum and help develop new teachers to teach computer science I am not an engineer I did come engineering and background I actually have my degree in theater before I part of never like done a real life engineering thing before this thing that I'll show you today but I am a glutton for punishment which is how I ended up in this situation for I was code that
or but you don't know I put that
or our our mission is to ensure that every student in every school in America gets the opportunity to learn computer science we do that a lot of different ways so we have a branch that that advocacy and outreach working with governments to help ensure that there's funding for computer scientists have with due to the train we have a whole group of folks that work with training teachers we have groups that reach out school districts to try and import the importance of computer science at and an MIT team rejecting makes the curriculum to teach computer science the kids
we are a relatively small team for the amount of work that we do of this multimedia she can actually tell the difference between the yellow shirts about half of yellow shirts are engineers so we're a small team in general to do a lot of different things and we have a relatively small engineering team
will never massive we actually reach
1 in 5 students in American schools but 1 of by students in the
dark interrelations where he uses some form of
our the set I I just finished a summer of training up
15 hundred new computer science teachers we do
that every year so we do a lot of work with a really small thing it the MIT work happen are
engineers makes a really pretty fantastic tools to teach programming and computer science so we we have tools that let us teach
programming in ways that that may be interesting student you may have seen this a programmable Minecraft we worked with the Microsoft we work and Tool that makes students are allow students to be expressive and actually wonderful because
we get to use those to alleviate the design of courses around those tools so this is my Bailey there's the middle school realm of things so that science algebra is scary is that those of course as I make it we we do a lot of different
courses that despite the great tool we have to use in our courses we have historically had very poor tools to create those courses right where there you know you never put all of the energy and greenhouse stuff that your energy in the cell fates students so as a curriculum developer with a real hard time making solid lessons for teachers because we were using a whole bunch platforms with marked down google . pdf we mainly creating all of these different overviews if you've never seen a curriculum there's lessons but then there's all these other material that can combine them into different views that we have to make mainly there was no metadata wearing consistent matter style format and there is a ton of tribal knowledge right we were very small team so every person who kind of developed a system of working and that locked away in their head and it was very hard for somebody to join in just to give you an idea of
the kinds of things that go into a lesson plan things that we grapple with that we were doing in these GoogleDocs embarked on files so every lesson plan as learning objective would we want students to get rid of prepping you might need and you may need to digital resources video files all kinds of new vocabulary that introduce new introduced an overview purpose tags and keywords related accentual lessons assessment information while learning status is all of this stuff that gets fed into a lesson plan it was happening in the static pages and if you updated 1 you had to go on a date of Julie in other places it was painful and so I said
to myself can be that hard 1 1 we just like make thing that lets us write lesson plans we wanna do is i master engineers and they're very nice people the panel on the plate and I was not the prior so maybe unwisely I decided I was gonna try this out of my so I've never done angle before but
I the talk I thought I thought this is the part recall package called Mezzanine which if you seen it is kind of a C and that's the package that lot of the things I wanted by Masson together in kind of cobbled together in that kind of did what I wanted and to my engineering to and other checking out beautiful
thing and I don't think that they saw that I think they saw the there are a lot of the pattern had there like the job real crowding will put them through but we're not putting our they
did however work with me a little bit said are you really want this to happen you want have a new tool you wanted to write their a lesson plans here's our requirements whenever you made cannot interact with our main code that oxide you introducing a security laws would whatever reduce its on its own thing in fact it's got a like stay out of the ecosystem in time you can't be unread of just account you get any of our support any of our tools enumerating this lives in the woods red minimize any organizational dependency this thing disappeared tomorrow could you made it so poorly we should not know about so whatever you do to be able to continue existing without the you for everything that's not clear before we are not helping you with this this 0 problem by the way it can support over 100 thousand teacher that's like a really easy and the support doesn't it doesn't teaches you get a budget of 0 now yeah
I think the intent was still like talking me off the united clearly
nobody's going to pursue this this would be a terrible I have been underlining the
love for punishment as I said earlier is the right of better do all these things right it's gonna to be able to live in the tool dies it valuable support 100 thousand or a million EUR Julian teachers I know that static websites could do that maybe just make a thing that generates a static website that be pretty EasyShare when so
face to which are calling this incorrect the it's got a name so it's really we hosted on-premise because again I'm gonna 0 dollar budgets I Final computer and brought up in the office and I start posting in here for a are internally I make a really really opinionated models and I developed my own work done filters because 1 of our goals here is to eliminate all of that that tribal knowledge that is locked away and build consistency of my making opinionated approaches to writing lesson plans we injured whoever jumped on this tool was going to do it in a very narrow way I found a cool thing called Diego Jack Frost if not I look through a bunch of different static generators I found 1 that ended up working for me I looked do that to gender storage is to push it out to industry 3 bucket and all and in my engineers was a point your links at this bunch of static files for all you know I could have made these injuring at the website have fun so I I was able to not live in areas and
actually like worked out really really really well this this 1st approach of thing that I thought was that we had more consistent last we had control over form and in fact we could sweep over the whole course of things change them all want to live or something you writers can self-publish I built a little front-end things so that they could click publish only things and now we don't have to ask engineers to push the content was really easy to update it was really easy to create all the amenities of the principal came to me and said I need a calendar of every standard bigoted process in we have mapped across the year I could make that was all data existed and this was really exciting us we
still a handful challenges them we have multiple sources of truth before but it was like a thousand multiple sources of truth and now we had to enact real we we have our online learning platform that my real engineers may and then we had this curriculum thing that and there were places where they duplicated content bidding community we have a lot more internal users joining in turn started you with teachers who we on board started using as a was such an easy way to write it so our curriculum started of we got past the 1st you want to change that introduce nations and probably the biggest challenge of always has turned out to be like old really big project and as I said before no engineer and this was the 1st real thing that I a self we faced the
it how consolidate truth and communicate
between 2 tools that do very different things that need to maintain a lot of similar the level builder which is our tool that the engineers made for making all of our online learning is new things about level progressions it needed to know things about the instructions students a teacher the starting code for different projects for example large what a final product should look like that's the truth that this tool should know in my mutual it should know the truth of the teaching guide and additional resources and files videos unless description assessments and objectives and standards in all those things on that slide was showing you before evoke at both whatever and the goal is to have those things live in 1 place but how many ever going to do that well so I got my engineers to give me an adjacent point so I could get all that good stuff level over the last 1 it
but I was not allowed to communicate with our tools right remember I I gotta be outside of these these streams I cannot let my tool get into their too so I would like to the drawing board and a set of
static worked so well for everything else could static work for Jason and it turned out like they are static were produced kind of a cool discovery that I made that I could publish out essentially a static PPI and again there is no communication my tool exploded tomorrow that server that's sitting in the corner of the office staff prior normal back I also was able to use this to build Soria activity into the In the lesson plans that we've made is if I had this API for the other site access a habit for our so I started to take a static thing and make it a little less static with little Javascript in there
that I was happy all those hundreds of thousands of teachers using this we migrated all of
our curriculum on this thing and it actually kind of
work it was amazing and that means for more
users to be on the system that are critical of all the men needed to be able the hot what was happening there were teachers doing people who were in the office with doing the needed out there doing anything to recover if anything not terribly awry and I went back up to the Internet and I said there's gotta be a package for this and it turns out that were packages
is the means such a package called Jango reversion which let me keep that version history and roll back and another 1 called reversion compare which gave me like a giddy kind of you into all this work so now I'm able to support all those other people that are using this and I'm able to have some level of control over whether what they make plan we also were able to expose some of this 2 teachers so now I can let my teachers know this was the last 7 and was updated in this what this article yeah that big
project they no that's still a problem I I'm I'm kind of in this phase of the war to it happened that we drives but the no mechanical so there's this proc has yet to be but it works and I I'm kind of
amazed that it works some takeaways that I found in doing this is to give you perspective of somebody coming totally as an outsider having never ever done a thing like this never worked in general there's a package for their wherever everything so so these are some of the ones that I found most useful but there are many many more but
sometimes way to men and I think that is a an issue for somebody coming to this new is that it is very difficult to economic we find the best thing to do other things and gender packages proved to be a very useful place for me to go but it's still wet that sometimes I was testing out 4 or 5 or 6 different packages before about something we kind of did what I want and I like and like to see somebody take ownership over really getting and providing new new uses a guide to what's the best
start small and don't be afraid iterate things that I tell my students that are really hard for me to take and I think they're really hard for any of us right you wanna start with the end point you wanna start with the thing that does all beautiful things but a I was only able to get here because I could really small steps 1 at a time in each 1 built on the last there's a lot of tutorials out there but it is not as much great instructions and as as an educator this is something that I want to bring to the community say it's OK that there are tutorials that are just strictly tutorial meaning do this do this do this and you'll end up at an end point but we want to bring new users and people in the fall you also need to help them identify with agree construction is happening to you understand the concepts behind why you're doing I think 1 of the biggest challenges that I found in going in Django was that when you go through the official tutorial is like 47 different ways to set up a view and it has to go through all of them and and I don't know what the best way is for what I want to and so really thinking about how we instructed users on how to wrap their minds around something of like this state advantage of the community like I totally didn't and in fact this is the 1st time I have engaged in the general community I like to just jump into the deep and so 1 topic conferences my 1st interaction the but really it's like I've been I've been working on the slack community for Seattle Jango users forever but I've never engage the literature reading just that take advantage this community because this is a very big and powerful clearly you doing that summer personally fitness is more a a reflection for me but you might find use of this I would be wary I that you can't form or the all when all you have is a hammer mentality this is something I can because I was no I was now the sole engineer the thing that I was the user for my team will for really easy for them to kind of satellite next me going on but you couldn't make a thing also support all of our documentation for over 2 years well now does that too I bet you couldn't look it up the slack so that we could like published from a slack Amanda see what was going on about well over that they guess would do that too I bet you could hook it up to a tiny servo and on desk so that we could have a slack command at random well I'm not really good at saying no but it is kind of a cute will come out of the state that I was really worried
I was going to go along and so fortunately I did not want to thank you but the real reason I came here is because I need help I started this thing and it's now wrote the for me and so I am I'm you reaching out we have engineering opening but we also have a lot of volunteer years but the code that or such that such jobs I don't know that there's a ton of posting right now but we're always taking engineering positions the volunteer there is more or less for volunteer to help me figure this out you would do that we start me that's regarding classrooms and we have teachers all over the country who were making to get people working in industry in the classroom they wanna get faces that look like a student spaces so that they could have somebody tell them that this is a real thing that you can do answer so really encourage you if you're at all interested in students the sign up on that because you will get posts from teachers and could use them in department is that of the optimal nodding your site the teachers know the computer science important they don't know what to do you can help that that's the only time so have 20 questions and what know and and great talk thank you and my question is if you were to do it all over again on what you know now how would you do differently whole I the variance of wouldn't do see how because I still have my full time job writing curriculum and this takes just a lot of time I know I I honestly don't know that I would do it differently than I done it unless I can do it with prior knowledge I would stop the static stuff I would I would start really constrained and not build out all these other features that turned out to be really nice things that we're only them out so you're in the middle school teacher originally asked did you find as you were building this uh building is out that you truly references from year teaching experience and trying to think about it from the students perspective sort of or had to real user experience I found myself enterprising with my students a lot because it's really easy and the teacher's saying that plane and you take small steps and not by more than you can chew and then I will realize that I go for days without committing and I was just like randomly going down the rabbit hole because that's that's the mentality they got it so it may be hampered by the questions that every time I yell at them it's important I yell at them because we need to be reminded that that this is the natural inclination is not too likely everything out ahead of us some players very slowly but that is amazing you when you know that you have to then the state for the break believe because there's a lot fewer this
him so in R