
David HarelWeizmann Institute of Science | weizmann
David Harel
About
462
Publications
53,635
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
27,925
Citations
Publications
Publications (462)
Sustainable AI is a subfield of AI for concerning developing and using AI systems in ways of aiming to reduce environmental impact and achieve sustainability. Sustainable AI is increasingly important given that training of and inference with AI models such as large langrage models are consuming a large amount of computing power. In this article, we...
Recently, given the docstring for the target problem and the target function signature, large language models (LLMs) have been used not only to generate source code, but also to generate test cases, consisting of test inputs and assertions (e.g., in the form of checking an actual output against the expected output). However, as shown by our empiric...
Navigating mobile User Interface (UI) applications using large language and vision models based on high-level goal instructions is emerging as an important research field with significant practical implications, such as digital assistants and automated UI testing. To evaluate the effectiveness of existing models in mobile UI navigation, benchmarks...
Foundation Models (FMs) have become essential components in modern software systems, excelling in tasks such as pattern recognition and unstructured data processing. However, their capabilities are complemented by the precision, verifiability, and deterministic nature of executable specifications, such as symbolic programs. This paper explores a ne...
Music therapy has shown efficacy in serious and chronic conditions, mental disorders, and disabilities. However, there is still much to explore regarding the mechanisms through which music interventions exert their effects. A typical session involves interactions between the therapist, the client and the musical work itself, and to help address the...
How will knowing, or not knowing, whether an agent is a human or a machine influence our interactions?
An international overview of how policy makers, curriculum developers, and school practitioners can integrate computational thinking into K–12 curricula.
In today's digital society, computational thinking (CT) is a critical component of all children's education. In Computational Thinking Curricula in K–12, editors Harold Abelson and Siu-Cheung Kong...
The pharynx of the nematode Caenorhabditis elegans is a neuromuscular organ that exhibits typical pumping motions, which result in the intake of food particles from the environment. In-depth inspection reveals slightly different dynamics at the various pharyngeal areas, rather than synchronous pumping motions of the whole organ, which are important...
Deep learning (DL), which includes deep reinforcement learning (DRL), holds great promise for carrying out real-world tasks that human minds seem to cope with quite readily. That promise is already delivering extremely impressive results in a variety of areas. However, while DL-enabled systems achieve excellent performance, they are far from perfec...
Turing's 1950 paper introduced the famed "imitation game", a test originally proposed to capture the notion of machine intelligence. Over the years, the Turing test spawned a large amount of interest, which resulted in several variants, as well as heated discussions and controversy. Here we sidestep the question of whether a particular machine can...
Deep reinforcement learning (DRL) has become a dominant deep-learning paradigm for tasks where complex policies are learned within reactive systems. Unfortunately, these policies are known to be susceptible to bugs. Despite significant progress in DNN verification, there has been little work demonstrating the use of modern verification tools on rea...
Deep reinforcement learning agents have achieved unprecedented results when learning to generalize from unstructured data. However, the “black-box” nature of the trained DRL agents makes it difficult to ensure that they adhere to various requirements posed by engineers. In this work, we put forth a novel technique for enhancing the reinforcement le...
Autonomous systems emerge from the need to progressively replace human operators by autonomous agents in a wide variety of application areas. We offer an analysis of the state of art in developing autonomous systems, focusing on design and validation, and showing that the multi-faceted challenges involved go well beyond the limits of weak AI. We ar...
Deep reinforcement learning (DRL) has achieved groundbreaking successes in a wide variety of robotic applications. A natural consequence is the adoption of this paradigm for safety-critical tasks, where human safety and expensive hardware can be involved. In this context, it is crucial to optimize the performance of DRL-based agents while providing...
Deep reinforcement learning (DRL) has become a dominant deep-learning paradigm for various tasks in which complex policies are learned within reactive systems. In parallel, there has recently been significant research on verifying deep neural networks. However, to date, there has been little work demonstrating the use of modern verification tools o...
Deep reinforcement learning has proven remarkably useful in training agents from unstructured data. However, the opacity of the produced agents makes it difficult to ensure that they adhere to various requirements posed by human engineers. In this work-in-progress report, we propose a technique for enhancing the reinforcement learning training proc...
A method for programming reactive systems, called scenario-based algorithmics, can have several advantages, both in programming and in computer science education. We provide new examples, experiments, and perspectives.
Dynamical systems, i.e., systems that progress along time according to fixed rules, exhibit many special phenomena like the emergence of interesting patterns, bifurcation of behavior, the appearance of chaos despite determinism and boundedness, and sensitive dependence on initial conditions. Such phenomena are encountered in diverse fields, such as...
italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Editor’s notes:
This article advocates the need for a new autonomics foundation with a focus on decision-making logic and its processes for building trustworthy autonomous systems. —
Selma Saidi, TU Dortmund</i
Significance
Autonomous systems are replacing humans in a variety of tasks, and in the years to come, such systems will become central and crucial to human life. They will include vehicles of all kinds, medical and industrial robots, agricultural and manufacturing facilities, traffic management systems, and much more. While many organizations striv...
In all software development projects, engineers face the challenge of translating the requirements layer into a design layer, then into an implementation-code layer, and then validating the correctness of the result. Many methodologies, languages and tools exist for facilitating the process, including multiple back-and-forth ‘refinement trips’ acro...
Art therapy and music therapy, as well as other arts-based approaches and interventions, help to mitigate symptoms in serious and chronic diseases and to improve the well-being and quality of life for both healthy individuals and patients. Artistic creation is also researched and practiced intending to empower and understand individuals, groups, an...
When developing autonomous systems, engineers and other stakeholders make great effort to prepare the system for all foreseeable events and conditions. However, these systems are still bound to encounter events and conditions that were not considered at design time. For reasons like safety, cost, or ethics, it is often highly desired that these new...
Scenario-Based Programming (SBP) is an approach to modeling and running complex, event-based, system behavior by composing narrower views of overall behavior. In this paper we introduce significant extensions to the strict interfaces by which scenarios in existing SBP frameworks specify what the system must, may, or must not do, and to the mechanis...
In all software development projects, engineers face the challenge of translating the requirements layer into a design layer, then into an implementation-code layer, and then validating the correctness of the result. Many methodologies, languages and tools exist for facilitating the process, including multiple back-and-forth `refinement trips' acro...
The potential benefits of autonomous systems have been driving intensive development of such systems, and of supporting tools and methodologies. However, there are still major issues to be dealt with before such development becomes commonplace engineering practice, with accepted and trustworthy deliverables. We argue that a solid, evolving, publicl...
Artificial intelligence (AI) techniques, including, e.g., machine learning, multi-agent collaboration, planning, and heuristic search, are emerging as ever-stronger tools for solving hard problems in real-world applications. Executable specification techniques (ES), including, e.g., Statecharts and scenario-based programming, is a promising develop...
Free improvisation is a common technique in music therapy, used to express one’s ideas or feelings in the non-verbal language of music. More broadly, music therapy is used to induce therapeutic and psychosocial effects; i.e., to help alleviate symptoms in serious and chronic diseases, and to empower the wellbeing and quality of life for healthy ind...
The pharynx of the nematode Caenorhabditis elegans is a neuromuscular pump that exhibits two typical motions: pumping and peristalsis. While the dynamics of these motions are well characterized, the underlying mechanisms generating most of them are not known. In this paper, we propose comprehensive and detailed mechanisms that can explain the vario...
Music making, in the form of free improvisations, is a common technique in music therapy, used to express one’s feelings or ideas in the non-verbal language of music. In the broader sense, arts therapies, and music therapy in particular, are used to induce therapeutic and psychosocial effects, and to help mitigate symptoms in serious and chronic di...
Depiction of an improvisation of “ugly”.
The improvisation was carried out by a 67 year old male; its timeline is shown on the abscissa. The ordinate: the keyboard layout where Cn denotes the note C and the octave number it is in. The black dots represent the keys pressed. Note that there are clusters of more than ten keys pressed in parallel. This...
Improvisations of “ugly” and “beautiful” depicted over time.
These two improvisations were carried out by a 29 year old female. (A) The ordinate displays the keyboard marked by the C notes and the octaves they are in, whereas the notes pressed for “ugly” and “beautiful” appear as black and red dots, respectively. (B) The intensity values for the no...
The comprehensive textual report for an improvisation of “ugly”.
The improvisation can be heard by playing S1 Audio File. Its graphic depiction appears in S2 Fig in black.
(TIF)
The top view of the system’s model.
The Statecharts visual formalism [44] modeling the music room and three concurrent/orthogonal states (dashed lines) specifying the entities therein: the Music_work, Client (patient) and Music_Therapist. The figure also shows the events that trigger the beginning of the therapy session and its termination, specifi...
Study setup and procedure.
The study was carried out in the recording studio in the Music Department of Bar Ilan University. (A) The apparatus—Roland A-30-MIDI keyboard controller, comprised of 76 keys, 31 of them black and 45 white. Piano sound. The auditory feedback through speakers. (B) The participant playing station. (C) The experimenter contr...
The participants’ de-identified data set.
(TXT)
Hierarchical view of the system’s model.
The visual modeling of the system using the Statecharts formalism. (Top Panel) The top view of the system, see S4 Fig. (Bottom Panel) The Playing state, zoomed in, is further decomposed into sub-states formulating the music making process.
(TIF)
Similarity in parameter comparison of collectives.
(PDF)
Statistical analysis of the demographic study.
(PDF)
Statistical analysis of the improvisation tasks study.
(PDF)
Scenario-based modeling (SBM) is an emerging approach for creating executable models of complex reactive systems. In addition to its use in software and system development, SBM has been shown to serve well in modeling biological processes. In this position paper, we show that SBM can be used effectively in modeling biochemical pathways at the molec...
Modern software systems are so complex that at times engineers find it difficult to understand why a system behaves as it does under certain conditions, and, in particular, which conditions trigger specific behavior. This adds a significant burden to tasks like debugging or maintenance. Scenario-based specifications can mitigate some of the problem...
Scenario-based modeling (SBM) is an emerging approach for creating executable models of complex reactive systems. In addition to its use in software and system development, SBM has been shown to serve well in
modeling biological processes. In this position paper, we show that SBM can be used effectively in modeling biochemical pathways at the molec...
Scenario-basedmodeling(SBM)isanapproachforcreatingexecutable models for reactive systems where each artifact specifies a separate aspect of over- all system behavior. SBM has many advantages, including structural alignment with requirements, intuitiveness and incrementality, and it is available in visual languages (e.g., LSC), textual languages (e....
In scenario-based programming (SBP), the semantics, which enables direct execution of these intuitive specifications, calls, among others, for synchronizing concurrent scenarios prior to every event-selection decision. Doing so even when the running scenarios are distributed across multiple physical system components, may degrade system performance...
A broad, long-term research project is described, which will lead to the computer becoming an equal member of the system-development team, continuously making proactive contributions, akin to those expected from an experienced and knowledgeable customer or user, a conscientious QA engineer, a strict regulatory auditor, an engineering -team leader,...
This is the second part of a two-part series that describes a pilot programming course in which high school students majoring in computer science were introduced to the visual, scenario-based programming language of live sequence charts. The main rationale for the course was that computer science students should be exposed to at least two very diff...
This article describes a pilot programming course in which high school students were introduced, through the visual programming language of live sequence charts (LSC), to a new paradigm termed scenario-based programming. The rationale underlying this course was teaching high school students a second, very different programming paradigm. Using LSC f...
Rats’ large whiskers (macrovibrissae) are used to explore their nearby environment, typically using repetitive protraction-retraction “whisking” motions that are coordinated with head and body movements [ 1–8 ]. Once objects are detected, the rat can further explore the object tactually by using both the macrovibrissae and an array of shorter, stat...
In recent years, scenario-based modeling has been proposed to help mitigate some of the underlying difficulties in modeling complex reactive systems, by allowing modelers to specify system behavior in a way that is intuitive and directly executable. This modeling approach simplifies the specification of systems that include events occurring in dist...
In 1950 Alan Turing proposed his imitation game, better known as the Turing test, for determining whether a computer system claimed to adequately exhibit intelligence indeed does so. This work was carried out although no such system was anywhere in sight at the time, and we are still far from it now, many decades later. The current paper raises the...
Despite many advances in automating system and software engineering, the knowledge, skills and experience of human engineers and domain experts are, and will continue to be, critical factors in the success of complex system development projects. In a new research direction we term towards wise computing we aim to make some of these abilities availa...
Background
Research related to cancer is vast, and continues in earnest in many directions. Due to the complexity of cancer, a better understanding of tumor growth dynamics can be gleaned from a dynamic computational model. We present a comprehensive, fully executable, spatial and temporal 3D computational model of the development of a cancerous tu...
The authors present an initial wise development framework: a development environment that proactively and interactively assists the software engineer in modeling complex reactive systems. Their framework repeatedly analyzes models of the system under development at various levels of abstraction, and then reasons about these models in order to detec...
We introduce a novel method for creating mobile applications, integrating the Android SDK into PlayGo, a scenario-based behavioral programming framework. The method allows creating mobile applications simply by using a visual GUI editor, and then incrementally "playing in" scenarios that construct the application's behavior. This allows the develop...
Nondeterminism (ND) is a fundamental concept in computer science, and comes in two main flavors. One is the kind of ND that appears in automata theory and formal languages, and is the one that students are usually introduced to. It is known to be hard to teach. We present here a study, in which we introduced students to the second kind of ND, which...
We present a development environment that proactively and interactively assists the software engineer in modeling
complex reactive systems. Our framework repeatedly analyzes models of the system under development
at various levels of abstraction, and then reasons about these models in order to detect possible errors and to
derive emergent propertie...
The ability to create succinct programs is a central criterion for comparing programming and specification methods. Specifically, approaches to concurrent programming can often be thought of as idioms for the composition of automata, and as such they can then be compared using the standard and natural measure for the complexity of automata, descrip...
We present a method for the automatic compositional verification of certain classes of concurrent programs. Our approach is based on the casting of the model checking problem into a theory of transition systems within CVC4, a DPLL(T) based SMT solver. Our transition system theory then cooperates with other theories supported by the solver (e.g., ar...
The ability to visualize the ongoing events of a computational model of biology is critical, both in order to see the dynamics of the biological system in action and to enable interaction with the model from which one can observe the resulting behavior. To this end, we have built a new interactive animation tool, SimuLife, for visualizing reactive...
We propose a simple, user-friendly way of creating computer programs for hybrid systems whose execution involves animation. This is done by adapting behavioral programming, a recently proposed approach to software development that is aligned with how people describe system behavior, for use in programming animation. Users can define discrete and co...
Art therapy, as well as other arts-based therapies and interventions, is used to reduce pain, stress, depression, breathlessness and other symptoms in a wide variety of serious and chronic diseases, such as cancer, Alzheimer and schizophrenia. Arts-based approaches are also known to contribute to one's well-being and quality of life. However, much...
Encouraged by significant advances in algorithms and tools for verification
and analysis, high level modeling and programming techniques, natural language
programming, etc., we feel it is time for a major change in the way complex
software and systems are developed. We present a vision that will shift the
power balance between human engineers and t...
In recent years formal verification techniques have become an important part of the development cycle of concurrent software. In order to tackle the state explosion problem and verify larger systems, a great deal of work has been put into improving the scalability of verification tools. In this work, we seek to draw attention to an alternative/comp...
Behavioral programming (BP) is a decentralized scenario-based paradigm for the programming of reactive software, geared towards incremental and intuitive development. In this work we apply the principles of BP to a large, real-world case-study: a web-server. We discuss the conclusions learned from our attempt and propose several extension idioms to...
In this article, we discuss the possible connection between the programming language and the paradigm behind it, and programmers'tendency to adopt an external or internal perspective of the system they develop. Based on a qualitative analysis, we found that when working with the visual, interobject language of live sequence charts (LSC), programmer...
We show how, under certain conditions, programs written in the behavioral programming approach can be modified (e.g., as a result of new requirements or discovered bugs) using automatically-generated code modules. Given a trace of undesired behavior, one can generate a relatively small piece of code, whose execution is interwoven at run time with t...
We examine how students work in scenario-based and object-oriented programming (OOP) languages, and qualitatively analyze the use of abstraction through the prism of the differences between the paradigms. The findings indicate that when working in a scenario-based language, programmers think on a higher level of abstraction than when working with O...
Programming, i.e., the act of creating a runnable artifact applicable to multiple inputs/tasks, is an art that requires substantial knowledge of programming languages and development techniques. As the use of software is becoming far more prevalent in all aspects of life, programming has changed and the need to program has become relevant to a much...
As part of expanding the implementation and use of the behavioral programming (BP) approach in a variety of languages and configurations, we tackle some of the challenges associated with applying the approach in a truly distributed, decentralized manner, where different modules run on separate machines. BP supports the development of reactive appli...
Scenario-based modeling in live sequence charts (LSC) involves specifying multi-modal inter-object scenarios, in which events can be mandatory (hot) or possible (cold). In translating LSCs into automata over infinite words, an intermediate step constructs a kind of transition system that we call a modal state structure (MSS). Here we present MSSs a...
In behavioral programming, a program consists of separate modules called behavior threads, each representing a part of the system’s allowed, necessary or forbidden behavior. An execution of the program is a series of synchronizations between these threads, where at each synchronization point an event is selected to be carried out. As a result, the...