I have just one research interest: ideas.
Especially, ideas that help solve problems and help
understand the world around us. But also ideas that are fun,
inspiring, foster collaboration,
and lead to looking at things in a new way.
Because interesting ideas are everywhere, I tend to work
in a number of different areas. These are some current areas of focus:
- Computational neuroscience
(PhD students: Jie Hou, Nelson Jaimes, Xiaoqian Sun).
Together with collaborators
in Neuroscience and Physics, I am interested in ensembles of neurons
achieve tasks, and how they change when learning occurs.
- Code mining (PhD student Blake Johnson).
What can we learn about how programmers write code, about what
constitutes code, if we are able to scour millions of lines of code
across thousands of projects? What could we learn about how
a language has evolved over time? PhD student Blake Johnson
has developed a query language to construct and execute queries
on large repositories of source code. His research addresses the
- STEM education.
In a general sense, I am interested in "better ways to teach",
especially in Science, Technology, Engineering and Math (STEM)
disciplines. Not just my own teaching, but also curricula
and new programs and interdisciplinary curricula that
can help train the next generation of scientists and engineers.
In recent projects, I have worked with physicists and biologists
in integrating computational approaches into science education.
A more recent and on-going project is about finding ways to
shape curricula through feedback from employers.
Another set of projects (with Pablo Frank-Bolton)
have been described in SIGCSE papers: autogenerated
programming exercises, the reverse exam, and
the effectiveness of student-generated videos.
In the recent past:
- Educational technology (Jennifer Hill, PhD 2017)
As part of the
Research group, my students and I are interested in
effective ways to enable learning through smartphones.
PhD graduate Jennifer Hill developed, tested and
studied the effectiveness of literacy apps aimed at
the lowest levels of literacy, in partnership with
the Washington Literacy Cente, and the Academy of Hope.
- Robotics: human-in-the-loop
(Pablo Frank-Bolton, PhD, 2018).
that formerly bedeviled robots are now "almost solved", including
motion, using location awareness, and machine vision. But
many basic problems remain, such as reliably recognizing
everyday objects and how to use them. So, for the near future,
it appears that humans need to teach robots how to work
with everyday objects. For his PhD, Pablo Frank-Bolton
developed and demonstrated the effectiveness of a simple
interface by which a human can sketch out 3D objects
that enable robots to easily accomplish gripping,
- Thermal sensing (Andrei Claudiu Cosma, PhD 2018)
Current energy consumption
that goes into heating and cooling (HVAC) buildings represents
30-50% of the energy usage in residential and commercial buildings,
which itself is about 40% of total energy consumption.
At the same time, surveys of indoor quality show that people
are often dissatisfied with indoor temperature regulation.
The goal of this project is to use combination sensors (visual and
thermal) to accurately detect when an individual is feeling
discomfort (too cold, too hot) based on the thermal signature
of various parts of the skin and clothing.
For his PhD research, Andrei developed a fusion sensor
combining thermal and RGB-vision to reliably detect
human-subject comfort levels based on observing the face.
- Systems and systems security
(James Marshall, PhD 2020, Gedare Bloom, PhD 2012, Eugen Leontie, PhD 2012,
Richard Tang, PhD 2008, Olga Gelbart, PhD 2007).
The broad area of systems and systems
security tries to address the question: how do we build
computing infrastructure that is reliable,
performs well, and is less vulnerable to
attacks from viruses, hackers and the like?
Because a basic computer is complex, the design
of computing systems involves a number
of sub-specialties from software engineering at
one end, to detailed hardware design at the other.
Within this span, I have focused on languages,
compilers, and architecture by asking: what can
do with languages, compilers and hardware to
make a system more secure? In recent work, we
have developed ideas for how architecture
can support software security (through hardware
monitoring), encrypted execution (in which
programs run fully encrypted but can nonetheless be
attacked), and Trojan circuits (in which an
untrusted manufacturer can insert circuits into a chip).
I am also working with students on related problems
in language design, runtime systems, and
taming software complexity.
- Complex systems: Biocomplexity
(Carl Pearson, 2011. Co-advised with Prof. C.Zeng).
Consider the complex network of interactions in the average
living cell. What is known today is that some biomolecular
``circuits'' -- such as sensors for
particular external signals -- are relatively simple, whereas others show
astonishing complexity -- such as the collection of molecules
that govern the sequence of events in the birth-to-death
cycle of a cell. A central goal in biology today is to understand
such circuits or networks.
A Boolean network is a popular model for such circuits
and has resulted in a significant literature.
Our work focuses on questions that go to the heart
of why biological systems are complex. We focus
on the space of networks that result in a given behavior
(the biological phenomenon of interest), and
ask: what kinds of networks produce the behavior? what
is the minimal network needed? what components are involved
Besides the above, I am continually adding new areas or problems-to-solve,
often based on student interests.
For you, the prospective PhD student,
I have one message: get in touch to see if we can find
something interesting and valuable that's of common interest.
In an earlier life, I worked on problems in networks
(starting with my PhD), stochastic modeling and parallel computing.
I might come back to these some day, who knows.
It all depends on where the interesting ideas are.