User Tools

Site Tools


proj

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
proj [2014/06/27 15:13] marekproj [2018/02/27 15:49] (current) bil
Line 1: Line 1:
-**Cellular Automata** +**EECS 2311 Project**
  
-Cellular Automata (CA) ([[http://en.wikipedia.org/wiki/Cellular_automaton]]) represent a discrete model, primarily of computation itself but also applicable to physics, complexity science, and biology among others. CA were discovered in the 1940s by Stanislaw Ulam and John von Neumann while they were both working on the Manhattan project to develop the first nuclear weapons.+<html><!--
  
-CA are characterized by a regular grid or lattice of cells, each in a finite number of states (ex. {on,off} ; {1,0} ; or {red,blue,green}). The grid should be theoretically infinite, but due to the +  To be posted.
-physical limitations of computers, these are usually simulated on a finite +
-grid. Some implementations therefore, have an edge, and in others the cells are arranged in a toroidal (http://en.m.wikipedia.org/wiki/Torus) fashion, that is, cells at the "top" +
-of the lattice are neighbours to those at the "bottom" and those at the +
-"left edge" are neighbours to those on the "right edge". The toroidal solution is often regarded as being more elegant than the version with an edge.+
  
-Typically, the evolution of a CA system is completely deterministic, and follows +--></html>
-from the initial state at time t = 0 and a new +
-state of the grid is computed each time step (advancing the time by 1). The +
-next generation is computed from the last by applying a (usually) fixed +
-mathematical rule or function to each cell, typically a function of the +
-cell's current state and the states of nearby cells (in the neighbourhood). +
-Typically this function is applied to all cells simultaneously i.e. the +
-next state of cells is not considered on the current time step. There are +
-exceptions to these such as stochastic cellular automata (http://en.wikipedia.org/wiki/Stochastic_cellular_automaton), and asynchronous +
-cellular automata (http://en.wikipedia.org/wiki/Asynchronous_cellular_automaton). Extending the concept of CA beyond deterministic rules to include probabilistic +
-rules leads into the study of multi-agent systems, such as agent-based models of complex +
-social phenomena.+
  
-**Conway's Game of Life** 
  
-Possibly the most famous CA is Conway's Game of Life (sometimes just called "Life" by aficionadoswhich was invented by John Conway in 1970. It is a "game" in the sense that the player assigns the initial state of the game, and can observe its evolutionThis game is very well known in computing and mathematics circles, to the point where a propagating Life configuration called a "Glider" (http://www.argentum.freeserve.co.uk/lex_g.htm#glider) has been unofficially adopted as the symbol or mascot for "hackers" in the classic sense i.e. computing enthusiasts (see: http://tools.ietf.org/html/rfc1983 & ctrl+f search "hacker")+Treasure Box Braille (TBB) is a device that helps kids learn how to read Braille. 
 +TBB presents Braille characters/words to the user who then responds by pressing buttons. 
 +Educators can load different scenarios to teach different letters and keep the kids entertained.
  
-{{:game_of_life_animated_glider.gif|}}+We will write a piece of software to help educators create these scenariosWe will call it the Authoring App. The Authoring app will provide facilities to  
 +  * Create the flow of the scenario (ask questions, receive answers) 
 +  * Record audio 
 +  * Save the scenario in the appropriate format 
 +  * Test the scenario using the provided software
  
-Figure 1. A Glider in Life (sourceWikiMedia Commons)+**Important requirement**The Authoring App must be usable by visually-impaired users 
  
-SpecificallyLife consists of a two-dimensional lattice of cells that have two possible states: {alive, dead}Considering a cell's 8-neighbourhood a cell's next state is computed as +Since there are not enough TBBs for each group (and also because they are expensive and hard to replace)we provide software that simulates the TBB
-follows:+This way, as an educator is preparing a scenario with your authoring app, they can try it out to see if it works. See the Week 1 slides (click on Course Outline) for instructions on how to get the starter software.
  
-  * Any live cell with fewer than two live neighbours dies, as if caused by under-population. +The starter software contains example scenarios that you can run to get feel for what this system does.
-  * Any live cell with two or three live neighbours lives on to the next generation. +
-  * Any live cell with more than three live neighbours dies, as if by overcrowding. +
-  * Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. +
-For more information you can consult (as starting point): +
-[[http://en.wikipedia.org/wiki/Conway's_Game_of_Life]]+
  
-{{:ca-moore.png|}}+{{:startersoftwaredesign.pdf|Click here}} for a UML diagram of the starter software.
  
-Figure 2The red cells are the 8-neighbourhood (or Moore Neighbourhood) of the blue cell in the center(source: WikiMedia Commons)+{{:scenarioformat.pdf|Click here}} for a description of the file format for scenarios. 
 + 
 +**New requirement (added on Feb 27, 2018)** 
 + 
 +Your system must log all actions the user takes and keep count of how many times each feature is accessed 
 + 
 +Based on the log data, add keyboard shortcuts to the most frequently used featuresSuch features should be easy to access with a mouse as well
  
-Interestingly, it has been demonstrated that the game of life can simulate 
-a Universal Turing Machine ( 
-http://en.wikipedia.org/wiki/Universal_Turing_machine) - meaning it is 
-capable of computing any computable value, as with a "general purpose" computer. Also interestingly, self-replicating structures are 
-possible: http://youtube.com/watch?v=A8B5MbHPlH0 
  
-**Course Project** 
  
-Your project will be to create a Cellular Automata Laboratory with GUI using the Java(tm) programming language. Initially, the application will implement Conway's Game of Life, but will be extensible or reusable to implement other rule-sets for general Cellular Automata. Have a look at http://www.julianpulgarin.com/canvaslife/ 
-for an idea of potential features, although that example is implemented in 
-Javascript. You may also consider the file format demonstrated at 
-http://www.bitstorm.org/gameoflife/lexicon for sharing Life configurations. 
-Other possible features include drag and drop, and copy and paste for Life 
-configurations.  
proj.1403881992.txt.gz · Last modified: 2014/06/27 15:13 by marek

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki