CS 371p Fall 2026: Dhruva Kumar

Which concept from this week surprised you, challenged you, or finally “clicked”?
The templating concept is still challenging me. I would expect that templates have some kind of inheritance structure, that allows that iterators and pointers, for example, to descend from one interface that prescribes the iterator functionality and ability. Since C++ is strongly typed, I was surprised that you can create these templates and assume to an extent that the typed passed in is right. Perhaps my understanding is wrong and will need to be corrected!
How did the collaborative quizzes help you understand the material - or show you what you still need to work on?
The collaborative quizzes showed that I still need to work on my understanding of iterators, and the efficient algorithms one can create with them.
Did the programming challenge change how you think about solving problems under pressure?
The programming problem was nice as it got me to revise some fundamental “leetcode” type patterns, such as two sum and bucket sort. It also taught me some new algorithms, such as the O(N) algorithm to identify if an element is more than half of the contents of a list
What perspective did the assigned paper give you on real-world software engineering?
I really liked this week’s paper. I had heard of the single responsibility principle before, but had not ever read the primary source, or fully understood what it meant. What does a “single responsiblity” truly mean? I think considering the principle from the testing perspective helped me. If a class has only one axis of responsibility, it can be much easier to test.
Was there a moment of discovery, frustration, or teamwork this week that stands out?
The ed lesson was mildly stressful for me. I had not studied iterators as well as I should have, so I had to rely on advice from my peers around me in order to complete the second part at time. Thinking about the bidirectional iterators and looking forward to check the second condition was a new concept for me, but I am glad to have that understanding under my belt and use it in the future on the exams, where needed.
Tip of the Week
My tip of the week is to make sure to keep grilling your AI agent on any design or code decisions it makes. I have been trying to improve on this aspect, especially since what the agents output is pretty good. But reviewing the code design with the agent can either find holes in the agent’s design which it can then correct, or give you a better understanding of the design should you need to explain it, its tradeoffs or the alternatives.