Paradigms of Artificial Intelligence Programming