Engineering Artificially Intelligent Systems