Charles Simonyi Professor of Computer Science, emeritus, Stanford University. Originally appointed to the Stanford faculty as Associate Professor in 1990, promoted to full professor in 1995, and named the Charles Simonyi Professor in 1997. Retired in September 2015 and recalled to active duty for 2015-16 and 2016-17.
PRINCIPAL AREAS OF EXPERTISE
S.M., Applied Mathematics, Harvard University, June 1974.
A.B., cum laude, Applied Mathematics, Harvard University, June 1973.
Faculty Director for Interdisciplinary Science Education, Office of the Vice Provost for Undergraduate Education, 2003-06.
Chair of the Faculty Senate, 2005-06.
Senior Associate Dean for Student Affairs, School of Engineering, Stanford University, 2001-03. Responsible for the academic programs in the eight departments that make up the School of Engineering.
Associate Chair and Director of Undergraduate Studies, Department of Computer Science, 1990-2002.
BOOKS AND BOOK CHAPTERS
“Computers and society,” in Encyclopedia of Computer Science (fourth edition), Anthony Ralston, Edwin Reilly, and David Hemmendinger (editors), Grove’s Dictionaries, 2000.
“Computers and society,” in Encyclopedia of Computer Science (third edition), Anthony Ralston and Edwin Reilly (editors), Van Nostrand Reinhold, 1992.
“Computers and the Strategic Defense Initiative” with Steve Berlin, included as Chapter 8 of Computers in Battle: Will They Work?, David Bellin and Gary Chapman (editors), Harcourt Brace Jovanovich, 1987.
Thinking Recursively, John Wiley and Sons, 1986. A sophomore-level text that gives students a strategic overview of how to approach recursive programming problems. It has been translated into German, Italian, and Japanese.
ARTICLES AND REPORTS
“Factors working against women in computer science,” Tough Questions (a publication of Student Pugwash USA), fall 1989.
“WorkCrews: An abstraction for controlling parallelism” with Mark Vandevoorde, Research Report #42, Digital Equipment Corporation Systems Research Center, Palo Alto, California, April 1989. Also published in the International Journal on Parallel Programming, Volume 17, Number 4, 1988.
“Implementing exceptions in C,” Research Report #40, Digital Equipment Corporation Systems Research Center, Palo Alto, California, March 1989.
“Computing implications: Report from DIAC-88” with Douglas Schuler, Computers and Society, ACM SIGCAS, Volume 19, Number 1, March 1989. An earlier version of this paper appeared in Abacus magazine, summer 1988.
dp: Experience with a distributed, parallel implementation of make” with John Ellis, Proceedings from the Second Workshop on Large-Grained Parallelism, Software Engineering Institute, Carnegie-Mellon University, Report CMU/SEI-87-SR-5, November 1987.
“Programming and the Pentagon,” Abacus magazine, summer 1987.
“The Eastport Report: Unexpected support for SDI critics,” The CPSR Newsletter, Volume 4, Number 3, Summer 1986.
Elements of Basic Programming: An Introduction to Algorithmic Computation, Department of Computer Science, Wellesley College, Wellesley, MA. This draft textbook was used from 1981-87 for the introductory computer science course at Wellesley.
“Task management in Ada: A critical evaluation for real-time multiprocessors” with Arthur Evans Jr., C. Robert Morgan, and Edmund Clarke, Software—Practice and Experience, Volume 11, October 1981.
Software Techniques for Practical Multiprocessors (Ph.D. thesis), Technical Report TR-08-81, Center for Research in Computing Technology, Harvard University, 1981.
“The impact of multiprocessor technology on high-level language design” with Arthur Evans Jr., C. Robert Morgan, and Edmund Clarke, Report No. 4188, Bolt Beranek and Newman Inc., September 1979.
“Pluribus: An operational fault-tolerant multiprocessor” with David Katsuki, Eric Elsam, William Mann, John Robinson, F. Stanley Skowronski, and Eric Wolf, Proceedings of the IEEE, Volume 66, Number 10, October 1978. Reprinted in Advances in Computer Communications and Networking, Wesley Chu (editor), Artech House, Dedham, Massachusetts, 1979. Also reprinted in The Theory and Practice of Reliable System Design by Daniel P. Siewiorek and Robert W. Swarz, Digital Press, Billerica, Massachusetts, 1982.
“Software fault-tolerance in the Pluribus” with John Robinson, Proceedings of the 1978 National Computer Conference, June 1978.
INVITED TALKS AND PRESENTATIONS
“The Bermuda Project: Developing a new computing curriculum for Bermuda’s public schools,” plenary talk at a workshop for pre-college computer science teachers. University of Leeds, Leeds, England, July 2004.
“Expanding the audience for computer science,” keynote address at the Midwest Instruction and Computing Symposium, Morris, Minnesota, April 2004.
“SIGCSE special projects showcase,” panel presentation at the Thirty-fifth SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, March 2004.
“Resources to support the use of Java in introductory computer science education,” panel chair at the Thirty-fifth SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, March 2004.
“Great principles of computer science: Strategies for integrating fundamental concepts into the classroom,” panel presentation at the Thirty-fifth SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, March 2004.
“Computing Curriculum 2001: Content, development, and application,” Open University of the Netherlands, Utrecht, Holland, June 2003.
“Computing accreditation in the United States,” Open University of the Netherlands, Utrecht, Holland, June 2003.
“Strategies and tactics for the first course in computer science,” University of Kent, Canterbury, England, March 2003.
“What makes software difficult?”, plenary presentation at the 23rd ISODARCO Summer Course on “Cyberwar, Netwar, and the Revolution in Military Affairs: Real Threats and Virtual Myths,” Trento, Italy, August 2002.
“Recruitment and retention: Preliminary results of the CRA study,” panel presentation at the Computing Research Association Conference, Snowbird, Utah, July 2002.
“Undergraduate curriculum and accreditation advances: Computing Curricula 2001,” presentation at the Computing Research Association Conference, Snowbird, Utah, July 2002.
“Computing Curricula 2001 and the challenge of defining an international curriculum,” keynote address at the IFIP WG3.2 Working Conference on Informatics Curricula, Teaching Methods, and Best Practice, Florianopolis, Brazil, July 2002.
“Computing Curricula 2001: Implementing the recommendations,” panel chair at the Thirty-third SIGCSE Technical Symposium on Computer Science Education, Cincinnati, Ohio, February 2002.
“Computing Curricula 2001: An unveiling,” panelist at the 2001 Frontiers in Education Conference, Reno, Nevada, October 2001.
“Panel on Computing Curricula 2001: Computer engineering,” panelist at the 2001 Frontiers in Education Conference, Reno, Nevada, October 2001.
“Technology against terrorism,” panelist at a campus-wide symposium on the events of 9/11, Stanford University, October 2001.
“Computing Curricula 2001: En route to the Steelman draft,” presentation at the ITiCSE 2001 Conference, Canterbury, England, June 2001.
“Computing Curricula 2001 and its relation to ADMI institutions,” presentation at the 2001 Conference of the Association of Computer Information Science and Engineering Departments at Minority Institutions (ADMI), Hampton, Virginia, May 2001.
“Computing Curricula 2001,” panel chair at the Thirty-second SIGCSE Technical Symposium on Computer Science Education, Charlotte, North Carolina, February 2001.
“Computing Curriculum 2001: Getting Down to Specifics,” Consortium for Computing in Small Colleges (Northwest), Beaverton, Oregon, October 2000.
“Computing Curricula 2001: Status report,” presentation at the Computing Research Association Conference, Snowbird, Utah, July 2000.
“Computing Curricula 2001: Preliminary overview,” plenary presentation at the annual Conference of Professors and Heads of Departments of Computing, Brighton, England, April 2000.
“Computing Curricula 2001: Evaluating the Strawman Report,” panel presentation at the Thirty-first SIGCSE Technical Symposium on Computer Science Education, Austin, Texas, March 2000.
“The Internet Revolution: Promises and Pitfalls,” Eugene M. Lang Annual Lecture, Swarthmore College, March 2000. Also presented at Princeton University in July 2000.
“Curriculum 2001: Interim report from the ACM/IEEE-CS task force,” panel chair at the Thirtieth SIGCSE Technical Symposium on Computer Science Education, New Orleans, Louisiana, March 1999.
“Integrating professionalism into undergraduate degree courses in computing,” panel participant at the third SIGCSE/SIGCUE Joint Conference on Integrating Technology in Computer Science Education, Dublin, Ireland, August 1998.
“Cyberlibertarianism vs. technorealism: Visions of the new millennium,” Distinguished Speaker Series, Eleanor Roosevelt College, University of California at San Diego, April 1998.
“The Microsoft monopoly: Fact or fabrication,” panel participant, Stanford University, April 1998.
“The retention of women in computer science,” panel participant at the Twenty-ninth SIGCSE Technical Symposium on Computer Science Education, Atlanta, Georgia, February 1998.
“Large introductory courses in research computer science departments,” panel participant at the Twenty-ninth SIGCSE Technical Symposium on Computer Science Education, Atlanta, Georgia, February 1998.
“Expanding the audience for science and engineering,” conference panel sponsored by the Feminist Studies program and the Center for Teaching and Learning, Stanford, June 1997.
“Strategies for increasing student involvement in computer science courses,” Reed College, Portland, Oregon, March 1997. Also presented at the Dartmouth College Computer Science Department, Hanover, New Hampshire, May 1997.
“Strategic directions in computer science education,” panel participant at the Twenty-eighth SIGCSE Technical Symposium on Computer Science Education, San Jose, California, February 1997.
“Managing large introductory courses,” panel participant at the Twenty-eighth SIGCSE Technical Symposium on Computer Science Education, San Jose, California, February 1997.
“Designing a wide-audience introduction to computer science,” opening address at the Symposium on New Ideas in Teaching Computer Science, University of Toronto, December 1995.
“The culture of science,” panel discussion in the President’s Lecture Series on “Culture and Cultures,” Stanford University, May 1995.
“Women in computer science: barriers to academic success,” Jing Lyman Lecture Series, Institute for Research on Women and Gender, February 1995. Also presented at the U.S. Geological Survey in Menlo Park, March 1995.
“The introductory CS curriculum at Stanford: Strategies and tactics,” New England Consortium for Undergraduate Science Education (NECUSE) Conference on Computer Science Education, Harvard University, January 1995.
“Global Information Infrastructure: Connecting the future,” panel discussion at the Student Pugwash National Chapter Conference, Stanford University, January 1994.
“Using C in CS1,” Computer Science Colloquium Series, University of Nevada, April 1993.
“The National Information Infrastructure,” interview aired on PBS’s McNeill-Lehrer News Hour, April 1993.
“Redesign of the introductory computer science course at Stanford,” NECUSE Conference on Computer Science Education, Harvard University, January 1993.
“The ethical responsibility of the scientist,” National Public Radio’s Talk of the Nation program, August 1992.
“Software reliability,” panel presentation, American Society of Mechanical Engineers, Computers in Engineering Symposium, San Jose, California, August 1991.
“Technology and the poor,” keynote panel presentation, Conference on Computers and Social Change, sponsored by the Boston Computer Society, Boston, Massachusetts, April 1991.
“Undergraduate computer science education at Stanford,” NECUSE Conference on Computer Science Education, MIT, January 1991.
“Priorities for science and technology research: Addressing the problems of the 21st century,” University of Southwestern Louisiana, February 1991.
“The ethical responsibility of the computer scientist,” keynote address, Drew University Graduate School Colloquium on “Scholarship and moral choice in contemporary society,” April 1990. Also presented in August 1990 at the University of Minnesota, the University of Wisconsin, and Carnegie Mellon University. Presented as part of a university colloquium series at Northeastern Illinois University, January 1991.
“Concurrent programming in the United States: A research overview,” Institute of Machine Tools, Moscow, USSR, September 1989.
“Programming environments at DEC/SRC: Vulcan and Vesta,” International Federation of Information Processing Working Group 2.4 (Systems Implementation Languages), Warsaw, Poland, September 1989.
Senior participant for session on “Computers and human interaction,” Student Pugwash Conference, Boulder, Colorado, June 1989.
“Computers and the workplace,” Computer Professionals for Social Responsibility (CPSR), Berkeley chapter, March 1989; Stanford University, May 1989; George Washington University, August 1990.
“Professional responsibility and computer science,” Society of Women Engineers Conference, Stanford, January 1988; Democratic Socialists of America (DSA) Summer Youth Conference, Kalamazoo, Michigan, August 1988; Stanford University, March 1989.
“Trip report: Inside the Blue Cube,” CPSR/Palo Alto, October 1988.
dp: Experience with a distributed, parallel implementation of make,” BASS-11 (Bay Area System Seminar), Cupertino, December 1987.
“WorkCrews: An abstraction for controlling parallelism,” Reed College, October 1987; Bolt Beranek and Newman, April 1988; DEC/Littleton, April 1989; University of Wisconsin, August 1990.
“The Star Wars computer system: Is the software feasible?,” Reed College, October 1987; Institute for Advanced Study, October 1987; Wellesley College, October 1987; San Francisco State University, December 1987; University of California at Berkeley, February 1988; California State University at Fresno, February 1988; Bolt Beranek and Newman, April 1988; Stanford University, April 1989.
“Defense procurement and the programming industry,” CPSR/Boston, May 1985; CPSR/Palo Alto, October 1985; Stanford University, November 1987; CPSR/Denver, July 1988.
Computers, Ethics, and Public Policy (CSCI 315). Introduction to the social and ethical implications of computing. (One offering in 2018-19)
Algorithms and Data Structures (CSCI 382). Introduction to the design and mathematical analysis of algorithms, with particular attention to the algorithms that underlie abstract data structures. (One offering in 2018-19)
Computer Networks (CSCI 396). A broad-ranging exploration of topics in computer networks that includes history, communications theory, network architectures, internet protocols, client-server models, strategies for improving network security, and the social impact of modern networking. (One offering in 2019-20)
Stanford University, courses in core computer science
Programming Abstractions (CS 106B, ENGR 70B). Stanford’s standard second-quarter computer science class covering data structures and algorithms. (16 offerings, most recently in 2014-15)
Programming Methodology and Abstractions (CS 106X, ENGR 70X). Accelerated introduction covering both CS 106A and CS 106B. (1992-93)
Introduction to Computing (CS 105). General introduction to computer science for non-majors. (1990-91)
Sophomore College: The Intellectual Excitement of Computer Science (CS 10SC). Three-week intensive seminar offered prior to the start of each year to 12 rising sophomores with an intellectual passion for computer science. (16 offerings, including two with President John Hennessy and one with Mehran Sahami, most recently in 2015-16)
Freshman Seminar: Great Ideas in Computer Science (CS 54N). Seminar that covers much the same material as the Sophomore College class, spread out over an entire quarter. (Seven offerings from 2000-01 to 2016-17)
Software Engineering in C (CS 193U). Practicum on software development using C and Unix. (1991-92)
Senior Project (CS 194). Group-project class that fulfills the capstone requirement for majors. (Four offerings, most recently in 1997-98)
Undergraduate Seminar: Overview of Faculty Research (CS 200). Seminar for undergraduates interested in pursuing graduate research in computer science. (Five offerings, most recently in 1999-2000)
Stanford University, courses with a significant computer science component
Introduction to Cognitive Science (SYMSYS 100, LINGUIST 144, PHIL 190, PSYCH 132). Required immigration course for undergraduates majoring in Stanford’s Symbolic Systems program, which spans the departments of computer science, philosophy, psychology, and linguistics. (2008-09 with Tom Wasow and Jay McClellan)
Networks: Ecological, Revolutionary, Digital (THINK 29) (2012-13 with Deborah Gordon and Dan Edelstein)
MLA Seminar: Great Ideas in Computer Science (MLA 321). Seminar for eight mostly nontechnical students in Stanford’s Masters of Liberal Arts program. (2015-16)
British Technologies of World War II (OSPOXFRD 18). Seminar on the history of British wartime advances in technology, including cryptography, radar, and antibiotics. (2003-04 at the Stanford campus in Oxford)
Stanford University, courses in computer science pedagogy
Seminar in Computer Science Education (CS 298) Advanced seminar on computer science curriculum and pedagogy for undergraduates and graduate students. (14 offerings, most recently in 2016-17)
Graduate Seminar on Teaching and Communication (CS 301). Seminar designed to help develop pedagogical skills of teaching assistants. (2006-07)
Intellectual History of Computer Science (CS 208E). Seminar for students in our pilot Master’s program in Computer Science Education, designed to help increase the supply of university and college teachers. (2016-17)
Stanford University, interdisciplinary courses
Freshman Seminar: The Two Cultures—Bridging the Gap (CS 99E, ENGLISH 99E). Builds on C. P. Snow’s “Two Cultures” essay by looking at a set of readings from the perspective of both a literary and a scientific intellectual. (Two offerings with Ramón Saldívar)
Technological Visions of Utopia (CS 68N, IHUM 58, THINK 9) (11 offerings, six with Rob Robinson and two with Ursula Heise, most recently in 2014-15)
Le meilleur des mondes possibles: French utopias in theory and practice (OSPPARIS 71). Four-student seminar on French utopian writing. (2012-13 at Stanford’s campus in Paris)
Activism in the 1960s: England and the United States (OSPOXFRD 25). A comparative analysis of the political history of the 1960s in the two countries. (2002-03 at the Stanford campus in Oxford)
Reading and Writing Poetry about Science (STS 103Q, ENGLISH 103Q). Seminar/practicum on the analysis and composition of poetry informed by science. (Three offerings with Lauren Rusk, most recently in 2015-16 )
Data Structures (CS 230). Traditional second-semester course covering data structures in Pascal, along with algorithmic efficiency and machine representation. (Three offerings, most recently in 1982-83)
Assembly Language Programming (CS 240). Introduction to programming for the DEC PDP-10. (Two offerings, most recently in 1982-83)
Compilers (CS 301). Traditional course on compilers and programming languages. (1982-83)
Automatic Computing (NatSci 110). Summer school version of Harvard’s pioneering introductory course. (Two offerings, most recently in 1975)
INDUSTRIAL RESEARCH EXPERIENCE
Consultant, Digital Equipment Corporation, summer 1982. Implemented a significantly enhanced version of BASIC-PLUS-2 for the DECsystem-20 based on experimental language modifications undertaken at Wellesley.
Staff scientist, Bolt Beranek and Newman Inc., Cambridge, Massachusetts, 1976-79. My work at BBN was concentrated in multiprocessor system research, primarily in connection with the BBN Pluribus, and with various Unix-based systems.
AWARDS, FELLOWSHIPS, AND DISTINCTIONS
Fellow of the American Association for the Advancement of Science (AAAS).
Award for Lifetime Service to the Computer Science Education Community, ACM Special Interest Group in Computer Science Education (SIGCSE), 2018. This award honors an individual who has a long history of volunteer service to the computer science education community.
Karl V. Karlstrom Outstanding Educator Award, ACM, 2012. The Karlstrom Award recognizes educators who have “advanced new teaching methodologies; effected new curriculum development in Computer Science and Engineering; or contributed to ACM’s educational mission.”
Taylor Booth Education Award, Institute for Electrical and Electronic Engineers Computer Society (IEEE-CS), 2012. The Taylor Booth award is given annually to recognize an “outstanding record in computer science and engineering education.”
Laurance and Naomi Carpenter Hoagland Prize, Stanford University, 2004. This award focuses specifically on the teaching of undergraduates and is awarded annually to a “member of Stanford’s faculty who excels in this activity as an opportunity to pursue new directions in teaching that will benefit Stanford undergraduates on a continuing basis.”
Award for Outstanding Contribution to Computer Science Education, ACM SIGCSE, 2003. The description for this award, given annually since 1981, reads as follows: “This award goes to an individual or group in recognition of a significant contribution to computer science education. The contribution may take many forms, such as: curriculum design, innovating teaching methods, textbook authorship, development of new teaching tools, or any of a number of other significant contributions to computer science education. The contribution should have had long lasting impact on, and made a significant difference in, computing education.”
John A. and Cynthia Fry Gunn University Fellow in Undergraduate Education, Stanford University, 2002. These fellowships were established “to reward faculty who make truly outstanding contributions to Stanford’s undergraduate experience.” My fellowship was one of the inaugural eight fellowships awarded under this program.
Lloyd W. Dinkelspiel Award, Stanford University, 1998. This award recognizes “distinctive and exceptional contributions to undergraduate education at Stanford University.” Two awards are made each year at commencement “to the faculty or staff members adjudged to have made the most distinctive contribution to the development and enrichment of undergraduate education in the broadest sense.”
Founders’ Award, Computer Professionals for Social Responsibility (CPSR), June 1996. The text of the citation indicates that the award is made “in appreciation of his enduring commitment to providing the public and policymakers with realistic assessments of the power, promise, and problems of information technology.”
Social Service in Computing Award, ACM Special Interest Group on Computers and Society (SIGCAS), 1996. The text of the award reads: “The ACM Special Interest Group on Computers and Society recognizes the outstanding work that Professor Eric Roberts has done over the past two decades to raise the awareness of social and ethical responsibility among computer professionals. His tireless effort and leadership in such groups as Computer Professionals for Social Responsibility has made a significant impact upon the computer field and has helped shape public policy toward the beneficial and equitable use of computing technology in our society.”
Perin Award for Undergraduate Engineering Education, Stanford University, 1995. Two of these awards are given each year to faculty members in the School of Engineering to support the improvement of undergraduate education.
Bing Fellowship, Stanford University, 1993-95. This fellowship was created “to recognize excellence in teaching and a committed interest to the teaching of undergraduates.”
National Science Foundation Graduate Fellow, 1973-76.
National Merit Scholar, 1969.
Member of the Board of Advisors for Camp Amelia, 2004-07. Camp Amelia runs computer engagement camps for elementary school children in low-income areas of the United States as well as international camps in Ghana, South Africa, and Vietnam.
Member of the Academic Alliance for the National Center for Women in Information Technology, 2004-present.
Member of IFIP Working Group 3.2 (Informatics and ICT in Higher Education), 2003-present.
Chair of the ACM Java Task Force, 2003-07. The Java Task Force has received funding in excess of $50,000 from the National Science Foundation and other sources.
Member of the Board of Advisors for the Computer Science Teachers Association, 2003-present.
Member of Computing Research Association study panel on Recruitment and Retention of Faculty in Computer Science and Engineering, 2001-02.
Co-chair of the ACM Task Force for Computing Curriculum 2001, 1998-2001.
Information Director for the ACM Special Interest Group on Computer Science Education (SIGCSE), 1997-2005.
Member-at-large of the Board of Directors for the ACM Special Interest Group on Computer Science Education (SIGCSE), 1997-2001.
Member of the Board of Directors, Student Pugwash USA, 1997-2013 (chair from 1999-2002). Student Pugwash USA is the student affiliate of the Pugwash Conferences on Science and World Affairs, which was awarded the Nobel Peace Prize in 1995. The mission of Student Pugwash is “to encourage young people to examine the ethical, social, and global implications of science and technology, and to make these concerns a guiding focus of their academic and professional endeavors.”
President, Computer Professionals for Social Responsibility, 1990-96. CPSR is a public-interest organization of computer scientists and other professionals concerned about the impact of computing technology on society. Prior to becoming President, served as the CPSR National Secretary from 1987 to 1990.
Member of the Education Working Group for the Strategic Directions in Computing Research workshop, 1996. The Strategic Directions in Computing Research workshop was an invitational symposium held in June 1996 to identify research priorities in many different areas of computer science. The forum was sponsored by the Association for Computing Machinery, the Computing Research Association, the National Science Foundation, and the Office of Naval Research.
Member of the Board of Advisors for the Ethics Center for Engineering and Science, 1995-99. This center, funded by the National Science Foundation and directed by Professor Caroline Whitbeck at MIT, focused its attention on developing materials “to help engineers and scientists clarify the problems they face.”
Member of the ImpactCS Steering Committee, 1994-98. This group consisted of 25 nationally recognized academicians involved in teaching ethics and computer science.
Member of the Aspen Institute summit group on computer science policy, 1992. This group consisted of the chief executives and elected presidents of eight computer science organizations (AAAI, ACM, CPSR, CRA, CSPP, CSTB, IEEE/CS, and SIAM).
Reviewer for National Science Foundation, Instrument and Laboratory Improvement Program, 1992.
Member of the National Board, Research Center on Computing and Society, New Haven, Connecticut, 1991-93.
Member of the National Board, The Democracy Project, San Francisco, California, 1991-94.
Editor of the “Computing and the Citizen” column for Abacus magazine, 1986-88.
Editor of Working Notes, a monthly newsletter published by CPSR’s Computers in the Workplace Project, 1987-90.
Local Arrangements Chair, ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, December 1986.
Member of the Association for Computing Machinery (ACM); ACM Special Interest Groups SIGCSE and SIGCAS; the IEEE Computer Society; and the American Association for the Advancement of Science.