Secondary Navigation

Professors Morris and Rector receive NSF CAREER awards

Morris and Rector recipients of 2020-21 NSF CAREER Awards

Kyle Rector -- CAREER: Supporting Interaction with Dynamic Virtual Reality Experiences for People with Visual Impairments

Virtual reality (VR) is a computer-generated simulation that inserts a person into a 3D environment. VR has applications in education, training, rehabilitation, tourism, and other domains. However, because many VR experiences rely on vision, making them inaccessible to people with visual impairments, research is needed in how to make these experiences more widely available. One key barrier to accessibility is that people using VR frequently interact with objects in the simulation that move.

Professor Rector proposes to investigate the design and development of virtual reality environments that have moving targets and are accessible to people with visual impairments. Rector’s CAREER Award focuses on three key components of VR interaction:

  1. helping people accurately select nearby targets on a vertical plane,
  2. accurately depicting the time-to-contact of approaching targets, and
  3. using positional metaphors to indicate the location of multiple virtual targets simultaneously. This project will determine how to provide information to, and process input from users with visual impairments, and how to model their intent. This work will involve user-centered design and both lab and longitudinal evaluations of the solutions.

The project’s education plan includes teaching computing concepts to youth with visual impairments, disseminating the research to less technology-centric fields, and integrating accessibility topics into computing coursework. This research will address unsolved problems in making virtual reality accessible to people with visual impairments, set guidelines for accessible virtual reality experiences based on empirical evidence, and develop an open-source toolkit.


Garrett Morris -- CAREER: Extensibility In Theory And Practice

Modern software relies on large ecosystems of independent software components: even simple websites and applications depend on hundreds of libraries. Over time, these libraries and components evolve independently: defects are repaired, new features are designed, and entire features are rethought and redesigned. For the software engineer, the challenge becomes how to incorporate improvements in underlying components without disrupting their applications and libraries. For programming languages, and other software engineering tools, the challenges are twofold. First, language must support identifying and developing independent components. Reusable components are frequently only discovered through their applications, so languages must support both developing new components and abstracting components from larger software projects. Second, languages must provide cosntructs to specify and enforce the interfaces and interactions among components. Otherwise, software development will become increasingly fraught with unexpected, difficult to diagnose failures arising from changes in libraries and components.

This project will design, develop, and evaluate new programming language features for modular specification and implementation of program data and behavior, at all levels of the software stack. This will result in improved productivity for prorammers, and improved relability for end users, as languages and language tools will support modular software development and identify incompatibilities among and incorrect usage of libraries and components.

The project has three primary themes. The first is modularity and reuse in high-level programming languages. High-level languages allow programmers to give abstract definitions of data and computation, and are usually used in developing user-facing applications. The project will adapt the abstractions of high-level languages to suport extensibility, a programming language concept which incorporates (and subsumes) modularity. Support for extensibility will extend both to data structures, allowing representations of data to change and evolve without rewriting existing code, and to computational effects, allowing seemless extension of existing code with new effects, like parallelism and concurrency. The second is modularity and reuse in low-level programming languages. Low-level languages are used in developing systems applications, such as operating systems and web servers, and must give programmers precise control over how data is represented and exchanged. The project will develop extensible bit-level specifications of data structures and their layout, improving reuse and modularity in operating system kernsl and hardware interfaces. The third theme is efficient compilation of extensible code. The previous themes will only have impact if the resulting language features have comparable performance with existing code. We will use linear typing and compile-type specialization to offset runtime costs traditionally associated with generic and extensible programming techniques.
 


These five-year projects have been awarded $550,000 and $524,616, respectively.


The Faculty Early Career Development (CAREER) Program is a Foundation-wide activity that offers the National Science Foundation's most prestigious awards in support of early-career faculty who have the potential to serve as academic role models in research and education and to lead advances in the mission of their department or organization.


Related read:

UI CLAS News piece: "Garrett Morris and Kyle Rector of Computer Science earn prestigious NSF CAREER awards."

3-29-21 screengrab friom now.uiowa.edu