Skip to main content

Agenda

IBM Research - Almaden - Auditorium A
8:00am - 9:00am Breakfast
9:00am - 9:15am John J. Barton and Jeff Pierce Welcome
9:15am - 10:15am Brad Myers More Natural User Experiences for Design and Software Development
10:15am - 11:00am Break and Posters
11:00am - 11:45am Ethan Eismann Making Programming Playful
11:45am - 12:30pm Gina Venolia Five attempts at spatializing code
12:30am - 2:00pm Lunch
2:00pm - 2:45pm Caitlin Kelleher Looking Glass: Supporting Learning from Peer Programs
2:45pm - 3:30pm Kimberley Peter Making Jazz: Collaboration, Community and Design in Open Commercial Software Development
3:30pm - 4:15pm Break and Posters
4:15pm - 5:00pm Rastislav Bodik Synthesizing Programs from Programmer Insight
5:00pm - 6:00pm Evening Reception

Abstracts and Speaker Biographies


Brad myers photo

Brad A. Myers, Human Computer Interaction Institute School of Computer Science Carnegie Mellon University
More Natural User Experiences for Design and Software Development


Abstract

In the past few decades there has been considerable work on empowering end users to be able to design and develop their own programs, and as a result, users are indeed doing so. In fact, we estimate that over 12 million people in American workplaces would say that they "do programming" at work, and almost 50 million people use spreadsheets or databases (and therefore may potentially program), compared to only 3 million professional programmers. The "programming" systems used by these end users include spreadsheet systems, web authoring tools, business process authoring tools such as Visual Basic, graphical languages for demonstrating the desired behavior of educational simulations, and even professional languages such as Java. The motivation for end-user programming is to have the computer be useful for each person's specific individual needs. While the empirical study of programming has been an HCI topic since the beginning the field, it is only recently that there has been a focus on the End-User Programmer as a separate class from novices who are assumed to be working to become professional programmers. Another recent focus is on making end-user programming more reliable, using "End-User Software Engineering." My talk will give a brief summary of some current and past research in the area of End-User Programming and End-User Software Engineering. For more information, see http://www.cs.cmu.edu/~NatProg

About the Speaker

Brad A. Myers is a Professor in the Human-Computer Interaction Institute in the School of Computer Science at Carnegie Mellon University. He is an ACM Fellow, and a member of the CHI Academy, an honor bestowed on the principal leaders of the field. He is the principal investigator for the Natural Programming Project, and the Pebbles Handheld Computer Project and previously led the Amulet and Garnet projects. He is the author or editor of over 350 publications, including the books "Creating User Interfaces by Demonstration" and "Languages for Developing User Interfaces," and he has been on the editorial board of five journals. He has been a consultant on user interface design and implementation to over 60 companies, and regularly teaches courses on user interface design and software. Myers received a PhD in computer science at the University of Toronto where he developed the Peridot UIMS. He received the MS and BSc degrees from the Massachusetts Institute of Technology during which time he was a research intern at Xerox PARC. From 1980 until 1983, he worked at PERQ Systems Corporation. His research interests include user interface development systems, user interfaces, handheld computers, programming environments, programming language design, programming by example, visual programming, interaction techniques, and window management. He is a Senior Member of the IEEE, and also belongs to SIGCHI, ACM, the IEEE Computer Society, and Computer Professionals for Social Responsibility. Address: Human Computer Interaction Institute, Carnegie Mellon University, Pittsburgh, PA 15213-3890. bam@cs.cmu.edu, http://www.cs.cmu.edu/~bam

Ethan Eismann photo

Ethan Eismann, Adobe Systems
Making Programming Playful


Abstract

To the uninitiated, programming is a mystical art that is confounding and confusing. But it need not be. The constructs of programming can be represented in simple ways, such that they are easily comprehended by children, knowledge workers, and even designers. At Adobe, we are developing methodologies to help reduce the complexities of programming, and make programming a playful, constructive, and productive activity for a wide range of users. This talk will discuss the history and current landscape of playful programming, and will introduce the audience to best practices for playful programming used n Adobe's Flash Catalyst application (to be released in 2010).

