In all creative disciplines fundamental ideas reoccur in different shapes. This cannot be truer in computer science and software engineering. Advances in technology even enables old ideas to appear as pure novelties. In this article we will focus on an intellectual toolbox associated with morphing existing ideas, concepts, and technique to fit new scenarios. This is tightly connected with generalization and pattern matching, which are both prominent ingredients in achieving success in professional practice and various competitive activities. The latter is examined in more detail in my article about competitive software engineering . To make the point clear let us use a concrete example from Petlja , a website maintained by the Serbian Mathematical Society, which also organizes official competitions in mathematics and programming. The problem we will use is called Mingo . Below is its description translated to English. Problem Description Now, after completing the competition, Miroslav ...
This blog contains posts mostly from the domains of computer science and systems/software engineering. Each post is written in a self-contained manner with links toward external sources. These should be treated as mandatory reading, as they explain concepts not repeated in posts. Every topic is treated in pragmatic fashion using concrete examples implemented in various mainstream programming languages (like, C++, Python and Java).