SIGCSE 06: NSF Showcase A Visual & Interactive Computability Course Emphasizing Breadth of Automata Rakesh Verma Computer Science Department University of Houston
SIGCSE 06: NSF Showcase Outline The problem Proposed solution Teaching experience summary Conclusions & future work
SIGCSE 06: NSF Showcase The Problem Learning and teaching Automata Theory are challenging tasks Abstract, difficult material Considerable creativity required Slow feedback in traditional format Student perceptions make it worse Dated material, of little use Dry at best and boring/frustrating at worst
SIGCSE 06: NSF Showcase Challenges Specific to UH Large, urban institution with a mature and diverse student population Some loss of mathematical knowledge Significant number of working students In-school tutorial sessions difficult
SIGCSE 06: NSF Showcase Goals Enhance learning and learning experience by increasing: visualization, interaction, and faster feedback Expose students to: A variety of automata Applications, especially recent ones Historical background and development
SIGCSE 06: NSF Showcase Proposed Solution Complete revision of course contents and teaching with: integration of enhanced JFLAP (Duke U.) and LRR (UH) variety of automata, e.g., tree and DAG automata recent and classical applications of automata
SIGCSE 06: NSF Showcase Solution (contd.) We have developed: Power point slides for lectures including JFLAP animations (LRR animations in F05) New problem sets requiring use of these tools Notes on tree automata and DAG automata Web site: w/html/index.html
SIGCSE 06: NSF Showcase LRR and its advantages LRR – input is a set of rules and an expression Each rule is l r, where l and r are expressions with variables and operators Example: x + 0 x and x + -x 0 Applies rules via matching to given expression LRR can implement any computation A Turing machine can be encoded via just one rule!
SIGCSE 06: NSF Showcase Visualizing Tree Automata Instead of developing another package we use LRR with RuleMaker – a graphical interface DFA example: a(q0) q0a(q1) q1 b(q0) q1 b(q1) q0 Final(q0) trueFinal(q1) false Final(b(a(q0))?
SIGCSE 06: NSF Showcase Examples (contd.) NFA can be simulated as below: a(a(q1)) q2 (string)q0 q1 (epsilon) Tree automaton example: true q0false q1 and(q0, q0) q0 and(q0, q1) q1 and(q1, q0) q1and(q1, q1) q1
SIGCSE 06: NSF Showcase UH Enhancements to JFLAP “Debug” feature – students can generate strings at random and find the results for all the strings Equivalence checking for DFA’s (this is now part of JFLAP version 4.0)
SIGCSE 06: NSF Showcase Preliminary Results Students participating in special problems and projects on automata
SIGCSE 06: NSF Showcase Prel. Results (contd.) Positive feedback on surveys regarding JFLAP/JFLAP++ and web-site materials Students from this course showed improved performance on subsequent compilers course compared to traditional versions taught by other faculty
SIGCSE 06: NSF Showcase Conclusions Automata theory can be made interesting and easier Visualization is helpful Interaction is key – during lectures and outside class
SIGCSE 06: NSF Showcase Future Work Rigorous comparison with “traditional” automata courses Further development of materials on breadth and applications of automata A drastic revision of course contents …
SIGCSE 06: NSF Showcase Acknowledgements Students Saquib Hakim (JFLAP++ and slides) Mohammad Anwar (web site) Pavan Podila and Patrick Sharkey (RuleMaker) James Thigpen (integration with LRR) Sponsor: National Science Foundation The students who have enjoyed/suffered through my course!
SIGCSE 06: NSF Showcase Thank You! ?’s or !’s For more info: 0new/html/index.html