50.021 Artificial Intelligence

Home / Education / Undergraduate / Courses / 50.021 Artificial Intelligence

Course Description

Artificial intelligence (AI) is a rich field spanning formal systems for representing and processing symbolic information, computational models of human cognition, and a range of techniques for learning, planning and reasoning under uncertainty. In this course, students will gain an appreciation of what “artificial intelligence” means, and how it can be usefully applied to real-world problems. Students will learn the intricacies of state-space search and constraint programming. Through an in-depth treatment of knowledge representation via propositional and first-order logic, students will understand how expert knowledge can be fed into and be processed by modern computers. In addition, students will acquire skills in using planning algorithms to find solutions to optimization problems, and understand how to use probabilistic reasoning to draw inferences in uncertain environments.


  1. 50.001 Introduction to Information Systems & Programming

Learning Objectives

By the end of the course, students will be able to:

  1. Define the meaning of “artificial intelligence”.
  2. Name examples of AI that are successful in real-world problems.
  3. Describe the strengths and limitations of various state-space search algorithms, and choose the appropriate algorithm for a problem.
  4. Formulate and solve problems in the framework of constraint satisfaction problems.
  5. Formulate and solve planning problems.
  6. Use probabilistic modelling techniques to solve problems with noise, incomplete information, and uncertainty.
  7. Summarize the essential components of gradient-based optimization in supervised learning problems
  8. Explain the impact of stepsizes in gradient-based optimization
  9. Recognize the difference between batch and stochastic/mini-batch gradient descent and apply improved weight update methods such as momentum term, RMSProp and Adam.
  10. Be able to apply the training and running of trained neural networks in tensorflow
  11. Be able to investigate the impact of essential parameters such as stepsize, batchsize and training iterations when training a neural network
  12. Discuss the usage of different neural network structures such as fully connected, convolutional and pooling layers
  13. Be able to recall state of the art neural network components such as batch normalization layers and residual connections
  14. Be able to recall the basic ideas behind neural networks used for machine translation and sequence to sequence learning.
  15. Be able to construct input samples that are able to fool neural networks
  16. Explain the difference between training from scratch and finetuning, be able to run finetuning of neural networks.

Measurable Outcomes

  1. List current useful real-world applications of AI.
  2. Implement state-space search algorithms for a variety of problems.
  3. Solve constraint programming problems.
  4. Infer new information from provided knowledge.
  5. Use planning algorithms to find optimal solutions.
  6. Solve problems with noise and uncertainty using probabilistic techniques.