About the Speaker

Ethan Eismann is an Experience Design Manager at Adobe Systems. His team focuses on A) making it easier for professional designers to create interactive experiences, and B) improving the workflows between designers and developers throughout all phases of software development. In the recent past, Ethan was the Sr. Experience Design Lead of Adobe Catalyst, a new professional design tool. With Catalyst, he crafted a product vision that makes it easy for designers to prototype rich interactive experiences that can be taken to code. Ethan has also worked closely with the Adobe AIR team to develop best design practices for the emerging Adobe AIR platform, and he has designed experiences for a wide range of mobile devices, RIAs, websites, and desktop applications for Adobe and other companies. Ethan attended the UC Berkeley School of Information Management and Systems where he collaborated with engineers and architects to design and build physical and screen-based interfaces. Before that, he studied philosophy at Pomona College.


Caitlin Kelleher photo

Caitlin Kelleher, Washington University in St. Louis
Looking Glass: Supporting Learning from Peer Programs


Abstract

Computer programming has become a fundamental tool that enables progress across a broad range of disciplines including basic science, communications, and medicine. Yet, Computer Science is failing to attract the number of students necessary to sustain progress both within the discipline and in those disciplines supported by computer science. Some recent research has focused on creating programming environments that introduce young students to computer programming in a motivating context. One of these systems, Storytelling Alice, motivates middle school children, particularly girls, to learn programming in order to build animated stories. In a formal study, we found that 51% of Storytelling Alice users versus 17% of Generic Alice users snuck extra time to keep programming. While a motivating context for learning computer programming is necessary to increase the number of young students who learn to program, it is not sufficient. For many pre-high school students, formal opportunities to learn computer science simply do not exist. We are currently working on a new system called Looking Glass which maintains storytelling as a motivating context and focuses on developing user interface support that enables middle school aged children to easily and effectively teach themselves using programs created by peers. Looking Glass will incorporate tools that enable users to identify sections of peer written programs that interest them and then follow automatically generated tutorials to learn how to create the selected sections of those programs in their own context. In this talk, I will describe our proposed framework for supporting users in learning from peer-created programs and present a prototype that enables novice users to identify and adapt code from peer programs.

About the Speaker

Caitlin Kelleher is currently an Assistant Professor of Computer Science at Washington University in St. Louis. She received her bachelor's degree in Computer Science from Virginia Tech and her Ph.D. in Computer Science from Carnegie Mellon University with Professor Randy Pausch. Her research focuses on programming environments that both motivate and support non-programmers in learning to program.


Kimberley Peter photo

Kimberley Peter, IBM Toronto Lab
Making Jazz: Collaboration, Community and Design in Open Commercial Software Development


Abstract

In the early 2000s, an increased focus started to take shape around the notion of collaborative development tools. This focus marked a move away from strictly supporting the solo developer at her work in an integrated development environment to one that supported globally distributed development teams. The vision of Jazz technology as a team collaboration platform came about in response to the need to support and connect distributed people and teams - their activities, their artifacts, and their varied time zones - in an orchestrated way

In realizing this vision, the Jazz team undertook an approach called open commercial software development - one that exposed the intentions and artifacts of the development cycle to anyone who wanted to watch and to participate. For Jazz, this open approach has meant that a community was fostered early and continues to grow through Jazz.net. For the community, the transparency has meant early insight and an opportunity to be part of a continuous feedback loop that influences design and development decisions.

The community has been one of the most influential aspects of designing for Jazz and its first offspring, Rational Team Concert. By self-hosting along with the development team, and doing so in the open on Jazz.net, the design team simultaneously participates in the community and observes it. That community includes developers on the Jazz and Rational Team Concert projects; developers on other projects that use our tools to build their own products; the many allied disciplines involved in software development, including our design team; and most notably, our early customers and business partners.

This talk will provide background on the motivation for the Jazz project, highlight the influence of self-hosting, community, and the input mechanisms t hat have helped shape the current design.

