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 such 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.