![]() |
Vibha Sazawal Clare Boothe Luce Assistant Professor HCIL, Department of Computer Science and UMIACS 4113 A.V. Williams University of Maryland, College Park Research area: HCI and software design
|
| Who am I? | Students | Research | Teaching | Diversity | Personal Info |
I am a computer scientist. As CMU professor Peter Lee described, computer science is a field full of grand challenges, primarily focused upon expanding intelligence and expression. To learn more about ``the mystery of our intelligence,'' check out The Computational Universe. To learn more about expanding our ability to express ourselves, check out Media Computation.
And how exactly do I fit into all of this? I expand intelligence and expression through better software design and tools. Software design is the blueprint, the magic structures that we use to create and re-create the systems that do our bidding. And since people are hard at work today designing and evolving these magic structures, I study ways to help them with that work. I am also interested in helping other information workers with their work using software tools.
Finally, I want to increase the ranks of programmers! Programming is a great way to get what you want -- whether it is cool stuff out of a bunch of different webpages, getting some number crunching done so you can make good decisions, or making YOUR ideas come to life. I think anyone and everyone can and will program computers someday. So join us!!
I have the honor of working with some of Maryland's best students! Get to know this creative, hard-working, intelligent crew.
I share a research lab with Francois Guimbretiere in 3452 A.V. Williams.
I am a member of the Human-Computer Interaction Laboratory (HCIL), which is
part of UMIACS.
Expert recommendation
Papers:
Research
When a programmer faces unfamiliar code, who should they contact
for help? I am interested in integrating work in social networks
and mining software repositories to answer this question.
Information-hiding URLs
Many common elements of URLs do not adhere to the principle of
information hiding. For example, filename extensions and parameter names
can reveal volatile implementation details. As a result, when website
implementations change, links between pages break. Bookmarks and code that
generates URLs often break as well. An information-hiding URL uses an
alias to identify a web resource and appends parameter values into the
hierarchical structure of the URL. If a programmer follows certain
conventions, such as providing default values for parameters, a link
defined using an information-hiding URL will not break even if certain
details about the page have changed.
Design Snippets:
My last project. Design snippets are partial design representations that are extracted from source code. These design representations are intended to help software engineers make design decisions during software evolution and maintenance tasks. Design snippets are co-displayed in the context of units of code (e.g., files); by eliding design details unrelated to the unit of interest, design snippets can be effectively used by software engineers as they view and edit units of code.Design snippets are intended to support specific software design principles. My prototype, the Design Snippets Tool, focuses on design principles related to one important software property: ease of change.
Papers:
- Connecting Software Design Principles to Source Code for Improved Ease of Change by Sazawal. PhD Dissertation, December 2005. This is the most accurate source of information on design snippets.
ArchJava, a project led by Jonathan Aldrich, also connects code to software design decisions. ArchJava is an extension of Java that offers additional expressive power for describing and checking architectural constraints. From an ease-of-change perspective, ArchJava provides connectors, an exciting new way to think about and describe interfaces between modules.Papers:
- Language Support for Connector Abstractions, by Aldrich, Sazawal, Chambers, and Notkin. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP '03), July 2003.
- Architecture-Centric Programming for Adaptive Systems, by Aldrich, Sazawal, Chambers, and Notkin. In Proceedings of the Workshop on Self-Healing Systems, 2003.
- Architecture-Centric Programming for Context-Aware Configuration, by Sazawal and Aldrich. In Proceedings of the Workshop on Engineering Context-Aware Object-Oriented Systems and Environments, 2003.
I am also strongly interested in computer science education and K-12 math and science education. One of my particular concerns is the lack of women in computer science. In 2004, I created and taught the course ENGR199B, "Women, Computing, and Collaborating." I have also worked in K-12 schools to spark interest in mathematics and computer science, especially among underrepresented groups.
Links:
I was born and raised in Pennsylvania. I don't have much free time, but I like to spend it hassling my husband Vijay Ravindran, my family, and my friends. My husband and I like to travel when we can.
If you want to know what I'm really thinking, the place to visit is my blog, Parole Femmine.