Computational artifacts : Towards a Philosophy of Computer Science (2018)