Project 1 - 1D Cellular Automata

Simulator Source Code and Executable:

CASimulator.java (source code)
CASimulator.class (executable)

This program was written in Java by a student who took the class in Fall 2007. It automates the entire process of the table walkthroughs, calculating and recording the parameter values, and generating images of the CAs.

Running the program:

To run the program, type the following at the command line:

java CASimulator X
where X is the number of experiments to run.

Note for 594 students: In order to compute the fifth parameter, you may need to modify the given Java program.

Experiment records: The program will create an experiment record sheet in .csv format for each walk-through. The 4 lambda and entropy values are automatically written to these reports. You will need to fill in your name, the class for each step of each walk-through, and an observation for each step of each walk-through. You may also need to adjust the width of some of the columns.

Images of CAs: The program will also generate a .jpg image for each step of each walk-through. You will examine these images to fill in the rest of the information in the report sheets.


Classification of the CAs:

A significant piece of this project is to view images and make a classification based on what you observe. This can be somewhat challenging since it is very subjective. The link below provides several examples from each of the 4 classes to help guide you in this process.

Classification of 1D Cellular Automata


Report:

There are several items which need to be included in the report.

Calculations: The average and standard deviation of each of the 4 parameters (also the 5th for 594 students) for each instance among all walk-throughs that you classify as Class IV. Be sure to state which of the 4 parameters appears to be the best indicator of Class IV, and explain why.

Graphs: One graph for each of the 4 parameters (594 students will also make a graph for their 5th parameter). It may help to include two versions of each graph: one that has all the curves, and one that just has the points. Including 20 or more curves on one graph can get a bit messy, so making an additional graph with just points can be helpful.

Discussion: Discuss the correlations (if any) between the parameter values and the class behavior. Indicate the general range of values associated with Class IV behavior. Be sure to point out any anomalies and give possible explanations for these anomalies. Note if you've observed Class I or II behavior at high parameter values, or Class IV or III behavior at low parameter values. The more discussion and analysis that you do, the higher grade you can earn.


Submission:

You need to turn in the following items:

Note: Please do NOT submit your .jpg files! It is alright to include a few in your report as part of your discussion, but we do NOT want 200+ .jpg images coming at us, and from each student!

Submitting your work: Make a tarfile of all your files and email your tarfile to kvanhorn@eecs.utk.edu by 11:59 PM on Friday, September 11.

To create a tarfile:

tar -czvf yourlogin.tar.gz directory
where "yourlogin.tar.gz" is the tarfile you are building. The .tar indicates the file is in .tar format and the .gz indicates that the tarfile is compressed (zipped). Please use your actual login name for "yourlogin" so it will be easier for us to keep track of who's submission is who's.

The last argument "directory" indicates the directory containing the files you want to include in the tarfile. In this project, your report and spreadsheet record files would be in this directory.


Grading:

Earning higher grades:

As with all the projects this semester, fulfilling the basic requirements will earn you a B. To earn higher grades, you will need to do further experimentation and/or further discussion/analysis. For this project, if you do significantly more walk-throughs (eg. 30 or 40), that would boost your grade to a B+. If you also do well on the report and include thorough analysis, that would boost your grade to an A. If a 420 student does the 594 portion, that will earn at least an extra half letter grade, possibly a full letter grade.

Avoiding lower grades:

Your grade will lower from a B if you fail to perform some of the required experiments and/or you do a poor job on the report. If you did only 10 experiments (instead of 20), that would probably lower your grade by half a letter grade. Not including a discussion would probably drop your grade by a full letter grade. For example, if you just did 20 experiments, but turned in no report, no graphs, and no calculations, assuming you fulfilled the classification work for the 20 experiments, your grade would probably be a D. Avoid this by doing and submitting all the required items!