A Programmers Guide to AI