Cognitive Engineering Lab

About

We research how to use computers to support complex cognitive tasks: programming, verification, communication, learning, and more.

We apply theories of human cognitive capabilities and limitations to understand how computers can best provide cognitive support. The interdisciplinary nature of this work is reflected in the term cognitive engineering.

Our backgrounds are primarily as computer scientists, programming language theorists, and software engineers. At CEL, we build practical systems that are used by hundreds of thousands of people around the world. We look for students who are talented programmers that care deeply about the human factors of their work.

Publications

An Interactive Debugger for Rust Trait Errors

Profiling Programming Language Learning

.

Identifying and Correcting Programming Language Behavior Misconceptions

.

OOPSLA2024. Distinguished Paper. DOI Project Page

A Grounded Conceptual Model for Ownership Types in Rust

The Role of Working Memory in Program Tracing

.

CHI2021. Featured in the MIT PL Review. DOI arXiv Video

Blog

April 29, 2025 · An Interactive Debugger for Rust Trait Errors

November 21, 2024 · Evaluating Human Factors Beyond Lines of Code

July 1, 2024 · What is the Cognitive Engineering Lab?

Projects

[

Visualizing Rust's ownership types

Aquascope](https://cel.cs.brown.edu/paper/ownership-conceptual-model/)Argus

Visualizing Rust's trait system

Argus

View originalFlowistry

Visualizing information flow in Rust

Flowistry

View original

[

Profiling language learning

Rust Book Experiment](https://cel.cs.brown.edu/paper/profiling-pl-learning/)C++ to Rust Phrasebook

Translating across languages

C++ to Rust Phrasebook

View originalSMoL Tutor

Addressing PL misconceptions

SMoL Tutor

View original

[

Alloy, improved!

Forge](https://blog.brownplt.org/2024/04/21/forge.html)LTL Tutor

Temporal logic, improved!

LTL Tutor

View original

Powered by Forestry.md