Class Notes on Relating Automata to Software

Pradip Peter Dey and Alireza Farahani
National University

Software development relies on modeling the software in various levels including the design level. Design tools based on statecharts (Harel, 1987; Harel and Politi, 1998) have been very useful for modeling dynamic aspects of software. Statecharts are basically TMs presented in a notation that is appropriate for representing software features in an intuitive way. The following statechart diagram represents the dynamic aspects of computing average family size of a town.

Assume that the software development started with the following initial description of requirements: Develop a program using a programming language of your choice for computing avergae family size of a town. Users should be able to enter input interactively using a Graphical User Interface (GUI).

A sample implementation in an applet is done for testing purposes which can be seen at the following link Computing Average Family Size of a Town

Dynamic Visualization of Finite Automata (FA)


Finite Automata (FA) accept Regular Languages, such as L2 = aba* = {   ab, aba, abaa, abaaa, abaaaa, abaaaaa, . . . .   }.   Dynamic visualization of an FA can be seen following the link given below:

 A Finite Automaton for  ab* 



Finite Automata (FA) Related Programming assignments


Programming Assignment

For questions and comments, please contact:

             Dr. Pradip Peter Dey,
             Professor,  School of Engineering and Technology
             National University
             3678 Aero Court, San Diego, CA 92123
             U.S.A.
             Phone: (858) 309-3421
             Fax (858) 309-3420    
             Email: pdey@nu.edu 



Bibliography: Cohen, D. (1997). Introduction to Computer Theory (2nd ed.), New York: John Wiley & Sons. Hopcroft, J. E., Motwani, R. & Ullman, J. (2007). Introduction to Automata Theory, Languages, and Computation. Pearson Education. Lowe, R. K. & Schnotz, W. (Eds) (2007) Learning with animation, New York: Cambridge University Press.
Tversky, B., Morrison, J. B., & Betrancourt, M. (2002). Animation: can it facilitate?. International Journal of Human–Computer Studies, 57, 247–262. Harel, D. (1987) “Statecharts: A visual formalism for complex systems”, Science of Computer Programming, v.8 n.3, p.231-274, 1987
Harel, D. and Politi, M. (1998) Modeling Reactive Systems with Statecharts: The Statemate Approach, McGraw-Hill, 1998. Rich, E. ( 2007) Automata, Computability and Complexity: Theory and Applications Rodger, S.H. (2006) Learning automata and formal languages interactively with JFLAP. ITiCSE 2006: 360 Rodger, S. H. & Finley, T. W. (2006). JFLAP: An Interactive Formal Languages and Automata Package. Jones & Bartlett Publishers. Rodger, S.H., Bressler, B., Finley, T. & Reading, S. (2006). Turning automata theory into a hands-on course. SIGCSE 2006: 379-383 Rodger, S.H., Eric Wiebe, Kyung Min Lee, Chris Morgan, Kareem Omar, Jonathan Su. (2009). Increasing engagement in automata theory with JFLAP. SIGCSE 2009: 403-407 Sipser, M. (2006) Introduction to the Theory of Computation, PWS Publishing. R. Gregory Taylor (1998) Models of Computation and Formal Languages, Oxford University Press. Wong, A., Marcus, N., Paul Ayres, Lee Smith, Graham A. Cooper, Fred Paas and John Sweller (2009). Instructional animations can be superior to statics when learning human motor skills, Computers in Human Behavior, Volume 25, Issue 2, March 2009, Pages 339-34 Cyril Rebetez, Mireille Bétrancourt, Mirweis Sangin and Pierre Dillenbourg (2009). Learning from animation enabled by collaboration. Instructional Science. Richard E. Mayer and Roxana Moreno.(2002). Animation as an Aid to Multimedia Learning, Educational Psychology Review, Volume 14, Number 1 Tsay, Y., Chen, Y., Tsai, M., Wu, K. & Chan, W. (2007). GOAL: A Graphical Tool for Manipulating Büchi Automata and Temporal Formulae, in Tools and Algorithms for the Construction and Analysis of Systems. Springer. Tversky, B., Morrison, J. B., & Betrancourt, M. (2002). Animation: can it facilitate?. International Journal of Human–Computer Studies, 57, 247–262.