Holly teaches music at a middle school. Every year she has to build a "pull-out" schedule where 20 groups of kids rotate through 4 periods across a two-day cycle. The kids can't miss the same class period too often, and the rotation needs to be fair across weekdays. She and the other music teachers used to do this by hand in spreadsheets. It took forever.
I'd been coding for about three months at this point. I knew basic Python from CS50 and some self-study. I had absolutely no business trying to build something like this. But Holly was complaining about the schedule one night and I said "I think I can automate that" before really thinking it through.
The algorithm was simple: divide 20 groups into 5 subgroups of 4, rotate them through positions, and shuffle after a full cycle so kids don't always go on the same weekday. That's it. A rotation with some randomness. Nothing fancy.
It still took me weeks! I didn't know how to structure a program. I'd write 50 lines, realize the logic was wrong, delete everything, start over. I must have rewritten the core loop a dozen times. There was no GUI, no interface. You ran python3 schedule.py in the terminal and it walked you through a series of prompts: enter a start date, pick day 1 or day 2 of the cycle, add any days off, choose how many weeks to schedule. All text input, all manual confirmation. It even asks "Are these days correct? y/n" after every step because I didn't trust myself to handle input validation properly yet.

Once you get through all the prompts, it spits out a table right there in the terminal showing every day, every period, and which group goes where. Groups labeled A through T, rotating through the four periods across the two-day cycle. Then it saves the whole thing to a CSV file so you can open it in Excel or Google Sheets.

Holly had to ask me to run it for her every time because she didn't have Python installed and I was not about to walk her through pip.
But it worked! The schedule came out correct, and Holly didn't have to spend a week building it by hand. I remember showing it to her and she was like "wait, that's it? It just... does it?" Yeah. That's the whole point of programming.
The code lives at LessonScheduleBuilder/PythonScheduleMaker. It's rough. I look at it now and cringe at the variable names and the lack of any real structure. But it was mine, every line of it.
This was my first real project. It wasn't a tutorial or a homework problem. It solved an actual problem for someone I care about. I didn't know it at the time, but I'd end up rebuilding this thing twice more.