Artificial Intelligence
Homework 1
Due date: 9/5/14 by 12:59pm
(Solo assignment)
|
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 ideas with
regards to artificial intelligence
and (2) familiarize me with your interests and mathematical
background.
- [5 points] How would you define "artificial
intelligence"? (Don't use the definition introduced in class!)
- [5 points] From a computer science perspective, what
will be the hardest challenge in trying to create true AI (as you defined it above)? Be as specific as you can.
- [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?
- [5 points] Are there any specific topics that interest you with regards to AI?
- [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]
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.6 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.
|