Fundamentals of Computer Programming with C#
Chapter 23. Methodology
of Problem Solving
In This Chapter
In this chapter we will discuss one recommended practice for efficiently
solving computer programming problems and make a demonstration with
appropriate examples. We will discuss the basic engineering principles of
problem solving, why we should follow them when solving computer
programming problems (the same principles can also be applied to find the
solutions of many mathematical and scientific problems as well) and we will
make an example of their use. We will describe the steps, in which we
should go in order to solve some sample problems and show the mistakes
that can occur when we do not follow these same steps. We will pay attention
to some important steps from the methodology of problem solving, that we
usually skip, e.g. the testing. We hope to be able to prove you, with proper
examples, that the solving of computer programming problems has a "recipe"
and it is very useful.
Basic Principles of Solving Computer
You probably think this chapter is about an idle talk like "first think, then act"
or "be careful when you write and try to not miss something". In fact this
chapter will not be so tedious and boring and will give you some practical
guidelines for solving algorithmic problems as well as other problems.
Without making any claim of completeness, we will give you some important
suggestions, based on Svetlin Nakov’s personal experience acquired
during his work of 10+ years as a competitor in International and Bulgarian
programming competitions. Svetlin has gained tens of International awards
from programming contests including medals from International Olympiad in
Informatics (IOI) and has been training students from Sofia University St.
Kliment Ohridski (SU), New Bulgarian University (NBU), Technical
University of Sofia (TU-Sofia), National Academy for Software
Development (NASD), and Telerik Software Academy, and his experience
during the last 10 years confirms that this methodology works well in practice.
Let’s start with the first key suggestion.