Bill Manaris : Spring 2012 / CSCI 470 Homework 3

Assigned Date: Thursday, Mar. 22, 2012
Due Date: Tuesday, Apr. 3, 2012
Due Time: 10:50am

Last modified on March 29, 2012, at 12:55 PM (see 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:

Assignment

Download and install the OpenNERO environment. OpenNERO is an open source software platform designed for research and education in Artificial Intelligence. It runs on all major platforms (Windows, Max OS, Linux).

With your partner work thorough the following exercises:

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.,

numStudents += 1   # we have processed one more student
 

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

numStudents += 1   # increment numStudents by one
 

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!)

#
#   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.>
#
 

Submission

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

  1. A TESTMOD.zip file. This will contain the files you created for the first exercise.
  2. A Roomba.zip file. This will contain the files you created for the second exercise.
  3. 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).
  4. 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.

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

  1. 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

(Printable View of http://www.cs.cofc.edu/~manaris/?n=Spring2012.CSCI470Homework3)