interactive execution environments are suitable for trialand-error basis programming for microcontrollers. However, they are mostly implemented as interpreters to meet microcontrollers' limited memory size and dem...
详细信息
ISBN:
(纸本)9798400711183
interactive execution environments are suitable for trialand-error basis programming for microcontrollers. However, they are mostly implemented as interpreters to meet microcontrollers' limited memory size and demands for portability. Hence, their execution performance is not sufficiently high. In this paper, we propose offloading dynamic incremental compilation and linking to a host computer connected to a microcontroller. Since the computing resources of the host computer are sufficient to execute incremental dynamic compilation, they are used to enhance the relatively poor computing resources of the microcontroller. To show the feasibility of this idea, we design a small programming language named BlueScript and implement its interactive execution environment. Our experiment reveals that BlueScript executes a program one to two orders of magnitude faster than MicroPython, while its interactivity is comparable to that of MicroPython despite using dynamic incremental compilation.
programming a robot takes time, effort, and expert knowledge. As robots find their way to our personal spaces, it becomes urgent to investigate more intuitive methods to program them. An emerging field of research has...
详细信息
Multi-objective transportation problem (MOTP) is a special case of vector minimization linear optimization problem with equality constraints and the objectives are conflicting in nature. Due to the conflicting nature ...
详细信息
Understanding the performance behavior of parallel applications is important in many ways, but doing so is not easy. Most open source analysis tools are written for the command line. We are building on these proven to...
详细信息
ISBN:
(纸本)9798350364613;9798350364606
Understanding the performance behavior of parallel applications is important in many ways, but doing so is not easy. Most open source analysis tools are written for the command line. We are building on these proven tools to provide an interactive performance analysis experience within Jupyter Notebooks when developing parallel code with MPI, OpenMP, or both. Our solution makes it possible to measure the execution time, perform profiling and tracing, and visualize the results within the notebooks. For ease of use, it provides both a graphical JupyterLab extension and a C++ API. The JupyterLab extension shows a dialog where the user can select the type of analysis and its parameters. Internally, this tool uses Score -P, Scalasca, and Cube to generate profiling and tracing data. This tight integration gives students easy access to profiling tools and helps them better understand concepts such as benchmarking, scalability and performance bottlenecks. In addition to the technical development, the article presents hands-on exercises from our well-established parallel programming course. We conclude with a qualitative and quantitative evaluation with 19 students, which shows a positive effect of the tools on the students' perceived competence.
programming by demonstration is reaching industrial applications, which allows non-experts to teach new tasks without manual code writing. However, a certain level of complexity, such as online decision making or the ...
详细信息
programming by demonstration is reaching industrial applications, which allows non-experts to teach new tasks without manual code writing. However, a certain level of complexity, such as online decision making or the definition of recovery behaviors, still requires experts that use conventional programming methods. Even though, experts cannot foresee all possible faults in a robotic application. To encounter this, we present a framework where user and robot collaboratively program a task that involves online decision making and recovery behaviors. Hereby, a task-graph is created that represents a production task and possible alternative behaviors. Nodes represent start, end or decision states and links define actions for execution. This graph can be incrementally extended by autonomous anomaly detection, which requests the user to add knowledge for a specific recovery action. Besides our proposed approach, we introduce two alternative approaches that manage recovery behavior programming and compare all approaches extensively in a user study involving 21 subjects. This study revealed the strength of our framework and analyzed how users act to add knowledge to the robot. Our findings proclaim to use a framework with a task-graph based knowledge representation and autonomous anomaly detection not only for initiating recovery actions but particularly to transfer those to a robot.
In this era of smart devices, new technologies, gadgets, apps, and numerous systems and services available over online, teaching an introductory programming course by traditional lecture method faces challenges to dra...
详细信息
ISBN:
(纸本)9781450367936
In this era of smart devices, new technologies, gadgets, apps, and numerous systems and services available over online, teaching an introductory programming course by traditional lecture method faces challenges to draw student's attention; especially in their freshman year. In this work, we discuss our experience in teaching an introductory CS course by infusing both interactive and collaborative learning in pedagogy so that students can learn using interactive platforms, tools, technologies, systems, and services as available to them and collaboration within and among groups. For interactive learning, students used an interactive programming environment (e.g. *** classroom) as well as online eBooks. We designed several in-class exercises, assignments, small lab-based projects with example codes and expected outputs, and unit tests by using built-in unit tests library. We also, in the middle of semester, introduced collaborative learning through teamwork on well-defined projects during the learning time and submitted at the end. The collaborations include use of basic task management tools and multi-player tool of *** that the students can critic, supplement, improve peer works and learn. To evaluate the impact of this infusion, a pre- and post-survey were conducted on student cohort in two different semesters. The initial evaluation of the survey results and performances (final project and final grades) show evidence to conclude that the proposed pedagogical approach increased student motivation and engagement and facilitated learning to entry-level computer science students.
AI can enhance programming experiences for a diverse set of programmers: from professional developers and data scientists (proficient programmers) who need help in software engineering and data wrangling, all the way ...
详细信息
ISBN:
(纸本)9781450394130
AI can enhance programming experiences for a diverse set of programmers: from professional developers and data scientists (proficient programmers) who need help in software engineering and data wrangling, all the way to spreadsheet users (low-code programmers) who need help in authoring formulas, and students (novice programmers) who seek hints when stuck with their programming homework. To communicate their need to AI, users can express their intent explicitly—as input-output examples or natural-language specification—or implicitly—where they encounter a bug (and expect AI to suggest a fix), or simply allow AI to observe their last few lines of code or edits (to have it suggest the next steps). The task of synthesizing an intended program snippet from the user’s intent is both a search and a ranking problem. Search is required to discover candidate programs that correspond to the (often ambiguous) intent, and ranking is required to pick the best program from multiple plausible alternatives. This creates a fertile playground for combining symbolic-reasoning techniques, which model the semantics of programming operators, and machine-learning techniques, which can model human preferences in programming. Recent advances in large language models like Codex offer further promise to advance such neuro-symbolic techniques. Finally, a few critical requirements in AI-assisted programming are usability, precision, and trust; and they create opportunities for innovative user experiences and interactivity paradigms. In this talk, I will explain these concepts using some existing successes, including the Flash Fill feature in Excel, Data Connectors in PowerQuery, and IntelliCode/CoPilot in Visual Studio. I will also describe several new opportunities in AI-assisted programming, which can drive the next set of foundational neuro-symbolic advances.
This paper presents a small humanoid robot and a system for programming this robot by demonstration. The system uses the popular Kinect sensor to capture the motion of the operator and allows the small, low-cost robot...
详细信息
ISBN:
(纸本)9781467353205
This paper presents a small humanoid robot and a system for programming this robot by demonstration. The system uses the popular Kinect sensor to capture the motion of the operator and allows the small, low-cost robot to mimics full body motion in real time. The motion programming approach is based on extracting the angles in the observed operators joints (knees, elbows, etc.) and correcting them, in order to make them feasible for the considerably different kinematics of the humanoid robot. The system maintains also the balance of the robot and avoids self-collisions of its body parts. This system is simple but effective, allowing for a broad range of human operator behaviors.
Interfaces for machine learning (ML), information and visualizations about models or data, can help practitioners build robust and responsible ML systems. Despite their benefits, recent studies of ML teams and our int...
详细信息
ISBN:
(纸本)9781450391573
Interfaces for machine learning (ML), information and visualizations about models or data, can help practitioners build robust and responsible ML systems. Despite their benefits, recent studies of ML teams and our interviews with practitioners (n=9) showed that ML interfaces have limited adoption in practice. While existing ML interfaces are effective for specific tasks, they are not designed to be reused, explored, and shared by multiple stakeholders in cross-functional teams. To enable analysis and communication between different ML practitioners, we designed and implemented Symphony, a framework for composing interactive ML interfaces with task-specific, data-driven components that can be used across platforms such as computational notebooks and web dashboards. We developed Symphony through participatory design sessions with 10 teams (n=31), and discuss our findings from deploying Symphony to 3 production ML projects at Apple. Symphony helped ML practitioners discover previously unknown issues like data duplicates and blind spots in models while enabling them to share insights with other stakeholders.
暂无评论