This is an advanced course in computer science, studying topics in artificial intelligence especially on machine learning and natural Language processing. This course covers machine learning algorithms such as Hidden Markov Model, Maximum Entropy Model, Perceptron as well as their applications in natural language processing such as segmentation, tagging, clustering, etc. Advanced topics such as Viterbi algorithm and Expectation-Maximization algorithm are also discussed. Prerequisites: CS171.