Second Day.
"Alright, class," said Prof. Gomez as she wrote three large letters on the whiteboard:
CPU.
"Let's warm up with the basics. Who can explain what a CPU is in a way even a non-techy person can understand?"
No one had stood up yet, but someone immediately spoke.
"It's the brain of the computer," said Zayden confidently. "But if we compare it to a human, it's not just the brain. It's also the decision-maker, the one that processes all instructions, and literally the reason why the system is alive."
I looked over.
So confident. So many words. Like a final answer in Miss Universe.
Prof raised an eyebrow. "Go on."
"There are multiple cores inside it—each capable of handling threads independently. Think of them as multiple minds working at once, doing different tasks simultaneously."
The class was clearly impressed. Some even nodded.
Me?
I shook my head.
I'm not letting him be the only smart one here.
I raised my hand.
"Actually, it's more than that. The CPU is like the conductor of an orchestra. No matter how good the instruments are, without coordination, the sound will be a mess. The CPU makes sure every part of the system knows when and how to act."
Prof nodded.
"Interesting metaphor."
Zayden turned to me, slightly smiling—as if saying challenge accepted.
"But even a conductor needs a score to read from. Without the instruction set architecture, the CPU is useless. It's all theory with no execution."
I answered immediately.
"And that's why microprogramming exists—to translate complex instructions into manageable tasks. It's not just about coordination. It's about control, flexibility, and security."
Our classmates were now glancing between us.
It felt like a simple recitation was turning into a face-off.
Prof?
Stayed quiet—but clearly entertained.
Zayden leaned back slightly. "What if the CPU gets overloaded?"
I smiled. "That's what multi-threading is for. Context switching. Caching.
And if that doesn't work, the OS handles process prioritization to prevent a system crash. The CPU adapts."
Our classmates clapped—even Prof. Gomez.
She said we were both amazing—like wow.
"That's enough for today," Prof. Gomez said, clearly impressed.
"I think we've all learned enough just by watching these two. Good job, Kiera, Zayden. Class dismissed."
And just like that, tension filled the room—and not the heavy kind. It was intriguing. The kind where even a basic recitation turns into a competition.
After that clash between me and Zayden in the first subject, we didn't stop.
---
Second Subject – Math (Prof. Santiago)
"Derivative of x² + 3x – 5?" asked Prof as he walked down the aisle.
Zayden raised his hand fast.
"2x + 3," he said effortlessly.
"Correct. But what if I ask for the integral of that function?"
I raised my hand.
"(x² + 3x – 5) dx = (1/3)x³ + (3/2)x² – 5x + C," I answered, straight.
Zayden glanced at me.
I smiled.
Prof nodded. "Nice one."
---
Third Subject – Physics (Prof. Arrieta)
"Tension on a string with two weights?" Prof asked, showing a diagram on the projector.
Zayden and I answered at the same time.
"Depends on the mass and acceleration—"
"—and whether there's friction on the pulley," I added.
Prof smiled.
"Excellent. But slow down, we're not in the advanced level yet."
---
Fourth Subject – Logic and Reasoning (Prof. Estrada)
Prof gave a logic puzzle.
She hadn't even finished reading the scenario when Zayden quietly spoke.
"Letter D. It's the only one that contradicts the initial premise."
I raised an eyebrow. He was right.
"Letter A," I said… "But yeah, that's wrong…"
Zayden glanced at me. "You were 2 seconds late."
"My brain is screaming: This smug jerk!"
But I forced a smile. Fine—challenge accepted.
---
Last Subject – Data Structures (Prof. Villanueva)
"Okay class," said Prof as she set up her laptop. "Today's warm-up: we have a list of integers. We need to implement a stack with O(1) push and pop operations. Any suggestions?"
The class was quiet.
I raised my hand immediately. "Use a linked list with a tail pointer. Constant time for push and pop."
Zayden raised a brow. "I'd go with a dynamic array and a top index tracker. More predictable memory usage, and faster access on modern CPUs."
Prof looked at both of us. "Good points. But what if we need a min-stack—one that returns the minimum value in O(1)?"
I raised an eyebrow. "We can store a min variable and update it on each push—"
"But what if the element you remove is the current minimum?" Zayden interjected. "You'd lose track of the actual next min."
I smiled, but in a way that said I wasn't backing down.
"That's why you keep a backup list. Track each min in a separate list during each push."
"Redundant memory," he replied. "Wastes space. Double stack with conditionals is cleaner and leaner."
"You can't say that for sure. What if you're handling millions of integers and memory fragmentation becomes an issue?"
"Then optimize at the hardware level. Clearly, you're still thinking in software abstraction."
We stared at each other.
Tight. Like one more move and we'd be competing on who grabs a keyboard faster.
"Enough," said Prof, pointing to the whiteboard.
"You two—solve this. Implement a min-stack with O(1) time for push, pop, and getMin."
We both stood up.
Whiteboard. I held one marker. He held the other.
I started. "Create two stacks: one for data, one for mins. Every push checks if the value is ≤ minTop—if yes, push to minStack."
Zayden continued. "And on pop, if dataTop == minTop, pop both. Constant time retrieval, efficient space usage."
We stared at each other.
It felt like the rest of the class disappeared. Just us two. No sound except the markers on the board and the tension in the air.
Then—
Clack.
A soft noise from the back.
Bryce.
He was standing by the door, hand on his backpack strap.
"You guys having trouble with min-stack?"
Everyone turned.
Prof said nothing.
Bryce smiled and slowly stepped inside.
"If you want real-time tracking, use a custom stack class that stores a pair: the value and the current min at that push. No need for two stacks, no conditionals. Cleaner. Faster. In execution, more solid than double-stack."