  Research on algorithms has drastically increased in recent years. Various
sub-disciplines of computer science investigate algorithms according to
different objectives and standards. This plurality of the field has led to
various methodological advances that have not yet been transferred to
neighboring sub-disciplines. The central roadblock for a better knowledge
exchange is the lack of a common methodological framework integrating the
perspectives of these sub-disciplines. It is the objective of this paper to
develop a research framework for algorithm engineering. Our framework builds on
three areas discussed in the philosophy of science: ontology, epistemology and
methodology. In essence, ontology describes algorithm engineering as being
concerned with algorithmic problems, algorithmic tasks, algorithm designs and
algorithm implementations. Epistemology describes the body of knowledge of
algorithm engineering as a collection of prescriptive and descriptive
knowledge, residing in World 3 of Popper's Three Worlds model. Methodology
refers to the steps how we can systematically enhance our knowledge of specific
algorithms. The framework helps us to identify and discuss various validity
concerns relevant to any algorithm engineering contribution. In this way, our
framework has important implications for researching algorithms in various
areas of computer science.
