As members of a department at one of the premier research universities in the
country, Computer Science faculty, staff, and students are engaged in a wide
variety of research in the discipline.
A very brief overview of current Computer Science research groups, their
primary contacts, and links to the research group websites are provided below.
Center for Lifelong Learning and Design (L3D)
The Center for LifeLong Learning and Design (L3D) is an educational and
research unit of the Computer Science Department whose mission is the ongoing
development of theory and technology to support learning, design, and
communication. The Center's approach includes the development of conceptual
frameworks and computational artifacts, as well as the cultivation of an
understanding of their social and organizational contexts. To this end, the
Center conducts research and creates learning opportunities in collaboration
with other academic, research, and industrial partners at the University of
Colorado, across Colorado, nationally, and internationally, to develop
innovative educational models to prepare learners and workers for the
challenges of the twenty-first century.
The foci of the Center's activities are to
- foster learning as a lifelong process,
- support the integration of working and learning,
- augment human creativity and communication,
- support designers working on ill-defined problems in a variety of domains, and
- support the effective utilization of information.
Computational Language and Education Research (CLEAR)
Computational Language and Education Research is focused on research and
education in areas of human language technology. Established in 1998
as the Center for Spoken Language Research at the University of
Colorado, the research group includes faculty with appointments in the
Department of Computer Science:
Professor and Co-Director James Martin,
Professor and Co-Director Martha Palmer
and Professor Wayne Ward.
The group's mission is to
- To invent the next generation of conversational systems and natural language processing applications.
- To contribute to the basic scientific knowledge of speech and language processing.
- To train tomorrow's leaders in human language technology.
- To improve education and universal access to information.
- To create and share language resources.
Neural and Statistical Computation Research Group
The University of Colorado Boulder provides an outstanding interdisciplinary
environment for research and graduate training in Neural and Statistical
Computation in the fields of Artificial Intelligence, Cognitive Science, and
Engineering. The weekly research meetings, "Boulder Computational Learning
Group," encourage interaction between these diverse groups and leads to exciting
synergies among research areas.
The research spans the following topics:
- machine learning
- neural network theory
- reinforcement learning
- applications of machine learning techniques to engineering problems
- adaptive control of complex, nonlinear systems
- computational models of perception, attention, and cognition
- statistical approaches to natural language understanding
- speech recognition
- mechanisms of learning in the brain
- optoelectronic implementations of neural networks
Database Research Group
Roger (Buzz) King
The Database Research Group is currently focusing on "The Sanctuary Project."
Sanctuary (formerly Sybil/Diplomat) is a heterogeneous data source evolution
environment, currently under development at the University of Colorado at
Boulder. The goal of Sanctuary is to support large scale persistent applications
by providing a consistent, evolvable persistence layer. Sanctuary allows for the
lightweight interconnection and subsequent evolution of the set of heterogeneous
databases (e.g., legacy database systems, modern database systems, flat-files,
etc.) that typically make up such a persistence layer.
A large portion of the current development effort is focused on
interconnectivity across multiple DBMS environments, including Sybase, Oracle,
O2 and Microsoft Access. At present we are implementing Sanctuary in a CORBA
environment to ensure interoperation across any network, including the Internet.
Computational Science and Engineering Research Group
Robert (Bobby) Schnabel
Computational Science and Engineering (CS&E) is one of the major research
areas in the Department of Computer Science. The research focus is on the
development of scalable algorithms and software for very large applications and
for massively parallel computers. In particular, we work in the following areas:
- global optimization methods with applications in protein folding problems
- numerical methods for partial differential equations
- domain decomposition methods
- constrained and unconstrained optimization algorithms
- nonlinear dynamics and chaos
- high performance algorithms and software for numerical linear algebra
- high order methods for climate modeling
- information retrieval
- modeling and control of nonlinear systems
Protein Folding by Global Optimization
Robert (Bobby) Schnabel
Elizabeth (Betty) Eskow
We are conducting research on the so-called protein folding problem: predicting
the 3-dimensional structure of a protein when given only its sequence of amino
acids. Our approach utilizes predictions of local structures common to known
proteins, namely helices and cross-bonded strands, that are believed present in
the target protein. We generate likely structures from these predictions and
then rely upon small-scale global optimizations in selected regions and local
optimizations on a physics-based energy function to refine the overall shape.
We present an overview of this approach and show results on various proteins
from CASP4, a blind competition of structure prediction held in 2000. The
results show that our method is more effective relative to other groups on
targets for which less information from known proteins is available. In fact,
our method produced the best prediction for one of the most difficult targets
of the competition, a protein of 240 amino acids.
Center for Computational Pharmacology (CCP)
The mission of the Center for Computational Pharmacology is creating novel
algorithms and knowledge-based tools for the analysis and interpretation of
high-throughput molecular biology data. Our ultimate goal is augmenting the
process of biological discovery through the use of advanced computational
techniques, particularly machine learning and knowledge-based approaches
applied to high throughput molecular biology data. We create novel algorithms
for the analysis and interpretation of gene expression arrays, proteomics,
metabonomics, and combinatorial chemistry. We also create tools for building,
maintaining and applying knowledge-bases of molecular biology, and for
knowledge-driven inference from multiple biological data types. Finally,
we are developing and applying natural language processing techniques for
information extraction from and management of the biomedical literature.
Translator Construction (Eli)
Methods and techniques of compiler construction are applicable to a range of
problems that is much broader than the development of compilers for programming
languages: Processors for input languages, design languages, specification
languages, and intermediate languages in applications programs all demand
solutions to translation problems.
We have combined a variety of standard tools that implement powerful compiler
construction strategies into a domain-specific programming environment called
Eli. Using this environment, one can automatically generate complete language
implementations from application-oriented specifications. The implementations
might be interpretive, using the constructs of the source language to invoke
operations of an existing system, or might involve translation into an
arbitrary target language.
Eli provides modern compiler construction facilities to users with a wide range
of sophistication. It offers complete solutions for commonly-encountered
language implementation subtasks and contains libraries of reusable
specifications, making possible the production of high-quality implementations
from simple problem descriptions.
The system has been in the field since 1989, and has been used in a number of
projects worldwide. It generates programs whose performance is comparable to
that of a good hand-coded implementation. Development time for a processor
using Eli is generally about one third of that for comparable hand code, and
maintenance is significantly easier because specifications rather than
implementations are being maintained.
Intelligence in Action Lab
The goal of the Intelligence in Action Lab is to build systems that sense and
act intelligently in natural real-world scenarios. The emphasis is on the power
and limitations of Computer Vision techniques for navigating and understanding
Current areas of interest are
- image-based virtual environments
- vision for robot navigation
- human-to-robot skill transfer
- learning applied to ground robots
- signal analysis and prediction for medical monitoring
Robotics and Smart Materials
We are interested in making robots truly autonomous by distributing sensing,
computation, and actuation in the environment. We are investigating distributed
systems from city scale (e.g. routing of autonomous cars for public
transportation), house-hold size (e.g. swarms of robots tending to plants in an
autonomous greenhouse) to "smart materials" consisting of many cooperating
elements that can sense, compute, and actuate (e.g. the pneumatic belt).
Members of the ConnectivITy Lab are interested in how
information and communication technology connects people with each other and
with the information they seek. We research and design socio-technical systems
in/for a variety of contexts, including safety- and time-critical situations.
Our work is highly cross-disciplinary, and we have skills in technology design,
social theory, and empirical research.
A Tool-Supported Programming Languages Curriculum
Practicing engineers must be able to study a problem, discover what they need
to know in order to solve it, learn any new material, and then apply their
knowledge to create some artifact within a set of economic constraints.
In order to prepare a student to participate in the engineering enterprise,
therefore, it is important for the University to teach them the set of
scientific knowledge underpinning their particular discipline. It must also
teach them to recognize the holes in their knowledge and fill those holes, to
work with others in both knowledge acquisition and artifact creation, and to
plan their activities based on an accessible history of previous projects.
Translating these general educational objectives into specific classroom
environments is a serious challenge. First, the limitations of available design
tools has tended to constrain instructors to the use of relatively well-defined,
simple problems that bear little resemblance to the complex processes students
will encounter as practicing engineers. Second, the engineering curriculum
typically does not include courses specifically intended to develop in students
the abilities to work effectively in groups or teams. Yet working with others
is a crucial skill for effective design and development and for continuous or
life-long learning in the technical professions.
"A Tool-Supported Programming Languages Curriculum" is aimed at meeting these
challenges. The strategy is to "scaffold" content-related problem-solving skills
and process-related group interaction skills by integrating a suite of tools
developed by the research community into a three-course sequence required of
all computer science majors at the University of Colorado. The courses would be
redesigned so that they build upon each other in three specific areas: content,
cognitive skills, and team or process skills.
Software Engineering Research Laboratory (SERL)
Software has become the driving force behind most new technologies. But the
engineering of software is becoming increasingly complicated. A software
engineer must balance a variety of competing factors, including functionality,
quality, performance, safety, usability, time to market, and cost. Moreover,
the size of software systems that are being built is rapidly growing.
The Software Engineering Research Laboratory (SERL) in the Department of
Computer Science at the University of Colorado Boulder is pursuing the
discovery of principles and the development of technologies to support the
engineering of large, complex software systems. The challenging targets for
this work are organizations and software systems operating in the wide-area,
heterogeneous, distributed, and decentralized context of wide-area networks
such as the Internet.
University of Colorado Policy Lab (UCPL)
Policy Lab performs targeted technical and economic experiments and evaluations
intended to illuminate critical telecommunications and information technology
policy issues. Experiments are designed and results analyzed to be relevant and
easily understood by all stakeholders, regardless of background (technical,
legal, business, economic, etc.). Success is measured by the Lab's ability to
clarify key issues and accelerate valuable innovations. The Lab has a
philosophy of non-advocacy: avoiding taking positions on behalf of the
political interests of any particular stakeholder.
Colorado Computer Systems Research (CCSR)
Qin (Christine) Lv
Computer systems research at the University of Colorado involves the
interdisciplinary collaboration of the Department of Computer Science and
Department of Electrical, Computer and Energy Engineering. The objectives of the
combined program efforts are to provide critical research, expertise, and
technology in the evolving areas of computing and communication. Projects in
computer system research include computer architecture, high-performance
computing, low-power embedded system design, VLSI microchips, optimizing
compiler technology and analysis, mobile/wireless communications, computer
networks, operating systems, and programming languages.
This includes research in the following areas:
- Computer Architecture
- Power Aware Computing
- High-Performance Computing
- System Design
- Compiler Technology and Programming Language Analysis
- Computer Networks
MultimodAl NeTworks of In-situ Sensors (MANTIS)
The MANTIS group focuses on research in the area of wireless sensor networking,
which brings together aspects of operating systems, networking, embedded
systems design, security, and user interfaces. MOS, the MANTIS Operating
System, is a multi-threaded OS designed for resource-constrained sensor
platforms. The advantage of multithreading is that it eases application
programming, since the developer does not have to worry about when to release
the CPU. Multithreading together with a simple C API enables MOS to provide
simplified programming of wireless sensor nodes.
Areas of research include
- embedded sensor operating systems
- communication protocols for wireless sensor networks
- secure sensor networks
- low power sensor networking
TerraSpark Geosciences (formerly the BP Center for Visualization) was
established in October 2000 as a new research Center at the University of
Colorado as part of both the College of Engineering and Applied Sciences and
the College of Arts and Sciences. Sponsored by the Departments of Aerospace
Engineering Sciences, Computer Science and Geological Sciences, the TerraSpark
Geosciences is devoted to the research and development of advanced
visualization technology across a wide range of disciplines. TerraSpark
Geosciences is developing an extensive program of research and development
initially focusing on the energy industry, aerospace and medical visualization.
Its mission includes
- Visualization research and development applied to a wide range of disciplines
- Visualization in education and outreach
- Application of visualization technology as a technical service
- Commercialization of the technology
Wellness Innovation and Interaction Lab
The Wellness Innovation and Interaction (WII) Lab designs, implements, and
evaluates mobile applications that can improve a population's health and
wellness. Our research motivations are two fold -- we want to provide people
with easier solutions to improve their health and wellness while assisting
researchers in other disciplines study new, technical interventions.
WII researchers study how the integration of pervasive technologies
in health and wellness environments affect interventions. They
collaborate with researchers in medical and social science disciplines to
assess the needs of a specific population and show how technology can possibly
Scalable Game Design
Bringing together researchers from computer science, education and
communication, Scalable Game Design is an interdisciplinary initiative with the
goal to bring computer science education into public schools. Scalable Game
Design is a combination of computational thinking tools, curriculum and teacher
training. Our current project works with schools and community/tribal colleges
in Boulder, Denver, Pueblo, Ignacio and Oglala (SD). Scalable Game Design
motivation: what are the pragmatic issues of employing game design for computer science education in different communities?
equity: how to make game design interesting and relevant to women and underrepresented communities such as Native Americans?
transfer of game design to STEM: "now that you can build Space Invaders can you build a computational science model of mud slide"?
scaling: what does it take to establish a game design based education pipeline from middle school to graduate school?
computational thinking: What are requirements for computational thinking tools; what are computational thinking inventories?