Inspiration

I've been a high school teacher for over twenty years, starting in new York City, and then moving to international schools in China, Vietnam, and now in Chile. I've created software for years to address challenges in my teaching, and AI tools have accelerated this process. I've been an evangelist for teachers learning to code and build their own tools for over ten years. Edtech companies typically get the process backwards because they assume what the big challenges are of the job. Companies guess, but teachers know.

This project came from one such issue I've seen throughout my career - the gap between what school documents say they teach, and the reality of what actually gets taught. This is usually because these documents are opened once a year on a faculty work day, often because an administrator says "are these up to date?" People panic, scramble to update, and then not a word is mentioned until the next time.

It is a major undertaking to review unit plans, plan lessons, assess students, manage classroom routines, grade student work, write feedback, and also keep tabs on the five to six classes worth of students. It comes as no surprise that updating curriculum documents moves to the back burner. It's not fun and it takes time that teachers don't have, especially at the end of the year when the teaching is complete.

What might it mean to flip this process around, and use the teaching materials you accrue over the semester or year as a source for this documentation? We build slide decks, worksheets, quizzes and tests, and other materials that are based in the curriculum, and ideally our curriculum is clear from these materials. Could we build our syllabus, assessment maps, and other resources that administrators expect from these things? What if this process could be...even a little fun?

The premise is that AI might be able to explore course materials and tell the teacher what the course is about, what the course sequence is, what is covered, and what is not. The teacher ultimately decides what these documents contain, but the AI does the hard work of observing both the written curriculum, and the unwritten rules and priorities of the course.

Imagine the course materials themselves fueling creation of new activities, ideas, and excitement for iterating on the course for future students. This is the promise of the Curriculoctopus project.

Teachers do a lot of things simultaneously, which is why the Octopus is an appropriate metaphor. According to https://www.discovery.com/science/Octopus-arms, an octopus has nine networks of neurons throughout its body: one central network, and other networks distributed in each of its eight arms. This is the concept behind this project.

What it does

This web-app project uses an HTML front end and a nodeJS back end to help teachers analyze their course materials from nine independent perspectives, or 'brains', each of which teachers use in their teaching.

A teacher to uploads the text or Markdown of a teaching material (such as the text export of a Google Slides document), and the app processes it through each 'brain' of the octopus with the help of GPT-5.6.

The first is an overview - a full pass through the uploaded material to identify the main ideas of the resource.

The material is then analyzed through the perspectives of eight other teaching brains:

  • Knowledge base: the concepts, decisions, and teacher notes on what is taught.
  • Assessment information: Tasks, checks, rubrics, criteria, and evidence expectations.
  • Course philosophy: Purpose, values, and beliefs about teaching and learning.
  • Language and tone: Voice, vocabulary, question forms, sentence patterns, and phrasing worth preserving from course materials.
  • Units and sequence: Units, projects, sequence, pacing, and transitions.
  • Standards and proficiency: Competencies, targets, levels, and descriptors to monitor progress
  • Instructional practice: Teacher moves, routines, grouping, scaffolds, and student actions.
  • Artifacts and resources: Handouts, templates, links, products, and materials that students use for learning.

The app extracts a knowledge base of relevant information from these perspectives using GPT-5.6, and creates a set of proposed 'course notes' based on the material. The teacher can review the notes, edit them, and save them for future use. The app uses simple search functions to narrow down the knowledge to what the teacher needs at any particular time.

In the process of building these files, Curriculoctopus shows the user what it has learned about the course, and makes suggestions for what to upload next to make the curriculum complete. The app also allows the teacher to generate course documents from the knowledge base, including a pacing guide, syllabus, and/or assessment map. These can be generated based on the entire course, or based on tagged filters that the teacher adds to source material or knowledge pages.

Another resource this can produce is an LLM context file. This is a MD file that gives the user a full context of the course that can be uploaded into the large language model of their choice. Many teachers have tried AI and gave up because the materials weren't matched to their context. This LLM file, grounded in the materials of the course, gives any language model the information needed to produce useful resources right away.

Seeing the possibilities, it compels the user to upload another document and see what new insights the app can develop over time. This lets the teacher view their course with new eyes and be excited by the possibilities.

At this time of development, everything is saved to the local filesystem. This keeps the security needs simple as the core functionality of building the curriculum store is developed.

The repository has a sample content file - directly exported as MD from course materials - that can be used to test this.

How I built it (with Codex)

I built a very simple CLI version of this concept as a proof of concept about a month ago. It showed potential, but no teacher is going to use a tool in the terminal. This was also using a local model running on the host computer, so it was slow. But even in this arrangement, I saw great possibility.

I knew this had to be redesigned as a web app, and that building from scratch with what I had learned from my previous experience would be a good move. The OpenAI hackathon appeared at the perfect time. I had conversations with GPT 5.6 developing a more usable version for the time frame of this hackathon. I developed a series of design documents that emphasized how I pictured this working. I am not a software engineer, but I do have coding and development experience that I used to give GPT-5.6 ideas about structure and how I wanted to build this in phases to prove the functionality in the time frame the hackathon, but build enough of the skeleton that it could ultimately be shared with other teachers.

Codex took these documents and made a plan to accomplish the first phase in one go. I was shocked to see that it made it to a functioning app on the third request. I needed to refine the user experience because it worked too well - over 100 pieces of knowledge on the first try. This meant I had to review them all.

