This topic can be somewhat sensitive, so I'll probably tread on a few toes, please forgive me. There is no authoritative answer for this question, as it really depends on what languages you like programming in. AI programs have been written in just about every language ever created. The most common seem to be Lisp, Prolog, C/C++, recently Java, and even more recently, Python.
LISP- For many years, AI was done as research in universities and laboratories, thus fast prototyping was favored over fast execution. This is one reason why AI has favored high-level langauges such as Lisp. This tradition means that current AI Lisp programmers can draw on many resources from the community. Features of the language that are good for AI programming include: garbage collection, dynamic typing, functions as data, uniform syntax, interactive environment, and extensibility. Read Paul Graham's essay, "Beating the Averages" for a discussion of some serious advantages:
PROLOG- This language wins 'cool idea' competition. It wasn't until the 70s that people began to realize that a set of logical statements plus a general theorem prover could make up a program. Prolog combines the high-level and traditional advantages of Lisp with a built-in unifier, which is particularly useful in AI. Prolog seems to be good for problems in which logic is intimately involved, or whose solutions have a succinct logical characterization. Its major drawback (IMHO)
Georg Thimm maintains a webpage that lets you search for upcoming or past conferences in a variety of AI disciplines.
The short answer is: MIT, CMU, and Stanford are historically the powerhouses of AI and still are the top 3 today.
There are however, hundreds of schools all over the world with at least one or two active researchers doing interesting work in AI. What is most important in graduate school is finding an advisor who is doing something YOU are interested in. Read about what's going on in the field and then identify the the people in the field that are doing that research you find most interesting. If a professor and his students are publishing frequently, then that should be a place to consider.
This covers a number of game playing techniques, notably checkers and backgammon because so much good research has been done on these problems and because so many different techniques have been tried.
If no obvious key, either stand alone or compound is available, then the last resort is to simply create a key, by assigning a unique number to each record or occurrence. Then this is known as developing an artificial key.
If no single data element uniquely identifies occurrences within a construct, then combining multiple elements to create a unique identifier for the construct is known as creating a compound key.
When one of the data elements stored within a construct is utilized as the primary key, then it is called the natural key.
All Candidate Keys excluding the Primary Key are known as Alternate Keys.
Statistical AI, arising from machine learning, tends to be more concerned with "inductive" thought: given a set of patterns, induce the trend. Classical AI, on the other hand, is more concerned with "deductive" thought: given a set of constraints, deduce a conclusion. Another difference, as mentioned in the previous question, is that C++ tends to be a favourite language for statistical AI while LISP dominates in classical AI.
A system can't be truely intelligent without displaying properties of both inductive and deductive thought. This lends many to beleive that in the end, there will be some kind of synthesis of statistical and classical AI.
There are many, some are 'problems' and some are 'techniques'.
Automatic Programming - The task of describing what a program should do and having the AI system 'write' the program.
Bayesian Networks - A technique of structuring and inferencing with probabilistic information. (Part of the "machine learning" problem).
Constraint Statisfaction - solving NP-complete problems, using a variety of techniques.
Knowledge Engineering/Representation - turning what we know about particular domain into a form in which a computer can understand it.
Machine Learning - Programs that learn from experience or data.
Natural Language Processing(NLP) - Processing and (perhaps) understanding human ("natural") language. Also known as computational linguistics.
Neural Networks(NN) - The study of programs that function in a manner similar to how animal brains do.
Planning - given a set of actions, a goal state, and a present state, decide which actions must be taken so that the present state is turned into the goal state
Robotics - The intersection of AI and robotics, this field tries to get (usually mobile) robots to act intelligently.
Speech Recogntion - Conversion of speech into text.