Automata and Formal Languages

A Visual Interactive Tool
For the Course
“Automata and Formal
Languages”
Holon Institute of Technology
Mark Trakhtenbrot, Vladimir Nodelman, Avi Lamai
The Open University of Israel
Judith Gal-Ezer, Rina Zviel-Girshin, Michal Armoni,
Yahalom Humi
The course
Mandatory course for 2nd year CS students


Studies mathematical models of computation
(automata,
grammars),
their
properties
and
expressive power, transformations, etc.
Provides a strong background for a variety of CS areas:
construction of compilers, verification, design of
digital systems, etc.
Learning a theoretical CS course is
difficult … Why?
Heavy use of formal methods:



Intuition behind formal concepts is not always
clear
Serious challenge - formal math language
to describe abstract objects, their properties and
relations
Needed ability of precise math reasoning
Learning a theoretical CS course is
difficult … Why?
Students’ background and motivation


significant break after the high school;
certain erosion in math skills required for CS
studies
seeking a high-tech career; tend to view
theoretical courses as something not needed for
“real work”
More problems…
Slow feedback:


Student
becomes
aware
of
certain
misunderstandings only when getting back the
checked assignment
Often happens too late
already busy with learning another material
And more …
Communication problems:


difficulty to use formal language for asking
questions
often not supported technically;
leads to a verbal mess
In distance education (OpenU):
 rare face-to-face classes
As a result…



Concepts remain too abstract
Theorems and algorithms are used
improperly
Common problems left without proper
attention
The challenge
Help to:
 make formal concepts more clear and tangible
 make communication about them easier
 discover problems earlier
 get answers in “real time”
Use technology to address these issues
To make this happen…



Developed:
interactive tool for visual hands-on exploration
of the studied computational models
Prototype:
- covers automata and grammars chapters of the course
- Windows application, downloaded from the course site
Internet version:
- so far, automata only
Interactive tool for AFL course
Supports the self-study process:



Build-in lessons
- based on pre-defined scenarios
Build-in exercises and exams
- “american” and “open” questions
- automatic check of solutions
- tips provided in case of error
Unlimited exercising
Interactive tool for AFL course
Major features:







Visual creation of computational models
Static checks of model consistency and completeness
Interactive simulation and animation
Operations on automata and regular languages
Transformations of models
Traceability
Different levels of details
Visual creation of models


Learn basic elements, their properties & relationships
Different views of model (diagrams vs. math notation)
Static checks


Reveal hidden properties; find errors / omissions
Examples: no final states, missing transitions; unused
grammar symbols
Simulation and Animation



Models are not just pictures; they are executable
Interactive animation: select next action, observe
reaction
Flexibility: one-shot / step-wise; forward / backward; etc.
Allows for:
 Dynamic check of model correctness
run under different test inputs; similar to debugging
 Explore different derivation policies
(left-most, right-most, use of backtracking)


Transformations and Traceability
Variety of transformations supported:
 determinization and minimization of automata
 translation of grammar into a normal form
 conversions: Automata  Regular Expressions
Traceability: show mapping between source and target
models
Selecting level of details
Flexible use of the tool: view all details vs. final result only
Example (determinization): for given NDA, build equivalent DA
Process:
 Build your own solution
 Generate final answer with the tool & compare it with yours
(e.g. compare simulation results on the same inputs)
 Your solution is incorrect, reasons unclear?
View all interim details, see what went wrong
Share models to improve
communication
Attach model file when posting a question / homework
Used by recipient both as doc & executable
 replaces messy verbal description / makes it more clear
 can be checked and run
 easier to understand the question and to answer it
Similar for assignment solutions published by tutor:
view & simulate it to compare with your solution
Summary of learning process
improvements
Better sense of learned concepts: live & tangible
Thorough validation of solutions
not just 1-2 paper-and-pencil checks
Easy trial-and-error: make changes, check their impact
Levels of details leading to proper understanding
Improved communication
Further steps
Improve integration into the learning process:
 Extend the coverage of the course material
- developed a script language
for definition of lesson scenarios



Assignments with mandatory use of the tools
Levels of access to tool’s functions, according to course
schedule
Use of tools in synchronous teaching
Interactive Tools for
Teaching Automata and
Formal Languages
Thanks for your attention