Mike is currently an Associate Teaching Professor at Northeastern University in the Khoury College of Computer Sciences. His primary teaching interests are in computer systems, computer graphics, and software engineering. His research interests are related to performance engineering (dynamic analysis), software visualization, and computer graphics.
Along with teaching and research work, Mike has juggled occasional consulting work as a 3D Senior Graphics Engineer in C++. Mike also has a YouTube channel with lots of programming content at: https://youtube.com/c/MikeShah . Outside of work, you'll find Mike perfecting the art of making pizza, or otherwise on a run.
The strategy design pattern is a fundamental behavioral design pattern allowing clients to control the behavior of an object at run-time. The strategy pattern can be seen in action in the C++ STL for example applying 'policies' to how to execute operations (e.g. std::par or std::seq as one example) -- thus strategy is often known as the 'policy pattern' as well. The strategy design pattern is commonly used to choose the algorithm at run-time to best solve a problem -- separating the algorithmic behavior from the object itself to help make our software more maintainable, extensible, and flexible. In this […]