CS 371p Fall 2026 Ahmed Khalil
Why are you in this class?
I am auditing this class to strengthen my software engineering skills. In robotics/controls research, we often write “academic code” that works once for a paper, but I want to learn how to write robust, production-quality C++. High-performance C++ is essential for real-time control loops and working with frameworks like ROS 2.
What are your expectations of this class?
I expect to fill in the gaps in my self-taught knowledge. I want to leave this class with a deep understanding of memory management, standard library containers, and object-oriented design patterns that I can apply immediately to my research simulations and hardware interfaces.
How much C/C++ do you already know?
I use C++ and Python daily for my research (mostly within ROS), so I am comfortable with the syntax and basic functionality. However, I want to move beyond “C with Classes” and understand modern C++ standards (C++17/20) and best practices.
How did you like the first lectures?
Due to a busy research schedule, I have been watching the lectures online rather than attending in person. Since I don’t have the access code for the daily quizzes, I make sure to pause the recording and solve the problems myself to check my understanding before the answers are revealed. It’s a great way to stay honest with the material even without the grade incentive.
How did you feel about the cold calling?
Since I am watching the lectures online, I don’t experience the direct pressure of being called on! However, much like with the quizzes, I try to pause the video when the professor asks a specific student a question to see if I can formulate the answer myself.
What made you happy this week?
I finally got a simulation environment running correctly for my current research project after fighting with dependencies for a few days.
What’s your pick-of-the-week or tip-of-the-week?
My tip-of-the-week is Compiler Explorer (godbolt.org). It’s an amazing web tool that lets you write C++ code and immediately see the assembly output. It’s incredibly useful for seeing how different optimization flags change your code or comparing how different compilers handle specific C++ features.