http://cacm.acm.org/blogs/blog-cacm/98818
Sept. 15, 2010
I was honored to have the opportunity to talk with the President’s Council of Advisors on Science and Technology (PCAST) on September 2, 2010, at the Keck Center in Washington, D.C. I opened with a 20-minute presentation, which was followed by a question and answer period. The topic of my session was networking and information technology, since PCAST is doing a review of the Networking and Information Technology Research and Development (NITRD) Program, but I chose to speak more broadly about the importance of computer science and its impact on our economy, society, and other science and engineering disciplines.
I told three stories—The Google Story, Model Checking, and Machine Learning—as a way to illustrate the importance of sustained federal funding of basic research in computer science, the rapid pace of innovation in our field, and the deep scientific contributions we offer besides our obvious technological ones. Using my three drivers of computing framework, Technology-Society-Science, I presented some trends for the future including: Big Data, Cell+Cloud, Cyber-Physical Systems, Socially Intelligent Computing, and emerging computing substrates under Technology; "A7: Anywhere Anytime Affordable Access to Anything by Anyone Authorized" under Society; and questions like "What is computable?" (see "Five Deep Questions in Computing") under Science.
I emphasized the importance that advances in computer science have in addressing societal grand challenges such as sustainability/energy, health care, transportation, education, and security, thereby also placing our role in the context of the Obama Administration’s priorities in science and engineering. I also made some specific recommendations for NITRD. Since most scientists think "high performance computing" when they think of computer science and since NITRD was created from the High-Performance Computing Act of 1991 (before browsers or search engines even existed!), I assumed PCAST understood our role in scientific computing and is cognizant of the trend toward exascale computing. Finally, I reminded PCAST that computer science is part of STEM and argued the importance of learning computer science concepts (aka "computational thinking") at the K12 level.
The Q&A session was lively, starting off with questions on K12 computer science education and the use of computing technology for learning. Education was clearly on PCAST’s mind since that afternoon they were going to discuss a report they plan to release on K12 STEM education. Other questions ranged from topics such as (paraphrasing) "From a physics perspective, is there a maximum volume of information we can have?" (a nice challenge question for the theoretical computer science community since I think it begs the question "What is information?") and "What is the seamy underbelly of the optimistic picture [I] painted?" (my answer: cybersecurity and privacy).
Besides trying to give PCAST a sense of computer science as a discipline, three of the most important messages I tried to convey to PCAST: 1) Advances in computer science help accelerate the pace of innovation and discovery in nearly all other fields; 2) Advances in computer science are needed to address society’s and our nation’s grand challenges; and 3) Computer science has a rich intellectual agenda.
My slides are available in .pptx and .pdf formats: (http://www.cs.cmu.edu/afs/cs/usr/wing/www/talks/Wing-Sept-2-2010.pptx) and (http://www.cs.cmu.edu/afs/cs/usr/wing/www/talks/Wing-Sept-2-2010.pdf). Please see the Notes pages of my PowerPoint slides for my transcript.
Valerie Barr "Barbara Liskov Keynote, Grace Hopper Conference"
http://cacm.acm.org/blogs/blog-cacm/99599
Oct. 2, 2010
Barbara Liskov, Institute Professor at the Massachusetts Institute of Technology (MIT), received the 2008 A.M. Turing Award for her innovations to designing and building computer systems and her achievements in programming language design that have made software more reliable and easier to maintain. Liskov opened her talk by commenting that receiving the Turing Award had given her an opportunity to reflect on her meandering career path and the work she has done.
Liskov grew up in San Francisco in the 1950s. She was interested in math and science, so she took lots of classes, but she didn’t talk about it much because it wasn’t cool for girls to like math and science. She then went to the University of California, Berkeley, and became a math major, despite being one of very few women in her classes. After her undergraduate work, Liskov didn’t feel ready for graduate school, so she moved to Boston and was offered a job as a programmer at the MITRE Corp. She learned FORTRAN, and discovered she really liked programming. After a year, she moved to Harvard and worked on their language translation project. This was during the period of great optimism about artificial intelligence (AI). Liskov maintained a large program written in machine language, which was great training for becoming a computer scientist. Of course, it also gave her a great understanding of bad code, especially since it was self-modifying code.
Liskov eventually decided to go back to school because she wasn’t learning fast enough. She went to Stanford, met John McCarthy, boldly asked him for support, and ended up working with him during her graduate studies. She was the only woman in her class, followed by Susan Graham who entered a year later. But it was a very supportive environment. Liskov eventually decided to switch out of AI after finishing her thesis because she had become more interested in computer systems.
Initially, Liskov could not find a job at an academic institution as hiring was done by the old boys’ network. She went back to work at MITRE, this time as a researcher. Going to MITRE rather than into academia at that point enabled her to switch technical areas without the added pressure of being a new faculty member who had to think about standing for tenure in a relatively short period of time.
After providing the background information, Liskov talked about her technical work that ultimately led to the Turing Award. Much of her work was motivated by an interest in program methodology and the questions of how programs should be designed and how programs should be structured. So, after receiving the Turing Award, she went back and reread the old literature, discovering anew that there is great material in old papers and that her students were unaware of it. So, she is now pointing people to these papers and encouraging people to read them.
For example, three key papers she cited are:
- Edsger Dijkstra, "Go To Considered Harmful," Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147148.
- Niklaus Wirth, "Program Development by Stepwise Refinement," Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221227.
- David Parnas, "Information Distribution Aspects of Design Methodology," IFIP Congress, 1971.
In 1972, Liskov published "A Design Methodology for Reliable Software Systems." In this paper she presented the idea of a global state in which each partition owns a part of the global state. Modules completely encapsulate their portion of the global state. This paper was award winning, and Liskov was invited to apply for a position at MIT. She began there in the fall of 1972, one of 10 women out of a faculty of 1,000.
Liskov then began to look at how the partition ideas could be applied to building programs—Could you make programming methodology into something that regular programmers would use? And Liskov began to think about partitions as abstract data types. She looked at material on extensible languages and early material on hierarchical programming structures and inheritance. Her work on abstract data types was codified during the summer of 1973 for a conference in 1974. She basically proposed abstract data types (ADTs) as clusters with encapsulation, polymorphism, static type checking, and exception handling.
In the fall of 1973, Liskov decide to proceed with language design based on ADT work. With three grad students, she designed the CLU language. Her idea was that a programming language would allow her to figure out whether ADTs really work in practice, would allow her to get a precise definition of ADTs, and determine whether ADTs would impact performance. So, CLU has all these mechanisms—cluster, polymorphism, exception handling, and iterators.
Finally, Liskov presented the research challenges of interest to her now:
- new abstraction mechanism
- massively parallel computers—much to be explored and learned in this area;
- Internet computation—a rich set of problems; and
- storage and computation, semantics, reliability, availability, and security.
Liskov also discussed the ingredients that have to be in place in order to get an "ah hah" moment. You have to be working on a problem, but also have to be able to have "off time" so that the brain can work on the back burner. Finally, she exhorted the audience not to get too tired because then you aren’t productive.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment