Development of 'thinking' computer systems