Recently, I’ve been experimenting with AI can generate a high-quality curriculum. ChatGPT looks good at a glance, but if you come with an intention to make it for class, you realize it is far far far from satisfying. The length is wrong, the tone is weird, the important concept is not being emphasized…
Worst of all, many of the AI edtech products are creating a new workflow or behavior that demands extra work for learners and teachers. Though they built feature after feature, I find most of them, tbh, terrible.
After I went to TCEA, and observed how great products like Curipod are, I started to learn what means to be “user-centric” in the AI field. Though they also generated a curriculum, the curriculum is carefully matched with the state’s requirement, such as the State of Texas Assessments of Academic Readiness (STAAR), that most teachers resonate with since the schools are promoting it.
The popular AI live grading is built for big classes but still allows teachers to check before sending it out. Spanish feedback is integrated because of the large Mexican population in Texas. In the Kahoot game, student’s names will be masked to protect students and have fun seeing their newly assigned names like an “imagined giraffe” that students can discuss with each other.
I’ve seen lots of great engineers and designers in YC. Their products are much more fancier, but they aren’t down to the ground even if they think they do. Tbh, I think that my ideas aren’t down to the ground after seeing Curipod too.
Hence, I decided to build things in the reversed order. I started without AI. I built this curriculum to teach tokenizers through Andrej Karpathy’s video.
My idea was simple: The best content online is usually 2+ hr videos or long-ass technical blog posts that freaked people out to even get started. But if we can engineer it a little bit, we can still introduce the content in-depth but with a friendly format like waitbutwhy.
Therefore, I built a prototype to experiment with this idea: Build a tokenizer from scratch Part 1.
I started with the minimal AI possible. I handwrote the curriculum and picked important concepts to expand and discuss. I used my tone to write and only asked AI to generate some code for interactive components.
And then I asked how people think about it. I presented this to a house full of ML researchers, in a talk in front of first-year students with only a tiny understanding of CS, in a deep learning class with undergrad students, on my Twitter, to regular software engineers, and asked multiple professors for feedback.
The feedback and ideas vary. People say,
“It's like W3 but not only for web development!”
“The ASCII code computation is confusing.”
“I love that I don’t need a separate notebook to learn. Maybe you should find a way to make all the code blocks build on top of each other.”
“I think it really chops concepts into small tiny parts. You give us mini puzzles to think through.”
“I don’t think first-year students understand the tokenizer. You should explain it more before doing the interactive part.”
“It’s playful and informal.”
I don’t call this process “gathering user feedback.” It is a process of imagining how we want to learn with more joy, curiosity, and imagination. We are collaborating on this imagination.
I ask so many people because I want to reach the most optimal format and content first (and of course, also to stroke my ego), and only think about what AI can help with later. I believe learning should be centered on learners first and gradually see which part AI can replace and do faster and better like Curipod does, not having AI first and trying to get it close to the learners. How do I want to learn? How do you want to learn? AI-first might be more convenient for engineers like us to do, but it easily loses the core purpose of learning.
People ask me, “How far can AI write an article like this one you do?” I realized it’s still very, very far away. It can say and scratch the surface of some knowledge, but GPT has a uniformly fun personality (like, let’s delve into!), and is unable to prioritize important concepts based on learners’ level of understanding and potential confusion spots. That’s why most AI-generated curricula suck. I hate the way we are learning now through 2-hour stressful YouTube videos, lectures, and long, difficult Medium articles already. I desire high-quality, fun, and challenging ways to learn. (AI can generate simple codes well though, which is very beneficial for me to build interactive components.)
But of course, it’s not fair to say that AI curriculum sucks. I spent a few hours learning and seeing my confusion spots, spent 20 hours writing and polishing my tokenizers with jokes that learners will resonate with, and revised, revised, revised after feedback. AI only has such limited information and understanding to start with compared to me. It is for sure much worse than I am. Therefore, the next step for me in this project is to find annoying tasks and outsource them to AI.
Learning is like camping in a forest. Sometimes it’s delightful when I discover that the visitor center sells S'mores. Sometimes it’s stressful when I realize our tent isn’t waterproof during heavy rain. Sometimes, it’s confusing as to why the fire doesn’t ignite. Sometimes, I bow in awe when I see a majestic deer. But they are all part of the learning journey.
love this. esther i wish u were my cs teacher