skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Invited: Actors Revisited for Time-Critical Systems
Programming time-critical systems is notoriously difficult. In this paper we propose an actor-oriented programming model with a semantic notion of time and a deterministic coordination semantics based on discrete events to exercise precise control over both the computational and timing aspects of the system behavior.  more » « less
Award ID(s):
1836601
PAR ID:
10118630
Author(s) / Creator(s):
; ; ; ; ; ;
Date Published:
Journal Name:
Design Automation Conference (DAC)
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Jun Oshima, Toshio Mochizuki (Ed.)
    Designing activities for maximizing collaborative learning in advanced computer science contexts is of broad interest. While programming exercises remain the dominant form of pedagogy here, prior work showed that collaborative reflection over worked examples is as good or even better for conceptual learning and future programming. This work used a “phased” design, with separate collaborative reflection and programming phases, and varied the time boundary between the two to determine their differential impact. A more effective design, however, could involve collaborative reflection prompted “in the flow” of programming, with benefits similar to self-explanation prompts interleaved into individual problem-solving. While total time-on-task is the same, this “interleaved” design might allow learners to spend a larger proportion of this time on reflection. Thus, this paper compares this novel interleaved approach to the phased design. We determine that interleaving increases the proportion of time available for reflection resulting in performance improvements on future programming. 
    more » « less
  2. The expansion of computer science (CS) into K-12 contexts has resulted in a diverse ecosystem of curricula designed for various grade levels, teaching a variety of concepts, and using a wide array of different programming languages and environments. Many students will learn more than one programming language over the course of their studies. There is a growing need for computer science assessment that can measure student learning over time, but the multilingual learning pathways create two challenges for assessment in computer science. First, there are not validated assessments for all of the programming languages used in CS classrooms. Second, it is difficult to measure growth in student understanding over time when students move between programming languages as they progress in their CS education. In this position paper, we argue that the field of computing education research needs to develop methods and tools to better measure students' learning over time and across the different programming languages they learn along the way. In presenting this position, we share data that shows students approach assessment problems differently depending on the programming language, even when the problems are conceptually isomorphic, and discuss some approaches for developing multilingual assessments of student learning over time. 
    more » « less
  3. MaxMSP is a visual programming language for creating interactive audiovisual media that has found great success as a flexible and accessible option for computer music. However, the visual interface requires manual object placement and connection, which can be inefficient. Automated patch editing is possible either by visual programming with the [thispatcher] object or text-based programming with the [js] object. However, these objects cannot automatically create and save new patches, and they operate at run-time only, requiring live input to trigger patch construction. There is no solution for automated creation of multiple patches at \textitcompile-time, such that the constructed patches do not contain their own constructors. To this end, we present MaxPy, an open-source Python package for programmatic construction and manipulation of MaxMSP patches. MaxPy replaces the manual actions of placing objects, connecting patchcords, and saving patch files with text-based Python functions, thus enabling dynamic, procedural, high-volume patch generation at compile-time. MaxPy also includes the ability to import existing patches, allowing users to move freely between text-based Python programming and visual programming with the Max GUI. MaxPy enables composers, programmers, and creators to explore expanded possibilities for complex, dynamic, and algorithmic patch construction through text-based Python programming of MaxMSP. 
    more » « less
  4. Novice programmers often struggle with code understanding and debugging. Live Programming environments visualize the runtime values of a program each time it is modified to provide immediate feedback, which help with tracing the program execution. This paper presents the use of a Live Programming tool in a CS1 course to better understand the impact of Live Programming on novices’ learning metrics and their perceptions of the tool. We conducted a within-subjects study at a large public university in a CS1 course in Python (N=237) where students completed tasks in a lab setting, in some cases with a Live Programming environment, and in some cases without. Through post-lab surveys and open-ended feedback, we measured how well students understood the material and how students perceived the programming environment. To understand the impact of Live Programming, we compared the collected data for students who used Live Programming with the data for students who did not. We found that while learning outcomes were the same regardless of whether Live Programming was used or not, students who used the Live Programming tool completed some code tracing tasks faster. Furthermore, students liked the Live Programming environment more, and rated it as more helpful for their learning. 
    more » « less
  5. Drift counteraction optimal control (DCOC) aims at optimizing control to maximize the time (or a yield) until the system trajectory exits a prescribed set, which may represent safety constraints, operating limits, and/or efficiency requirements. To DCOC problems formulated in discrete time, conventional approaches were based on dynamic programming (DP) or mixed-integer programming (MIP), which could become computationally prohibitive for higher-order systems. In this paper, we propose a novel approach to discrete-time DCOC problems based on a nonlinear programming formulation with purely continuous variables. We show that this new continuous optimization-based approach leads to the same exit time as the conventional MIP-based approach, while being computationally more efficient than the latter. This is also illustrated by numerical examples representing the drift counteraction control for an indoor airship. 
    more » « less