Calendar Handouts Staff  
6.034 introduces representations and algorithms used to build artificial intelligence systems in robotics, language, vision, etc.

  • 6.01
    This is the only formal pre-requisite but we will depend on it strongly. In particular, we assume that you can programs in Python, that you understand search algorithms (depth-first, breadth-first, uniform-cost, A*) and basic probability and state estimation to the level covered in 6.01

  • 18.02
  • We will assume that you know what the chain rule is and partial derivatives and dot products. If you have not taken 18.02 (or are not taking it concurrently), you should really wait to take 6.034 until you have.


The course covers the following areas:
  • Inference (8 lectures)
  • Planning (8 lectures)
  • Machine learning (8 lectures)

  • Textbook (available at Quantum & Amazon)
    is Russell & Norvig, AI: A Modern Approach (3rd ed is preferred, 2nd ed is acceptable).

Course Organization
  • 2 x 1.5 hr classes (MW 11-12:30, 32-124)
  • 1 recitation with TA (on Fridays, at 10, 11, 12, or 3 in 26-328)
  • 4 Projects
  • 2 Midterms
  • Final

  • 30% Final
  • 15% Midterm 1
  • 15% Midterm 2
  • 30% Projects
  • 10% Recitation Participation
  • You cannot take this class if you have a schedule conflict with another class; the midterms will be in class.
  • You must complete all projects to pass the course.
  • You have a total of 5 grace days for late submission of projects.


The 6.034 collaboration policy is based on the old 6.001 policy.

Most people learn more effectively when they study in small groups and cooperate in various other ways on homework. This can be particularly true in programming assignments, where working with a partner often helps to avoid careless errors. We are very much in favor of this kind of cooperation, so long as all participants actively involve themselves in all aspects of the work - not just split up the assignment and each do only a fraction.

The projects in 6.034 are designed to be large scale activities, in which group activity in brainstorming and design is often a key component. For these projects, we encourage you to work with one or two other people. When you turn in your project, you must identify with whom you worked. We expect, however, that you are involved in all aspects of the project, that you write and comment your own set of code, and that you write up your results separately. When you hand in material with your name on it, we assume that you are certifying that this is your work and that you were involved in all aspects of it. Do not just turn in a copy of a single file; write your own version. This means that you create this file yourself, and not just annotate a copy that you received from someone else. We know that this may sound like replication of work, but an important part of learning the material is making the process an active one, particularly with respect to editing, executing, and debugging software, which you do by ensuring that you create and explain your solution. Here is an example scenario of how a good collaboration might work:

Both (all) of you sit down with pencil and paper and together plan how you're going to solve and test things. You go together to a cluster and sit at adjacent machines. You check after each project to make sure that the others have working implementations and are all caught up. When one of you has a problem, the others look over your shoulder. For example, your partner has a bug on one part, and you are able to point out where the bug is and how to fix it. On each part of the project, you write your own code and solution, seeking help from the others when you have difficulties. On the write-up, each of you lists the names of all of your collaborators.

Here is an example of an inappropriate collaboration:

Your send your friend a copy of your code so far. She works on it to complete the procedure you had not finished, and she fixes a bug in another procedure. You each submit this shared code and solution. Even though you list the names of each other as collaborators, this is inappropriate collaboration because you were not both involved in all aspects of the work - you did not each write your own implementation even if to a common plan, and you shared a common set of code and writeup.

Not listing the name of a collaborator will be deemed cheating. Similarly, remember that copying another person's work and representing it as one's own work is a serious academic offense and will be treated as such.

In general, we strongly encourage you to work as a group. It is a very effective way of catching conceptual and other errors, and of refining one's thinking and understanding. Also note that if you are having trouble solving a project, please take advantage of the Teaching Assistants. Part of their responsibility is to answer questions and provide advice and guidance on the course material.

It is NOT legitimate to use bibles or an on-line source of code or solutions to any of the projects. Doing so is not only likely to hinder your learning the material, it is intellectually dishonest and a form of cheating. Do the projects on your own, work on the projects in an appropriate fashion consistent with the collaboration policy, or get assistance from the teaching staff.

A student completing 6.034 will be able to:

  • Explain the basic knowledge representation, problem solving, and learning methods of Artificial Intelligence
  • Assess the applicability, strengths, and weaknesses of the basic knowledge representation, problem solving, and learning methods in solving particular particular engineering problems
  • Develop intelligent systems by assembling solutions to concrete computational problems
  • Understand the role of knowledge representation, problem solving, and learning in intelligent-system engineering
  • And many 6.034 students will, as measured by exit survey, develop an interest in the field sufficient to take more advanced subjects
6.034 - Artificial Intelligence

Copyright 2012 by Massachusetts Institute of Technology. All rights reserved.
Send comments about this site to 6034sp-staff@csail.mit.edu