494 research outputs found
Debugging Native Extensions of Dynamic Languages
Many dynamic programming languages such as Ruby and Python enable developers
to use so called native extensions, code implemented in typically statically
compiled languages like C and C++. However, debuggers for these dynamic
languages usually lack support for also debugging these native extensions.
GraalVM can execute programs implemented in various dynamic programming
languages and, by using the LLVM-IR interpreter Sulong, also their native
extensions. We added support for source-level debugging to Sulong based on
GraalVM's debugging framework by associating run-time debug information from
the LLVM-IR level to the original program code. As a result, developers can now
use GraalVM to debug source code written in multiple LLVM-based programming
languages as well as programs implemented in various dynamic languages that
invoke it in a common debugger front-end.Comment: 7 pages, 7 figures, accepted at 15th International Conference on
Managed Languages & Runtimes (ManLang'18
Instrumentation and Data Collection for Sheet Glass Production
Indiana University Purdue University IndianapolisKokomo Opalescent Glass (KOG) is a manufacturer of art glass located in Kokomo Indiana. KOG has high defect rates in their sheet glass production process that can vary greatly depending on operator experience and environmental factors. This project aimed to improve the repeatability of KOG’s sheet glass production process by enabling them to monitor the temperature at which glass sheets enter their annealing oven and to decrease their defect rate, which has historically been around 25%. Through integrating instrumentation and data collection into KOG’s production process, defects in sheet glass production were successfully decreased by approximately 10% in the weeks following the installation of the device created in this project.Electrical Engineering Technolog
An Arduino Simulator in Classroom - a Case Study
The Arduino Platform is increasingly being used as a central component in introductory programming courses of the curricula in middle, high school and even higher education. Given this scenario it is pertinent to understand how the cost-effectiveness, reliability and accessibility of this central component can be improved. We propose the use of an Arduino simulator to improve usability, cost, and class efficiency, allowing for improved and even new forms of use and course benefits. This paper presents and describes an Arduino simulator that we developed for education purposes, and a case study of its use in embedded programming courses from two high-schools. We compared its use against the usual use of real hardware platform analyzing usability, student workload and time efficiency. Our results, that we present and discuss, suggest that there are no apparent drawbacks in using the simulator, and some metrics such as basic exercise-solving efficiency and global effort showed an improvement
Using Arts and Crafts to teach Computer Science at the YMCA After-School Program
Computer Science (CS) is a popular, flourishing field. To prepare young students, CS is now being taught in middle school. Our team created a curriculum that delivers CS education using arts and crafts. We crafted a multi-week program that taught CS concepts including pseudo code, debugging, functions, and algorithms using art activities involving navigating a maze and drawing pixel art. We piloted the curriculum with 6th/7th graders at a YMCA after-school program, where we observed the students’ perspective, interest, and knowledge of CS. After the pilot program, we analyzed the results to measure the curriculum’s effectiveness and found the students better understood CS. The project resulted in a curriculum and set of recommendations for future groups conducting similar projects
Investigation of GPGPU for use in processing of EEG in real-time
The purpose of this thesis was to investigate the use of General Purpose computing on Graphics Processing Units (GPGPU) to process electroencephalogram (EEG) signals in real-time. The main body of this work required the implementation of Independent Component Analysis were investigated: FastICA and JADE. Both were implemented three times: first using M-file syntax to serve as a benchmark, next, as native C code to measure performance of the algorithms when running natively on a CPU, and finally, as GPGPU code using the NVIDIA CUDA C language extension. In previous works, Independent Component Analysis represented the largest roadblock to achieving the real-time goal of processing 10 seconds of EEG within a 10 second window. It was found that both FastICA and JADE see speedups, with a maximum measured speedup of approximately 6x for FastICA, and approximately 2.5x for JADE, when operating on the largest datasets. In addition, speedups of between 1x and 2x were seen when working on datasets of the expected size provided by 10 seconds of 32-channel EEG sampled at 500 Hz. However, it was also found that GPGPU solutions are not necessary for real-time performance on a modern desktop computer as the FastICA algorithm is capable of a worst-case performance of between approximately 1 and 2 seconds depending on configuration parameters
Design and implementation of a generalised computer aided learning system
This thesis surveys the development of computer aided learning and outlines the tools that are used for creating computer aided learning systems. A project to create and port over a computer aided learning system from a VAX 11/750 to a PDF model 11/44 based on the UNIX operating system is described. The computer aided learning system makes extensive use of existing software tools available on UNIX and is hence named CALUNIX for Computer Aided Learning on UNIX
xLED: Covert Data Exfiltration from Air-Gapped Networks via Router LEDs
In this paper we show how attackers can covertly leak data (e.g., encryption
keys, passwords and files) from highly secure or air-gapped networks via the
row of status LEDs that exists in networking equipment such as LAN switches and
routers. Although it is known that some network equipment emanates optical
signals correlated with the information being processed by the device
('side-channel'), intentionally controlling the status LEDs to carry any type
of data ('covert-channel') has never studied before. A malicious code is
executed on the LAN switch or router, allowing full control of the status LEDs.
Sensitive data can be encoded and modulated over the blinking of the LEDs. The
generated signals can then be recorded by various types of remote cameras and
optical sensors. We provide the technical background on the internal
architecture of switches and routers (at both the hardware and software level)
which enables this type of attack. We also present amplitude and frequency
based modulation and encoding schemas, along with a simple transmission
protocol. We implement a prototype of an exfiltration malware and discuss its
design and implementation. We evaluate this method with a few routers and
different types of LEDs. In addition, we tested various receivers including
remote cameras, security cameras, smartphone cameras, and optical sensors, and
also discuss different detection and prevention countermeasures. Our experiment
shows that sensitive data can be covertly leaked via the status LEDs of
switches and routers at a bit rates of 10 bit/sec to more than 1Kbit/sec per
LED
Eclipse based Environment for Multi-Architecture Cross Developments
We investigate the current state of open-source (or at least free proprietary) tool-chains that enable cross developments for different architectures of embedded systems and the ability to integrate them on an Eclipse based development environment. We provide a proof of concept of a possible solution that, in addition to the basic features, includes hardware debugging and productivity enhancement tools such as automatic documentation, version control, and serial console management
UML-Based co-design framework for body sensor network applications
Ph.DDOCTOR OF PHILOSOPH
- …