Artificial Intelligence: Principles to Practice