Cellular Automaton Program

Posted by on Jun 13, 2011 at 9:20pm

A cellular automaton is a cell on a grid that changes states based on the states of itself and its neighboring cells. The next state is found by looking at the current state of the current cell and its neighbors and then applying rules to determine the next state of the cell. Once the next state of all the cells have been determined, all of the cells are updated to their next state. This process can then be repeated as many times as desired.

The most well known set of rules for cellular automata is Conway’s Game of Life. In Conway’s Game of Life, each cell can either be alive or dead. Each cell that is alive (in the alive state) will stay alive if two or three of its neighbors is alive, otherwise, the cell will die (go to the dead state). Each dead cell will remain in the dead state unless exactly two of its neighbors is alive.

Another example of a cellular automaton system is wire world. In wire world, each cell can be in one of four states: empty, conductor, electron head, electron tail. An empty cell will always remain an empty cell. A conductor will become an electron head if one or two of its neighbors is an electron head, and remain a conductor in all other cases. An electron head becomes an electron tail. Lastly, the electron tail becomes a conductor.

The cellular automaton program that I created uses both sets of rules. To use the program, the user simply clicks on the grid to change the state of cells. Once a pattern for the grid has been chosen, the user can go to the menu and click Control, Start. The program will then calculate next the states of the cells. Other options in the menu allow the user to choose between using the rules for Conway’s Game of Life and Wire World as well as to save and load patterns. I have included a few patterns below to demonstrate some of the more interesting features of cellular automata.

Download
Cellular Automaton

Screenshots

Additional Download (Files that can be loaded into the program)
XOR gate
OR gate
oscillators
glider
glider gun

Posted in Programming | Leave a comment
 

AP Chemistry Lab Manual

Posted by on May 1, 2011 at 1:49pm

As an AP Chemistry teacher, one of the requirements for class is that we do several laboratory experiments throughout the year. For this school year, I have been focusing on covering material from the text book and fitting in experiments when possible. Now that I have almost made it through my first school year here, I have decided to turn some more of my time toward preparing for laboratory experiments.

As part of this preparation, I am putting together a laboratory manual that I will be using for the next school year. The laboratory manual will contain instructions on how to properly prepare for laboratory experiments, how to record data and how to write lab reports. The manual will also include an appendix that covers a discussion on uncertainty and error. Lastly, and the part that will contain the most content, the manual will include the instruction sheets for all the experiments I plan for us to cover throughout the school year. This is all information I have provided to students in the past, but the laboratory manual will provide a single place students can go to for all the information they need. I hope the lab manual will be a helpful document that I can pass out at the beginning of the school year and that students can work through as we do activities in the laboratory.

Posted in School | Leave a comment
 

Mailing List Manager (Update)

Posted by on Apr 21, 2011 at 10:20pm

Introduction
Over the past few weeks, I have been working on creating a program that will send an e-mail to a list of e-mail addresses. There are programs/systems that already do this, but all of the ones that I found either required that recipients opt-in for the e-mails, required that you pay before you use it or just didn’t work.

Details
My mailing list manager sends e-mail via SMTP and requires that the user has an existing e-mail account that supports SMTP. In order not to overwhelm the mail server, there is a delay of twelve second between when e-mails are sent. In addition to sending out e-mails, my program also monitors the e-mail account to see if any e-mails are undeliverable; if any e-mails are undeliverable, then the e-mail address is flagged by the program. Lastly, my program also monitors the e-mail account to see if any recipients have requested to be removed from the list; to be removed, recipients simply reply to a message and include the word “unsubscribe” to the subject; my program searches the subject line and if it finds the word unsubscribe, then the recipient’s e-mail address is flagged.

I have included a demo version of the program below. The demo version is for testing/evaluation purposes and has been limited to send a maximum of 10 e-mails per mailing.

Screenshot
Mass E-mailer

Download
Mass Emailer

Posted in Programming | Leave a comment
 


← Older Entries