Projects

 

Active Projects »

Gameful Computational Thinking

Inspired by CS for All?  Eager to contribute?  The Programming Systems Lab, led by Professor Gail Kaiser, is building a collaborative game-based learning and assessment system that infuses computational thinking in grade 6-8 curricula.  Near-term projects involve: Tooling Scratch with game design features Expanding a visual assessment language based in Blockly Enhancing an assessment server […]

 

Toward Trustworthy Mutable Replay for Security Patches

Society is increasingly reliant on software, but deployed software contains security vulnerabilities and other bugs that can threaten privacy, property and even human lives. When a security vulnerability or other severe defect is discovered, a software patch is issued to attempt to fix the problem – but patches themselves can be incorrect, inadequate, and break mission-critical […]

 

Dynamic Code Similarity

“Code clones” are statically similar code fragments dispersed via copy/paste or independently writing lookalike code; best practice removes clones (refactoring) or tracks them (e.g., to ensure bugs fixed in one clone are also fixed in others). We instead study dynamically similar code, for two different similarity models. One model is functional similarity, finding code fragments […]

 
 

Please find the list of projects active and retired below. Students interested in positions in the lab for the coming semester should review our current list of student positions.

Active Projects


Gameful Computational Thinking - Inspired by CS for All?  Eager to contribute?  The Programming Systems Lab, led by Professor Gail Kaiser, is building a collaborative game-based learning and assessment system that infuses computational thinking in grade 6-8 curricula.  Near-term projects involve: Tooling Scratch with game design features Expanding a visual assessment language based in Blockly Enhancing an assessment server […]

Toward Trustworthy Mutable Replay for Security Patches - Society is increasingly reliant on software, but deployed software contains security vulnerabilities and other bugs that can threaten privacy, property and even human lives. When a security vulnerability or other severe defect is discovered, a software patch is issued to attempt to fix the problem – but patches themselves can be incorrect, inadequate, and break mission-critical […]

Dynamic Code Similarity - “Code clones” are statically similar code fragments dispersed via copy/paste or independently writing lookalike code; best practice removes clones (refactoring) or tracks them (e.g., to ensure bugs fixed in one clone are also fixed in others). We instead study dynamically similar code, for two different similarity models. One model is functional similarity, finding code fragments […]

Retired Projects


Record/Replay Bug Reproduction for Java - There will inevitably continue to be bugs that are not detected by any testing approach, but eventually impact users who then file bug reports. Reproducing field failures in the development environment can be difficult, however, especially in the case of software that behaves non-deterministically, relies on remote resources, or has complex reproduction steps (the users […]

Dynamic Information Flow Analysis - We are investigating an approach to runtime information flow analysis for managed languages that tracks metadata about data values through the execution of a program. We first considered metadata that propagates labels representing the originating source of each data value, e.g., sensitive data from the address book or GPS of a mobile device that should […]

Sound Build Acceleration - Sound Build Acceleration: Our empirical studies found that the bulk of the clock time during the builds of the ~2000 largest and most popular Java open source software applications is spent running test cases, so we seek to speed up large builds by reducing testing time. This is an important problem because real-world industry builds […]

CS/SE Education - New Techniques and Approaches to improve CS/SE Education

Fine-Grained Data Management Abstractions - Transparent logical objects for Android

An Open Software Framework for the Emulation and Verification of Drosophila Brain Models on Multiple GPUs - Software frameworks and tools to emulate fly brains

Metamorphic Testing - Testing non-testable programs.

In Vivo Testing - Executing tests in the deployment environment, using the state of the running application

Societal Computing - Computational tradeoffs that balance societal goals

ARIS - Automated Online Evaluation for Improving Cyber-Physical System Reliability

Gameful Approaches to Computer Science Education - Gamifying Software Engineering

genSpace - Enabling collaboration support for users of the geWorkbench computational biology tool

VULCANA - VULnerability sCANner Assessment benchmark

CloudView - Peer to Peer Fault Detection and Diagnosis

COMPASS - Providing advice to programmers while they re-engineer their code for parallelism

Retina - Understanding students' programming habits and creating ad hoc social networks

Kheiron - Autonomic computing

Backstop - Helping novice programmers understand and debug runtime errors

CRUNCH - Web proxy

XUES - event-based temporal protocol matching and notification

DISCUS - Decentralized Information Spaces for Composition and Unification of Services

Kinesthetics eXtreme - Continual system validation and coordination

MEET - Event Transport with XML events: survivable, embeddable, extensible, scalable.

Worklets/Workflakes - process-aware mobile agent coordinated communities

AI2TV - A joint project with Profs. Gail Kaiser,  John Kender and Jason Nieh. Flyer (6/01)

CHIME - Immersive multimedia 3D collaborative virtual environments

SurvivorNG - Survivable Enterprise Middleware proposal (doc) (pdf) A Mobile Agent Approach to Process-based Dynamic Adaptation of Complex Software Systems talk (ppt)

FleXML - Flexible XML, backwards-compatible with XML

Taskweb - Open Hypermedia System for Palm PDA

Hi-C - Source code to HTML translator for etags-compatible languages

JIM - Java Instant Messaging

Workgroup Cache - teamwork-oriented recommender architecture

JPernLite - Programmable transaction service for WWW applications

Rivendell - Distributed Tool Service

OzWeb - WWW-based Process-Centered Environment

Pern - Extended Transaction Management Component

Darkover - Object Management System

Marvel - Multi-User Rule-Based Process-Centered Environment

Atlantis - An Open Architecture for Synergy of Process-Centered Environments and Computer-Supported Cooperative Work