CS 151: Artificial Intelligence
Homework 1
Due date: 1/24/14 by 12:59pm



See the bottom of the page for submission instructions.

Written questions [25 points]

Your answers to the following questions should be typed and submitted as a pdf (e.g. you can type your answers using Word and print to pdf or use LaTeX). These questions are meant to (1) clarify (and make explicit) your assumptions and expectations of artificial intelligence (AI) and (2) familiarize me with your interests and mathematical background.

  1. [5 points] How would you define "artificial intelligence"? (Don't use the definition introduced in class!)

  2. [5 points] How likely do you think it is that you will see true artificial intelligence (however you defined it above) created within your lifetime?

  3. [5 points] What do you hope to learn in this class?

  4. [5 points] What interests you with regards to AI?

  5. [5 points] For which of the terms below, if asked, could you give an explanation or definition:
    • stacks, queues, and priority queues
    • gradient (calculus)
    • chain rule (calculus)
    • expected value
    • joint distribution
    • marginal distribution
    • marginalization
    • conditional distribution
    • dot product (linear algebra)
    • projection of one vector onto another (linear algebra)
    • ||x|| where x is a vector (linear algebra)
    • x/||x|| (linear algebra)

Programming project [75 points, 25 points each unit test]

In this class, we will be going through a set of programming projects created at UC Berkeley for college-level AI classes. Most projects will ask you to implement an algorithm we discussed in class for Pac-man, e.g. implementing different search algorithms to help Pac-man find his way around a maze. This first project however is a tutorial meant to familiarize you with unix and Python.

  • You will need to work on a computer that has access to: a terminal, Python 2.5 or later, and a code editor (e.g. Aquamacs). You can find all of these on the lab machines. Note that you can open up a terminal within Aquamacs itself.
  • This project will ask you to download two zipped directories. The first directory is called "python_basics". You will be modifying files within this directory as you go through the Python tutorial. None of the modifications in this directory will be graded
  • The second directory is called "tutorial". You will be asked to add code to three Python scripts within this directory: addition.py, buyLotsOfFruit.py, and shopSmart.py. This is the work that will be graded. The tutorial will also explain how you can "autograde" your own work. The autograder is a Python script that tests your code. Note that the autograder is useful for catching any bugs or errors in your code however your final grade is not determined solely by the autograder. For example, your code should be properly commented (including docstrings). Although the autograder may not catch poorly commented (or convoluted code) this is part of your overall grade.
  • You can ignore any references to the edX website.
  • Submission instructions are at the bottom of this page.
  • If you're ready, click here to begin.

Submission Instructions

You'll be turning in the "tutorial" directory which should contain your modified addition.py, buyLotsOfFruit.py, and shopSmart.py Python scripts. Add the pdf of your answers to the written questions to this directory.Then, rename your "tutorial" directory to be "hw1_LastNameFirstName". Zip (compress) the directory and upload it using this URL.




Last modified: Fri Jan 24 10:58:47 PST 2014