About the Speaker

Kimberley Peter is a user interface designer with the Media Design Studio at the IBM Toronto Lab. She works on Eclipse- and Web-based applications for the IBM Rational Software brand. Her most recent design activities have been for the Jazz Project, where for the past number of years she has enjoyed collaborating with her fellow design, usability, and development colleagues on the making of Jazz and the first Rational products to be based on it. She also leads the Rational Common Web UI effort, helping product teams that are Jazz-based and part of the Collaborative Application Lifecycle Management set of tools, iterate toward a common user experience. Kimberley contributes topics on user interface design to the Jazz Team Blog at https://jazz.net/blog/. She received a M.Sc. in Biomedical Communications from the University of Toronto in 1998.


Rastislav Bodik photo

Rastislav Bodik, UC Berkeley
Synthesizing Programs from Programmer Insight


Abstract

Massive compute power has long been available to us but we need more ideas on how to harness it in programming. While testing and verification dutifully number-crunch programs, they do not fix the bugs they find. Moving closer to programmers, recent tools have become true cognitive assistants: search engines find relevant code samples, verifiers explain bugs, and software miners discover properties absent in the documentation. Still, these tools do not directly address the problem of writing programs.

This talk will describe a growing family of programmer tools that assist in writing programs. Their premise is that programs can be decomposed into insight and mechanics, and that the later can be synthesized from the former. The first research problem is how to describe the insight without spelling out the details. I will describe the idea of sketching (programs with holes) and how we move beyond programming by demonstration by asking an oracle for a demonstration. The second problem is how to synthesize the program from the insight. Some of our tools combine mining of examples with program analysis, and some rely on recent advances in decision procedures, such as SAT, that combine search with algebraic reasoning. I will conclude with open problems motivated by some of our more ambitious ideas.

About the Speaker

Ras Bodik is Associate Professor of Computer Science at UC Berkeley. He is interested in programming systems, from the HCI aspect of programmer tool and language design, to program analysis, compilation, and computer architecture. He has worked on mining of program specifications, debugging. He is currently leading projects on synthesis for programmer masses and on a web browser for mobile devices.


Gina Venolia photo

Gina Venolia, Microsoft Research
Five attempts at spatializing code


Abstract

Our group has had a longstanding design intuition that a stable, spatial representation of code could benefit software developers. A code "map" could help a developer stay oriented in code, see relationships and other overlays, and provide a common artifact to anchor developers' conversations. We have done a series of tools and studies around the idea. I will describe these systems, highlighting our understanding of spatial code has evolved, and finish with a demo of Code Canvas, our latest prototype.

About the Speaker

Gina Venolia is a senior researcher with Microsoft Research in the Human Interactions of Programming group. Her research focuses on understanding how knowledge flows among people and building systems to make it flow more freely. She is currently studying collocated and geographically-distributed software development teams, building tools that help developers find and communicate about the knowledge behind the code, and developing systems that exploit spatial memory to support navigation, team awareness, and communication about code.

About the conference organizers

John J. Barton photo

John J. Barton is a Research Staff Member at IBM Research - Almaden working on web site debugging tools based on the popular open source Firebug project. He has worked on mobile device infrastructure, ubiquitous computing, as well Java and C++ development tools. In addition to over 60 scientific publications in computer science, physics, and chemistry, he is the co-author with Lee Nackman of the book "Scientific and Engineering C++".


Jeff Pierce photo

Jeff Pierce manages the mobile computing research group at IBM's Almaden Research Center. Prior to joining IBM Research in 2006, he served time as an Assistant Professor in the College of Computing at the Georgia Institute of Technology. There he led the Personal Information Environments research group and co-directed the Adaptive Personalized Information Environments lab with Charles Isbell. His current research concentrates on understanding and supporting interaction that spans multiple personal computing devices (including smartphones, but also desktops, laptops, and other devices). In addition to having his research appear in numerous conference proceedings, journals, and books, he also shared the honor of being Time Magazine's "Person of the Year" for 2006.

[an error occurred while processing this directive]