The iteration with Codex made me realize that the knowledge base was structured to be useful to software readers, but I wanted the knowledge pages to be themselves useful to teachers. So we iterated on how to make the documents more like what I knew teachers would find helpful.

I also knew that since teachers are often handed software tools and asked to use them, there is a lot of platform fatigue. I needed this to have as smooth of an onboarding process as possible. With help from Codex, and GPT-5.6 Sol, we simplified the interface to allow a teacher to create a course, upload text, and start the system reading materials in just a few clicks.

We refined the nature of the knowledge base content to be useful and explorable through working links, tags, and filters. We then renamed everything to use teacher friendly vocabulary so that the value here would be instantly clear.

Challenges I ran into

The main challenge runs parallel to one that teachers wrestle with every day. How do you balance the big picture with the small? In a short amount of time, do we plan the unit from start to finish? Or do we plan the lesson for class next block?

It is difficult to have GPT-5.6 get enough macro-structure knowledge of a course while also knowing what is important within a single snippet of text. It is a balance between the two. Codex helped me decide that we needed an overview pass first, and then mine the materials for relevant information for each of the eight perspectives. I also figured out that it was better to let good programming, filtering, and logic to do some of the work to keep the interface responsive, and use the LLM for the more fuzzy classification and judgement on what to take from input materials.

Doing everything at once was costing me a lot of tokens on the API. My first ingestion of material cost almost a dollar using GPT-5.6-Sol. I switched to gpt-5.6-luna to save on tokens, but realized in doing so that it was capable enough for the job, especially because of the way we split this into manageable steps.

Teachers break down big ideas into smaller ones. This idea of using AI for automated curriculum documentation is a big task. I have found that being good at breaking down ideas for students has made me effective at doing the same process with Codex.

The last optimization step was trying to reduce token count where possible. Codex was honest that changing models would not address the issue. It helped me analyze different submissions to the API endpoint and see where we could make the system faster and not redundant. I could not have done this on my own, and it resulted in a much faster reading of materials and reduction in token use.

I was also impressed how Codex kept me focused on the core functionality. When I asked GPT-5.6-Sol (at turn 22 of the conversation) if it was appropriate to consider moving to Firebase for information storage, it pushed that off for the purpose of meeting the core goals of the project. As someone that can sometimes chases shiny objects, it's impressive to see Codex being the principled developer in the room when I considered straying from the original plan.

Accomplishments that I'm proud of

One of my design goals was to make discovery and exploring these materials more enjoyable than it usually is. I have loved looking at what GPT-5.6 finds in the source documents. It quickly catches on to what is missing, notices my own stylistic decisions about letting students do notebook work before opening the computer. It really is serving as a smart assistant_, or a curious coach that doesn't seem to mind identifying both ways the current course is complete, and things that are missing. It makes wise suggestions for other documents to upload based on what is currently in the course notes.

The course documents that this produces are strong representations of what is taught in the courses for which I have uploaded materials. I'd be satisfied handing these materials to a colleague new to the course - a reasonable two pages of the main ideas.

I really believe this is a powerful opportunity to use AI for good in education. Educators should know the power available to them to build software that solves the problems they face.

What I learned

I have learned the importance of striking a balance between programming principles and letting the LLM do the work. This is a major challenge to anyone wondering whether programming has a place. Having the vocabulary to write to an LLM with the right computer science terminology is a reason I can create an app of this complexity with a small number of prompts. But using regex filtering instead of having an LLM sort out tags makes this fast. Leaving GPT-5.6 to use its judgment to identify teaching snippets is a logical use of that tool.

I am also seeing from the Discord how many people have burned through their usage limits by going all the way to the best model at highest use. I change the level when needed, and Medium has been good enough for me to develop this from start to finish. Tokenmaxxing might be the thing on X, but being deliberate in my model choice has led me to make plenty of progress on this project while spending time with family and friends during summer vacation.

The last thing...it makes me even more certain that teachers need to be building with this technology to solve their own problems. I know many teachers who tried ChatGPT and gave up because it didn't answer their questions or generate a valid lesson plan. But that is the bottom level of use of AI. It isn't until I've worked with teachers to show them how to build with AI that I see them really get it.

What's next for Curriculoctopus

This tool has great potential, and I see the need to get it out in the world. I would need to add authentication and a token budget for users so that this doesn't burn a hole in my pocket.

Since the current set-up is based on a local filesystem, I'll need to move this to Firebase to accommodate retrieval at a larger scale. That, of course, requires that I add user authentication so that I can monitor and control token usage for each user. On each course Settings page, there is a tab that shows token usage for generating each document. This is a step in that direction.

Finding a way to release this in a way that makes it self-sustaining is another step, but that's something I need support to do.

I've been in education my whole career. The general sentiment in education compels us to often give away our work for free. I think COVID helped us understand our value better, but there is still a long way to go for recognizing the work that educators do. If what we create provides value, we should be able to use that value to help these projects live on rather than just labeling it as a labor of love. This certainly costs money to support token use, and it's not easy to ignore what that means as user count increases.

If you want to help bring this to more people, let me know how we might work together.

I believe educators should learn how these tools can help them do their work. I've helped small groups of people at a time do this in workshops that I've run, but the number of people I've helped at this point is limited. I hope to raise the visibility of efforts like this to help others use AI to build tools that help them develop their practice.

Built With

  • curriculum
  • edtech
  • knowledge
  • llm
  • node.js
  • teachers
Share this project:

Updates