Conclusion

\label{sec:conclusion}

We began the paper by surveying the historical meaning of “serendipity”, drawing on previous theories and collecting historical examples from various domains. We used this survey to develop a collection of criteria which we propose to be computationally salient. Adapting the “Standardised Procedure for Evaluating Creative Systems” (SPECS) model from , we proposed a detailed set of evaluation standards for serendipity. We used this model to analyse the potential for serendipity in case studies of evolutionary computing, automated programming, and recommender systems. We saw that the proposed framework can be used both retrospectively, as an evaluation tool, and prospectively, as a design tool. In every case, the model surfaced themes that can help to guide implementation. We then reviewed related work: like , we propose a two-part definition of serendipity: discovery followed by invention. Our process-focused model of serendipity elaborates both stages, and our case studies show how to use this model to evaluate existing and hypothetical computer systems. In contrast to most prior work in computational creativity, for computational serendipity, evaluation of various forms needs to be embedded inside of computational systems.

In our discussion, we reflected back over the proposed model and case studies, and outlined a programme of research into computational serendipity. We have also drawn attention to broader considerations in system design. Our examples show that serendipity is not foreign to computing practice. There are further gains to be had for research in computing by planning – and programming – for serendipity.