Spring2012.CSCI470Homework3 History

Show minor edits - Show changes to output

Changed lines 27-30 from:
to:
** You do '''not''' need to plot the agent's fitness using @@plot_server.py@@ (i.e., skip this step).

* '''Bonus:''' Plot the agent's fitness (e.g., using @@plot_server.py@@, or Excel). Submit an additional document with the graph(s) (e.g., an Excel spreadsheet, or a Word document). It should be obvious the graph(s) originated from data in @@nero_log.txt@@ (i.e., include data in the document).
Changed lines 85-88 from:
# A '''README.txt''' file, which describes your experience (answers to Roomba questions, what changes you made (specifically), what you learned, any ideas you have, anything that caused you difficulty). Make this easy to read and to the point. Avoid verboseness.
to:
# A '''README.txt''' file, which describes your experience (answers to Roomba questions, what changes you made (specifically), what you learned, any ideas you have, anything that caused you difficulty). Make this easy to read and to the point. Avoid verboseness.
** If you do the bonus part (below), make sure you reference these results in your description (for full credit).

# '''Bonus:''' Include an Excel spreadsheet or Word document with one or more plots of the agent's fitness (e.g., using plot_server.py, or Excel). Also include the data from @@nero_log.txt@@.
Changed line 82 from:
# A '''README.txt''' file, which describes your experience (what you learned, any ideas you have, anything that caused you difficulty). Make this easy to read and to the point. Avoid verboseness.
to:
# A '''README.txt''' file, which describes your experience (answers to Roomba questions, what changes you made (specifically), what you learned, any ideas you have, anything that caused you difficulty). Make this easy to read and to the point. Avoid verboseness.
Changed line 2 from:
'''Due Date''': Thursday, Mar. 29, 2011\\
to:
'''Due Date''': Tuesday, Apr. 3, 2012\\
Added lines 1-94:
'''Assigned Date''': Thursday, Mar. 22, 2012\\
'''Due Date''': Thursday, Mar. 29, 2011\\
'''Due Time''': 10:50am

Last modified on {$LastModified} (see [[http://www.cs.cofc.edu/~manaris/index.php/Spring2012.CSCI470Homework3?action=diff&source=n&minor=n | updates]])

This is a '''pair-programming''' assignment (i.e., you may work with '''one''' partner). '''You may discuss the assignment only with your partner or the instructor/grader.'''

!!Purpose

This assignment's objectives are:

* To understand knowledge representation schemes and related issues.
* To gain experience in programming with a programming language used in AI applications.
* To develop working knowledge, in terms of understanding the theory and being able to design/implement working applications, of at least one AI area.
* To develop an understanding of AIís impact on today's society.

!!Assignment

Download and install the [[http://code.google.com/p/opennero/ | OpenNERO]] environment. OpenNERO is an open source software platform designed for research and education in Artificial Intelligence. It runs on all major platforms ([[http://code.google.com/p/opennero/downloads/list | Windows, Max OS, Linux]]).

With your partner work thorough the following exercises:

* [[http://code.google.com/p/opennero/wiki/AddingStuffExercise | Adding Stuff]] - The point of OpenNERO is that you can make new games and new experiments with it. In this exercise you will add a landscape, an object, and an agent to OpenNERO.

* [[http://code.google.com/p/opennero/wiki/CreateRoombaAgentExercise | Create Roomba Agent]] - Once we add an agent, we have to program it. Traditionally this is done by writing a script that describes what the agent does. In this exercise, you will write a script for a virtual vacuum cleaner that cleans the floor of a messy computer lab.

!!Documentation

Follow the Golden Rule of Style: "A program should be as easy for a human being to read and understand as it is for a computer to execute." [1]

In general, you should comment any variable, obscure statement, block of code, etc. you create.

Also, you should comment '''why''' something is being done, e.g.,

(:source lang=python tabwidth=3 -trim :)
numStudents += 1 # we have processed one more student
(:sourcend:)

as opposed to '''how''' it is done, e.g.,

(:source lang=python tabwidth=3 -trim :)
numStudents += 1 # increment numStudents by one
(:sourcend:)

Finally, your Python code (any '''.py''' file you create or modify) should include opening comments as follows.

(''NOTE:'' Angle brackets below signify information that needs to be filled out. '''Remove''' the angle brackets and the enclosed instructions from your submission!)

(:source lang=python tabwidth=3 -trim :)
#
# Author: <Your Name(s)>
# Email: <Your email address(es)>
# Class: CSCI 470, Section 1
# Assignment: HMWK<number>
# Due Date: <The assignment's due date>
#
# Certification of Authenticity <remove one of the following>:
#
# I certify that this lab is entirely my own work.
#
# I certify that this lab is my own work, but I received
# some assistance from: <Name(s)>
#
# TASK: <Provide a simple, yet complete description of the task being
# performed by this program. It may be several sentences long.>
#
# INPUT: <Describe the input to this program. Be thorough.>
#
# OUTPUT: <Describe the output to this program. Be thorough.>
#
(:sourcend:)

!!Submission

Submit your assignment on OAKS by the due date. Your submission must include:

# A @@TESTMOD.zip@@ file. This will contain the files you created for the first exercise.

# A @@Roomba.zip@@ file. This will contain the files you created for the second exercise.

# A '''README.txt''' file, which describes your experience (what you learned, any ideas you have, anything that caused you difficulty). Make this easy to read and to the point. Avoid verboseness.

!!Grading

Your grade will be based on the elegance of your design, the quality of your documentation, and the accuracy and simplicity of your implementation. Also, on how well you followed the above instructions. '''Aim for simplicity and elegance.''' Design, design, design... before you implement.

!!Reference

# Cooper, D. and Clancy, M. (1985) "Oh! Pascal", 2nd ed., W.W. Norton & Company, New York, p. 42.

!!Relevant Quote

"Any amount of work can be done in any amount of time... only the quality varies." ~Joao Meidanis