Research Interests (non-technical overview)
Computational neuroscience; computational biology; computational science; scientific data visualization and management; simulation; scientific computing; neuroinformatics; neural networks; biotechnology and biomedical technology; computer vision; nonlinear dynamics; complex systems.
"So what is this mind of ours: what are these atoms with consciousness? Last week's potatoes! They now can remember what was going on in my mind a year ago --- a mind which has long ago been replaced."Richard P. Feynman
I've "always" been interested in the intersection of engineering and biology. In grad school, I had the opportunity to take neuroscience classes in the UCLA Medical School. I was taken with the idea of building simulations of living systems and how that could allow researchers to answer questions that could be posed in rigorously mathematical terms -- questions that couldn't easily be answered by experiments on living organisms, but could be verified that way.
My long-term research goal is to understand the computational principles underlying biological nervous system function for application to machine intelligence. Involved in this investigation include issues of computational neuroscience, artificial intelligence, neural networks, bioinformatics, nonlinear dynamics, robotics, scientific computing, scientific visualization, and collaborative computing.
In the nearer term, I wish to determine how neuron structural and behavioral complexity (small-scale dynamics) contributes to nervous system operation (large-scale behavior), such as in learning and sensorimotor systems.
My research group has been developing a parallel neural simulation framework, called BrainGrid, to enable researchers to develop large-scale and long-duration simulations of nervous system activity and development. "We build simulations to do more than what we can do in experiments on living things." In some cases, simulations allow scientists to run experiments that would otherwise not be possible or might not be technologically feasible to do any other way. Currently, we are in the process of developing an extension of BrainGrid -- the Workbench -- that will permit investigators to track simulation code, experiment configurations, and data produced. Once fully developed, this will allow them to be confident that their results are valid and easily identify when changing assumptions alter the results. We eat our own dog food: we use this framework to help understand how large numbers of neurons form functional networks during embryonic development.
This has involved modeling the growth and activity of biological neural networks grown in vitro. These dissociated cortical tissue preparations are viewed, on the one hand, as potential "neuro-electronic hybrid computers" and, on the other, as models for epilepsy. I hope that my work will explain why these networks show pathological bursting activity and how to stop this bursting and get them to behave like normal neural tissue.
My collaborators and I have also been investigating information transfer across the synapses that connect nerve cells. This synaptic coding process is the functional unit of nervous systems, and as such the computational unit of neural networks. Part of my recent work has focused on the interaction between stochastic events ("errors", e.g., synaptic transmission failure) and neuron dynamics and the implications of this for synaptic coding.
My methods have been based on the hypothesis that single neurons perform nontrivial operations, and that the coding of neural input to output can be understood if one views the neuron as a nonlinear dynamical system. This has involved very enjoyable collaborations with neuroscientists, mathematicians, and physicists.
As a founding faculty member here at UWB, and a near-founding-faculty member at HKUST, I have been involved in the development and teaching of a broad cross-section of the computer science core, as well as a range of upper-level undergraduate and graduate electives. Subjects I have taught include: introductory, medium-level, and advanced programming, programming tools, object-oriented design, data structures and algorithms, discrete mathematics, calculus, technical writing for software professionals, computer graphics, computer vision, visualization, multimedia, computer architecture, artificial intelligence, neural networks, complex systems, signal processing, and expert systems.