A Visual Interactive Tool For the Course “Automata and Formal Languages” Holon Institute of Technology Mark Trakhtenbrot, Vladimir Nodelman, Avi Lamai.

Slides:



Advertisements
Similar presentations
Model-Based Testing with Smartesting Jean-Pierre Schoch Sogetis Second Testing Academy 29 April 2009.
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Ossi Taipale, Lappeenranta University of Technology
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SECOND MIDTERM REVIEW CS 580 Human Computer Interaction.
Compiler Construction by Muhammad Bilal Zafar (AP)
Run Time Monitoring of Reactive System Models Mikhail Auguston Naval Postgraduate School Mark Trakhtenbrot Holon Academic Institute of.
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
Lexical Analysis III Recognizing Tokens Lecture 4 CS 4318/5331 Apan Qasem Texas State University Spring 2015.
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Information Modeling: The process and the required competencies of its participants Paul Frederiks Theo van der Weide.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Requirements modelling motivations: I We need a language for communicating shared perceptions of the requirements for the target system between human stakeholders.
Correlating Go Math & Standards for Mathematical Practices
Considerations for Distance-Learning Math Students Source: Winning at Math, Your Guide to Learning Mathematics Through Successful Study Skills, 4 th edition.
Data Structures and Programming.  John Edgar2.
Moving forward with Scalable Game Design. The landscape of computer science courses…  Try your vegetables (sneak it in to an existing course)  Required.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
Unit 2: Engineering Design Process
Balancing Practices: Inspections, Testing, and Others JAXA scenario (formal method) Masa Katahira Japanese Space Agency.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
DSS Modeling Current trends – Multidimensional analysis (modeling) A modeling method that involves data analysis in several dimensions – Influence diagram.
 The College Board has joined the American Chemical Society and the National Science Teachers Association in objecting to simulated lab software (e.g.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Invariant Based Programming in Education Tutorial, FM’08 Linda Mannila
AtoCC Compiler Construction Workshop Michael Hielscher Aalborg, Creating an Interpreter and Compiler for a music language ML.
1 Programming Languages Marjan Sirjani Course web site:
Multiplying Whole Numbers © Math As A Second Language All Rights Reserved next #5 Taking the Fear out of Math 9 × 9 81 Single Digit Multiplication.
ENM 503 Lesson 1 – Methods and Models The why’s, how’s, and what’s of mathematical modeling A model is a representation in mathematical terms of some real.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 Introduction to Software Engineering Lecture 1.
COMMON CORE STATE STANDARDS MATHEMATICAL PRACTICES OBJECTIVE: APPLY BEST MATH PRACTICES TO SOLVE PROBLEMS TO BECOME A MATHEMATICALLY PROFICIENT STUDENT.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 6 Mälardalen University 2010.
Hexahexaflexagon Automata Paul Curzon Queen Mary University of London With support from Google,
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Chapter 3 Part II Describing Syntax and Semantics.
SD modeling process One drawback of using a computer to simulate systems is that the computer will always do exactly what you tell it to do. (Garbage in.
Compiler Construction (CS-636)
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Requirements Engineering Requirements Validation and Management Lecture-24.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
The Hashemite University Computer Engineering Department
1 CS 381 Introduction to Discrete Structures Lecture #1 Syllabus Week 1.
Inductive and Deductive Reasoning  The pre-requisites for this chapter have not been seen since grade 7 (factoring, line constructions,..);
Performance Task and the common core. Analysis sheet Phases of problem sheet Performance task sheet.
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 12 Mälardalen University 2007.
#1 Make sense of problems and persevere in solving them How would you describe the problem in your own words? How would you describe what you are trying.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
School of Business Administration
Copyright © Cengage Learning. All rights reserved.
Syntax Analysis Chapter 4.
Lecture One: Automata Theory Amjad Ali
Presentation transcript:

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 2 nd 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