|
DAVID GRIES
Professor Emeritus, Computer Science |
460 Gates (607) 255-2962 |
Cornell University |
djg17 ?where? cornell.edu, dgries ?where? cs.cornell.edu |
Ithaca, NY 14853 |
Citizenship: United States |
USA |
|
AWARDS
- Doctor of Science (Honorary Degree), Miami University, Oxford, Ohio
(1999)
- Doctor of Laws (Honorary Degree), Daniel Webster College, Nashua,
New Hampshire (1996).
- 2019. Ranked 8th in the Top 10 Papers of the first 50 years of SIGCSE for the 1974 paper, What should we teach in an introductory programming course?
paper
- 2016 Amity Booker Prize, Amity University, New Delhi, for the 2004 text Multimedia Introduction to Programming using Java, (with Paul Gries).
- 1995 ACM Karl V. Karlstrom Outstanding Educator Award. (Feb. 1996).
- 1994 Taylor L. Booth Award Education Award, IEEE Computer Society
(Dec. 1995).
- Advisor of T.V. Raman, whose Ph.D. thesis won the annual ACM Best
Dissertation Award (March 1995).
- ACM Fellow (Charter member: among the first group to be inducted),
8 March 1994.
- ACM-SIGCSE Award for Outstanding Contributions to Computer Science
Education, 1991.
- Computing Research Association Award for Service to the Computing
Community, 1991.
- Fellow of the AAAS, 1990-.
- Education Award, American Federation of Information Processing Societies,
1986.
- Guggenheim Fellowship, 1983-84.
- ACM Programming Systems and Languages Paper Award 1977 (with S. Owicki).
- Superior Accomplishment Award, U.S. Naval Weapons Lab, Dahlgren, Va.,
1961.
AWARDS AT CORNELL
- 1995. Weiss Presidential Fellow (for contributions to undergraduate education).
Cornell University.
- 2019. Class of 2019 Award, “In recognition of extraordinary achievement and service, making the class of 2019 and Cornell a better experience for all.”.
- 2017. Chosen by Cornell Merrill Presidential Scholar Yezy Lin as the faculty member who had the most positive influence on her education at Cornell.
- 2017. Computer Science Department Faculty of the Year (Cornell
Association for Computer Association of Undergraduates (ACSU)).
- 1999. Computer Science Department Faculty of the Year (Cornell
Association for Computer Association of Undergraduates (ACSU)).
- 1996. Computer Science Department Faculty of the Year (Cornell
Association for Computer Association of Undergraduates (ACSU)).
- 1990. Chosen by a Cornell Merrill Presidential Scholar (Thomas Yan) as the
faculty member who had the most positive influence on his education
at Cornell.
- 1987. Clarke Award for Excellence in Undergraduate Teaching; College of
Arts and Science, Cornell University, 1986-87.
EDUCATION
1960 Queens College, B.S. in Mathematics
1963 University of Illinois, M.S. in Mathematics
1966 Munich Institute of Technology, Dr. rer. nat. in Mathematics
EXPERIENCE
2011- Professor Emeritus
2003-2011 Associate Dean for Undergraduate Programs,
Engineering College, Cornell University
2003- Professor, Computer Science, Cornell University
2000-01 Visiting Professor, Computer Science, Cornell University
1999-03 Franklin Professor of Computer Science, University of Georgia
1992-99 William L. Lewis Professor of Engineering, Cornell University
1990-91 Sabbatic, Regents Chair in Computer Science, Univ. Texas, Austin
1983-84 Sabbatic, Oxford University
1982-87 Chair, Computer Science Department, Cornell
1977-99 Professor, Cornell University
1975-76 Sabbatic, Technical University, Munich
1969-77 Associate Professor, Cornell University
1966-69 Assistant Professor, Stanford University
1963-66 Assistant, Munich Inst. of Technology
1960-62 Mathematician-programmer, U.S. Naval Weapons Lab.
PH.D. STUDENTS ADVISED
1971 Susan L. Graham |
1977 Kuo-Chung Tai |
1987 Jennifer Widom |
1972 Jean-Pierre Levy |
1980 Gary M. Levin |
1987 Jan Prins |
1972 John S. Brown |
1980 John Holm |
1991 Geoffrey Smith |
1973 Donald B. Johnson |
1981 Robert Melville |
1994 T.V. Raman |
1975 Narain Gehani |
1984 Peter Vanderbilt |
1994 S. Efremidis |
1975 Susan S. Owicki |
1985 Dean Jacobs |
2000 E. Aaron |
1977 Juan M. Lafuente |
1985 Van Long Nguyen |
|
COMMUNITY PARTICIPATION AND LEADERSHIP (SELECTED)
- Member, Computing Research Board, 1983-1990.
- Chair, Computing Research Board, 1987-89.
- Member, Steering Group, AAAS Section T on Information, Computing,
and Communication, 1999-.
- Member, Ad hoc AP Committee to Recommend the Next Programming Language,
1999-2001.
- Series Editor, Springer Verlag Texts and Monographs in Computer Science,
1973-.
- Main Editor, Acta Informatica, 1982-.
- Managing Editor, Information Processing Letters, 1988-.
- Editor, Programming Languages section of CACM, 1969-72.
- Editorial Board: Acta Informatica, 1970-; Information Processing
Letters, 1973-; Springer Verlag Lecture Notes in Computer Science, 1973-;
Distributed Computing 1985-88; Software -Concepts and Tools, 1988-;
Formal Aspects of Computer Science, 1988-.
- Co-Editor, Special issue of IPL, April 2001 (with V. Almstrum).
- Advisory Board, Conference on Foundations of Software Technology
and Theoretical Computer Science (India), 1981-.
- Chair, Program Committee, 2nd IEEE Symp. Logics in Computer Science,
1987.
- Member of Program Committees: 5th Int. Symp. Programming. 1981; 6th
Int. Symp. Programming. 1982; POPL 1978; POPL 79; 6th Int. Conf. Software
Engineering, 1982; IFIP Working Conference on Programming Concepts and
Methods, 1990; SCCC 97; Mathematics of Program Construction 98.
- National Research Council to Survey International Developments in
Computer Science. 1980-82.
- Computer Science Screening Committee, Council for International Exchange
of Scholars, 1984-86.
- Chair, Panel on research directions in Software. NSF Advisory Committee
Meeting, Dec. 1988.
- Scientific Director, Institute for Encapsulation, Modularization
and Reuseability, Year of Programming, University of Texas at Austin,
1987.
- Member, Committee to Assess the Scope and Direction of Computer Science
and Technology (Computer Science and Telecommunications Board of the
National Research Council), 1990-92.
- ACM Task Force on Computer Science Core Curriculum, 1987-89.
- ACM Strategic Planning Committee, 1988-90.
- Scientific Director, Institute for Encapsulation, Modularization
and Reuseability, Year of Programming, University of Texas at Austin,
1987.
- Chair, ACM Award Committee, Best Paper in Programming Languages and
Systems 1972-75.
- National ACM Lecturer, 1970-71.
- Member, Selection committee for NAS Graduate fellowships, 1971-72.
- Member, IFIP Working Group 2.3, 1974-.
- Reviewer for the PROCOS research project, the ESPRIT program, 1990.
- Review Committee, numerous computer science departments.
PATENTS
- United States Patent 5,572,626, 5 November 1996. Method for generating
audio renderings of digitized works having highly technical content
(with T.V. Raman).
PUBLICATIONS
Books
- The ABC Book of Computer Science at Cornell. Computer
Science, Cornell University, Ithaca, NY. 2005.
- Leadership in Research
and Education: 40 years (Editor).
Computer Science, Cornell University, Ithaca, NY. 2005.
- Multimedia Introduction to Programming Using Java. Springer
Verlag, NY, 2004, 536 pages (with P. Gries).
- The ProgramLive Companion. John Wiley & Sons, NY, 2001 (with
P. Gries and P. Hall).
- ProgramLive. Data Description, Ithaca, NY, 2000, and John
Wiley
& sons, NY, 2003 (revised) (with P.Gries.) This intro to programming
using Java is a livetext: a CD with over 250 recorded lectures with
synched animation.
- Programming Concepts and Methods. PROCOMET '98 (ed.).
Chapman and Hall, London, 1998 (with W.-P. DeRoever).
- A Logical Approach to Discrete Math. Springer Verlag, NY,
1993, 500 pages (with F.B. Schneider).
- Instructor's Manual for ``A Logical Approach to Discrete Math''.
D. Gries and F.B. Schneider, Ithaca, 1993. 311 pages (with F.B. Schneider).
- Beauty is our Business. Editor. Springer Verlag, New York,
1990, 453 pages. (with W.H.J. Feijen, A.J.M. van Gasteren, and J. Misra).
- The Science of Programming. Springer Verlag, New York, 1981,
350 pages. (Translated into Russian and Japanese.)
- Programming Methodology: a Collection of Articles by Members of
IFIP WG2.3. Editor. Springer Verlag, New York, 1979, 437 pages.
- An Introduction to Programming -a structured approach. Winthrop,
Cambridge, Edition 3, 1978, 509 pages. (with R. Conway).
- The following books are extensive revisions to suit different needs:
- A Primer on Structured Programming, Using PL/I, PL/C and PL/C7.
1976, 397 pages. (with R. Conway).
- Primer on Structured Programming using Pascal. 1976, 433
pages. (with R. Conway and E.C. Zimmerman).
- An Introduction to Structured Programming using SP/K. 1977.
(with R. Conway and D. Wortman).
- Introduction to Microprocessor Programming using PL/Z. 1979,
593 pages. (with R. Conway, M. Fay, and C. Bass).
- Compiler Construction for Digital Computers. John Wiley and
Sons, New York, 1971, 491 pages. (Translated into Spanish, Japanese,
Chinese, Italian and Russian.)
Invited lectures and panels since 2000
- Compiler construction: 24 June --10 July 2006. 3-week course given
to MTech students, Sri Sathya Sai Institute of Higher Learning. Prasanthi
Nilayam, India.
- Panel moderator. Next Generation Info. Tech. for Societal Advancement
and Integration, Sri Sathya Sai Institute of Higher Learning, Prasanthi
Nilayam, India, 17 July 2006.
- Programming and software engineering education. Keynote address,
30th Annual Software Engineering Workshop, Columbia, MD, 26 April
2006.
- Teaching program development. Computer Science Department, IIT Kanpur,
India, 16 Nov. 2005.
- CS Education. Invited presentation, NSF Workshop
on Integrative Computing Education and Research, Boston, MA, 3-4
Nov. 2005.
- Compiler writing. 2-week practicum, Computer Science & Math
Department, Sri Sathya Sai Institute of Higher Learning, Puttaparthy,
India, 13-26 July 2005.
- The science of programming. InfoSys, Bangalore,
India, 11 July 2005.
- An ABC Book. Banquet speech at the CS Cornell 40th anniversary symposium,
1 October 2005.
- Teaching Program Development. Keynote lecture. ACM Mid-South College
Computing Conference (MSCCC), University of Mississippi, Oxford, MS
(April 1-2, 2005).
- Calculus and calculational logic. Invited talk, Festveranstaltung
Friedrich L. Bauer 80 Jahre (June 2004). Technishe Universitaet Muenchen,
Garching bei Munich, Germany.
- Teaching the development of algorithms. Keynote
lecture. ACM MidSoutheast Conference, Knoxville, Tennessee (November
11-12, 2004).
- Imparting Skill and Values, not Just Knowledge. Invited
lecture, Symposium on Teaching Formal Methods. Ghent, Belgium
(November 18-19, 2004)
- Problems in computer science education. Banquet speech. ITiCSE 2002,
Aarhus, Denmark, 25 June 2002.
- On the occasion of the retirement of Juris and Elly Hartmanis. Banquet
speech. Cornell University, Ithaca, NY, 6 May 2001.
Published Articles and Lectures
- What have we not learned about teaching programming?
Computer, 39, 10 (October 2006), 81-82.
- Supporting workflow in a course management system. SIGCSE 2005 (Feb
23-27, 2005), St. Louis, MO. (with 19 others)
- Substitution of equals for equals. (with F.B. Schneider). In Millennial
Perspectives in Computer Science, (eds. J. Davies, B. Roscoe,
and J. Woodcock). Palgrave Houndmills, U.K. 2000. p, 119-132.
- Monotonicity in calculational proofs. In Correct System Design (eds.
E.-R. Olderog and B. Ste˙en), LNCS 1710, Springer Verlag, 1999,
p. 79-85.
- Logic as a tool. 10 lectures at WOFRACS 98, Workshop on Formal and
Applied Computer Science, Winter School on Programming Methodology,
University of CapeTown, South Africa, 6-11 July 1998.
- The programming language Java. 10 lectures, Math Department, Sathya
Sai Baba Institute of Higher Learning, Puttaparthi, India. 13-18
July 1998.
- Eliminating the chaff --again. Banquet speech at Marktoberdorf 1996.
In M. Broy and B. Schieder (eds.) MathematicalMethods in Program
Development.
NATO ASI Series, Series F: Computer and Systems Sciences 158,
Springer Verlag 1997, 1-7.
- Foundations for calculational logic. Ibid, 83-126.
- The once and future programmer: our educational dilemma (Banquet speech).
Third Annual Northeastern Conference, the Consortium for Computing in
Small Colleges. Fairfield, CT, 24 April 1998.
- Adding the everywhere operator to propositional logic. Journal
of Logic and Computation 8, 1 (February 1998). (With F.B. Schneider).
- KMP string matching revisited. IPL 64 (1997), 217-223.
(with E.M. Reingold and K.J. Urban).
- Formal justification of underspecification for S5. IPL 64,
3 (Nov. 1997), 115-121. (with E. Aaron).
- Data refinement and the transform. Deductive Program Design
(M. Broy, ed.), AASI Vol. F152, Springer Verlag, pp. 205-232, 1996.
- What's education for? Address at
the Opening Convocation, Daniel Webster College, 6 September 1996.
- The need for education in useful formal logic. IEEE Computer
(April 1966), 29-30.
- Avoiding the undefined by underspecification. In J. van Leeuwen (Ed.).
Computer Science Today. Springer Verlag Lecture Notes in Computer
Science 1000, October 1995, 366-373. (with Fred B. Schneider).
- Teaching math more effectively through calculational proofs. The
Mathematical Monthly (October 1995), 691-697. (with F.B. Schneider).
- A new approach to teaching discrete mathematics. PRIMUS V,
2 (June 1995), 114-115. (with F.B. Schneider).
- Equational
propositional logic. IPL 53, 3 (February 1995), 145-152.
(with Fred B. Schneider).
- Documents mean more than just paper! Proc. Second International
Workshop on the Principles of Document Processing, April 1994 (with
T.V. Raman).
- Data refinement and the transform. In Broy (ed.), Program Design
Calculi. NATO ASI Series F, 118, Springer-Verlag, Heidelberg, 1993.
pp. 92-119.
- Computer Science, Academic. Encyclopedia of Computer Science, Third
Edition (A. Ralston and E.D. Reilly, eds.), Van Nostrand Reinhold, New
York, 1993, p. 322-323 (with D. Marsh).
- Loop invariant. Encyclopedia of Computer Science, Third Edition (A.
Ralston and E.D. Reilly, eds.), Van Nostrand Reinhold, New York, 1993,
p. 796-797.
- Trace-based network proof systems: expressiveness and completeness.
TOPLAS 14, 3 (July 1992), 396-416. (with J. Widom and F.B. Schneider).
- A new programming language. Proc. Software Technology Conference
1992, Los Angeles, California, 27-29 April 1992, pp. 97-101.
- A constructive proof of Vizing's theorem. IPL 41, 3 (March
1992), 131-133. (with J. Misra).
- On progress in programming. In Broy, M. (ed.). Informatik und
Mathematik, Springer Verlag, Heidelberg, 1991, pp. 297-302.
- Teaching calculation and discrimination: a more effective curriculum.
Comm. ACM 34, 3 (March 1991), 44-55.
- Binary to decimal, one more time. In Beauty is our Business
(W.H.J. Feijen et al, eds.), Springer Verlag, New York, 1990, pp. 141-148.
- The transform -a new language construct. Structured Programming
11 (1990), 1-10. (with D. Volpano).
- An optimal parallel algorithm for generating combinations. IPL 33
(November 1989), 135-139. (with S.E. Akl and I. Stojmenovic).
- Influences (or lack thereof) of formalism in teaching programming
and software engineering. (Banquet speech.) Ibid, pp. 229-236.
- A hands-in-the-pocket presentation of a k-majority vote algorithm.
In Formal development of programs and proofs (E.W. Dijkstra,
ed.), Addison-Wesley, Menlo Park, 1990, pp. 43-45.
- Inorder traversal of a binary tree and its inversion. Ibid,
pp. 37-42. (with J.L.A. van de Snepscheut).
- The maximum-segment-sum problem. Ibid, pp. 33-36.
- An algorithm for transitive reduction of an acyclic graph. Science
of Computer Programming 12, 2 (July 1989), 151-155. (with A.J. Martin,
J.L.A. van de Snepscheut, and J.T. Udding).
- Developing a linear algorithm for cubing a cyclic permutation. Science
of Computer Programming 11, 2 (December 1988), 161-166. (with J.
Xue).
- Generating a random cyclic permutation. BIT 28, 3 (1988),
569-572. (with J. Xue).
- A note on Graham's convex hull algorithm. IPL 25, 5 (July
1987), 323-328. (with I. Stojmenovic).
- Horner's rule and the computation of linear recurrences. IPL 25,
4 (June 1987), 237-240. (with A. Pascoletti and L. Sbriz).
- Programming pearls, guest oyster. Comm. ACM 30, 4 (April 1987),
284-290.
- Mclaren's masterpiece. Science of Computer Programming 8,
2 (April 1987), 139-146. (with J.F. Prins).
- In-situ inversion of a cyclic permutation. IPL 24, 1 (January
1987), 11-14. (with W.H.J. Feijen and A.J.M. van Gasteren).
- Completeness and incompleteness of trace-based network proof systems.
Proc. Fourteenth Ann. ACM SIGACT-SIGPLAN Symp. Princ. Programming
Languages, January 1987, Munich. (with J. Widom and F.B. Schneider).
- Programming methodology: making a science out of an art. Engineering:
Cornell Quarterly 20, 2 (Fall 1985), 23-27. (with F.B. Schneider).
- A model and temporal proof system for networks of processes. Distributed
Computing 1, 1 (1986), 7-25. (with V. Nguyen, A. Demers, and S.
Owicki).
- Twenty years of computer science at Cornell. Engineering:
Cornell Quarterly 20, 2 (Fall 1985), 2-11.
- A new notion of encapsulation. Proc. SIGPLAN 85 Symp. Language
Issues in Programming Environments, Seattle, June 1985, 131-139.
(with J. Prins).
- Behavior: a temporal approach to process modeling. Conference on
Logics of Programs, Brooklyn, June 1985. LNCS 193 (1985), 237-254.
(with V. Nguyen, A. Demers, and S. Owicki).
- A model and temporal proof system for networks of processes. Twelfth
Ann. ACM Symp. Princ. Progr. Lang., New Orleans, January 1985, 121-131.
(with V. Nguyen and S. Owicki).
- General correctness: a unification of partial and total correctness.
Acta Informatica 22 (1985), 67-84. (with D. Jacobs).
- The emerging science of programming (Keynote Address). 6th Australian
Computer Science Conference, Sydney, Australia, February 12, 1983.
- Towards a practical science of programming (Keynote Address). 2nd
Conf. Foundations of Software Technology and Theoretical Computer Science,
Bangalore, India, December 13, 1982.
- Fast fault-tolerant broadcasts. Science of Computer Programming
4 (April 1984), 1-16. (with F.B. Schneider and R.D. Schlichting).
- A note on a standard strategy for developing loop invariants and
loops. Science of Computer Programming 2 (1984), 207-214.
- Finding repeated elements. Science of Computer Programming 2
(November 1982), 143-152. (with J. Misra).
- A proof technique for communicating sequential processes. Acta
Informatica 15 (1980), 281-302. (with G. Levin).
- Educating the programmer: notation, proofs and the development of
programs. Invited lecture. Information Processing 80, Proc. IFIP
Congress 80, S. Lavington, (Ed.), North-Holland, New York, 1980,
935-944.
- Computing a Fibonacci number in log time. IPL 2 (October 1980),
68-69. (with G. Levin).
- Assignment and procedure call proof rules. TOPLAS 2 (October
1980), 564-579. (with G. Levin).
- Controlled-density sorting. IPL 10 (July 1980), 169-172. (with
R. Melville).
- Is sometime ever better than alway? TOPLAS 1 (October 1979),
258-265.
- Eliminating the chaff. In Program Construction, F.L. Bauer
and M. Broy (Eds.), LNCS 69 (1979), 70-74.
- Current ideas in programming methodology. In Research Directions
in Software Technology, P. Wegner (Ed.), MIT Press, 1979, 254-275.
- The Schorr-Waite graph marking algorithm. Acta Informatica 11
(1979), 223-232.
- A linear sieve algorithm for finding prime numbers. Comm. ACM
21 (December 1978), 999-1003. (with J. Misra).
- Parallel programming (invited lecture). GI-8 Jahrestagung, Springer
Verlag Informatik Berichte 16 (October 1976) Berlin, Germany, 214-233.
- The multiple assignment statement. IEEE Trans. Softw. Eng. 4
(March 1978), 89-93.
- Language facilities for programming user-computer dialogues. IBM
J. Research and Development 22 (March 1978), 148-158. Reprinted
in E. Edmunds (ed.). The Separable User Interface. Academic Press,
San Diego, 1992, pp. 97-128. (with J. LaFuente).
- An exercise in proving parallel programs correct. Comm. ACM 20
(December 1977), 921-930.
- Some ideas on data types in high-level languages. Comm. ACM 20
(June 1977), 414-420. (with N. Gehani).
- An illustration of current ideas on the derivation of correctness
proofs and correct programs. IEEE Trans. Softw. Eng. 2 (December
1976), 238-244.
- Compiler. Encyclopedia of Computer Science and Technology 5,
Belzer, Holzman and Kent (Eds.), Markel Dekker Inc., New York, 206-243.
- Error recovery and correction -an introduction to the literature.
Compiler Construction -an Advanced Course, F.L. Bauer and J.
Eickel (Eds.), LNCS 21 (edition 2), Springer Verlag, New York,
1976, 627-638.
- Some comments on programming language design (invited lecture). Programmiersprachen:
Fachtagung 1976, H.J. Schneider and M. Nagl (Eds.), Informatik-Fachberichte
I, Springer Verlag, Heidelberg, 1976, 235-252.
- An axiomatic proof technique for parallel programs. Acta Informatica
6 (1976), 319-340. (with S. Owicki).
- Verifying properties of parallel programs: an axiomatic approach.
Comm. ACM 19 (May 1976), 279-285. (with S. Owicki).
- On structured programming -a reply to Smoliar. Comm. ACM 17
(November 1974), 655-657; also Comm. ACM 18 (October 1975), 600-601
and Comm. ACM 19 (January 1976), 47-48.
- What should we teach in an introductory programming course? SIGCSE
Bulletin 6, February 1974, 81-89. (Proc. 4th Symp. Computer Science
Education.)
- Describing an algorithm by Hopcroft. Acta Informatica 2 (1973),
97-109.
- Programming by induction. IPL 2 (1972), 100-107.
- Program schemes with pushdown stores. SIAM J. Computing 1
(1972), 242-268. (with R. Szymanski and S. Brown).
- On classes of program schemata. SIAM J. Computing 1, 1 (1972),
66-118. (with R. Constable).
- Automatic compiler writing techniques. In Systemprogrammierung,
Ganzhorn, Schieferdecker, Endres (Ed.), Oldenbourg Verlag, Munich, 1972.
- Translator writing systems. Comm. ACM 11 (February 1968),
77-113. (with J. Feldman).
- The use of transition matrices in compiling. Comm. ACM 11
(January 1968), 26-34.
- The ALCOR-ILLINOIS 7090/7040 post mortem dump. Comm. ACM 10
(December 1967), 804-808. (with R. Bayer, M. Paul and H.R. Wiehle).
- Characterizations of certain classes of norms. Numerische Mathematik
10 (1967), 30-41.
- Some results on fields of value of a matrix. SIAM J. Numerical
Analysis 4 (1967), 283-299. (with J. Stoer).
- Some techniques used in the ALCOR-ILLINOIS 7090. Comm. ACM 8
(August 1965), 496-500. (with M. Paul and H.R. Wiehle).
Published Reports
- Computer science. Cornell Engineering Quarterly 25, 4 (Summer
1991), 21-23.
- Die 150 wissenschaftlichen Nachtkommen von Prof.Dr.Dr.h.c.mult. F.L.
Bauer. In Broy, M. (ed.). Informatik und Mathematik, Springer
Verlag, Heidelberg, 1991, pp. 441-450.
- The 1989-90 Taulbee survey. Computing Research News (January
1991) and Comm. ACM 35, 1 (January 1992), 132-143. (with Dorothy
Marsh).
- The 1988-89 Taulbee survey. Computing Research News 2, 1 (January
1990) and Comm. ACM 33, 9 (September 1990), 160-169. (with Dorothy
Marsh).
- Computer languages. In J.E. Hopcroft and K.W. Kennedy, ed. Computer
Science: achievements and opportunities. Report of the NSF Advisory
Committee for Computer Research. SIAM, Philadelphia, 1989, pp. 15-28.
(with C.A.R. Hoare, K.W. Kennedy, F.C.N. Pereira, and D.S. Scott).
- The Computer Worm. (Report from the Commission of Preliminary Enquiry.
Cornell University), Cornell University, 6 February 1989. (with T. Eisenberg,
J. Hartmanis, D. Holcomb, M.S. Lynn, and T. Santoro).
- The 1988 Snowbird Report: a discipline matures. Computer 22,
2 (1989), 72-75. (with T. Walker and P.R. Young).
- Computing as a Discipline. Final report of ACM Task Force on the
Core of Computer Science. Computer 22, 2 (1989), 63-70. (with
P.J. Denning,. D.E. Comer, M.C. Mulder, A. Tucker, A.J. Turner, and
P.R. Young).
- The 1987-88 Taulbee survey. Comm. ACM 32, 10 (October 1989),
1217-1224; and Computer 22, 11 (November 1989), 49-56. (with
D. Marsh).
- The 1986-87 Taulbee survey. Comm. ACM 31 (August 1988), 984-991;
and Computer 21 (August 1988), 53-61. (with Dorothy Marsh).
- The 1985-86 Taulbee survey. Comm. ACM 30 (August 1987), 688-694.
- Meeting the basic research needs of computer science. Report of the
study group of the Advisory Committee for Computer Research, National
science Foundation, December 1986. (with S.R. Kosaraju and M.J. Fischer).
- The 1984-85 Taulbee survey. Comm. ACM 29 (Oct 1986), 972-977.
- Twenty years of computer science at Cornell. Engineering: Cornell
Quarterly 20, 2 (Fall 1985), 2-12.
- Imbalance between growth and funding in academic computer science:
two trends colliding. Computer 19 (September 1986), 70-76, and
Comm. ACM 29 (September 1986), 870-878. (with R. Miller, R. Ritchie,
and P. Young).
Other reports and reviews
- Banquet speech, Conference at the retirement of Professor Juris Hartmanis.
Cornell University, Ithaca, NY. 5 May 2001.
- Foreword for T.V. Raman's book Auditory User Interfaces (AUI) Žtoward
the speaking computer.
- Formalizations of substitution of equals for equals. Tech. Rpt. 98-1686, Computer Science, Cornell University, May 1998 (with F.B. Schneider).
- Formal justification of underspecification for S5. Tech. Rpt. 96-1622, Computer Science, Cornell
University, February 1997(with Eric Aaron).
- Formal versus semiformal proof in teaching predicate logic. Tech. Rpt. 96-1603, Computer Science Department, Cornell University,
August 1996.
- A calculational proof of Andrew's challenge. Tech. Rpt. 96-1602, Computer Science Department, Cornell University,
August 1996.
- Avoiding the undefined by underspecification. Tech. Rpt. 95-1520, Computer Science, Cornell
University, 1995 (with Fred B. Schneider).
- On presenting monotonicity and on
EA=>AE. Tech. Rpt. 95-1512, Computer Science, Cornell
University, April 1995.
- Equational propositional logic. Tech. Rpt. 94-1455, Computer Science, Cornell University, September 1994 (with F.B. Schneider).
- Teaching math more effectively through the design of calculational proofs. Tech. Rpt. 94-1415, March 1994. Accepted for publication in
the Mathematical Monthly, January 1995 (with Fred B. Schneider)
- A new approach to teaching mathematics. Tech. Rpt. 94-1411, Computer Science, Cornell University, February 1994. Accepted for publication
in PRIMUS. (with F.B. Schneider).
- An algorithm for processing program transformations. Tech. Rpt., Computer Science, Cornell University, October 1993. (with Sofoklis Efremidis).
- A constructive proof of Vizing's theorem. Tech. Rpt., Computer Science, Cornell University, August 1991. (with J. Misra).
- An introduction to proofs of program correctness for teachers of college-level introductory programming courses. Tech. Rpt. 90-11102, Computer Science,
Cornell University, Ithaca, New York, March 1990. (with Jeff Wadkins).
- Type definitions of Polya. Tech. Rpt. 90-1085, Computer Science,
Cornell University, Ithaca, New York, February 1990. (with Dennis Volpano).
- Forward, Essays in Computing Science by C.A.R. Hoare and C.B.
Jones. Prentice Hall International, London, 1989.
- Trace-based network proof systems: expressiveness and completeness. Tech. Rpt. 89-966, Computer Science,
Cornell University, Ithaca, New York, February 1989. (with Fred B. Schneider and Jennifer Widom).
- The Hopcroft-Tarjan planarity algorithm, presentation and improvements.
Tech. Rpt. 88-906, Computer Science,
Cornell University, Ithaca, New York, April 1988. (with J. Xue).
- Presenting an algorithm to find the minimum edit distance. Tech.
Rpt. 88-903, Computer Science,
Cornell University, Ithaca, New York, March 1988. (with B. Burkhart).
- The 1986-1987 Taulbee survey report. Tech. Rep. 88-897, Computer Science,
Cornell University, Ithaca, New York, February 1988 (with Dorothy Marsh).
- Inorder traversal of a binary tree and its inversion. Tech. Rpt.
87-876, Computer Science,
Cornell University, Ithaca, New York, November 1987. (with Jan L.A. van de Snepscheut).
- What programmers don't and should know. Tech. Rpt. 87-872, Computer Science Department, Cornell University,
September 1987.
- Complete, trace-based, network proof systems: an advisor's perspective.
Tech. Rpt. 87-865, Computer Science Department, Cornell University,
September 1987.
- Generating a random cyclic permutation. Tech. Rep. 86-786, Computer Science,
Cornell University, Ithaca, New York, September 1986 (with Jinyun Xue).
- Developing a linear algorithm for cubing a cyclic permutation. Tech. Rep. 86-780, Computer Science,
Cornell University, Ithaca, New York, September 1986 (with Jinyun Xue).
- Completeness and incompleteness of trace-based network proof systems. Tech. Rep. 86-766, Computer Science,
Cornell University, Ithaca, New York, September 1986 (with Jennifer Widom and Fred B. Schneider).
- McLaren's masterpiece. Tech. Rep. 86-729, Computer
Science Department, Cornell University, January 1986 (with J.F. Prins).
- Developing two of Arsac's funny algorithms. Tech. Rep. 85-711, Computer
Science Department, Cornell University, November 1985.
- The Gibbs Programming Environment. IEEE International Conference
on Computer Design: VLSI in Computers. (ICCD '85), Oct 7 1985, Port
Chester, NY.
- In-situ inversion of a cyclic permutation. Tech. Rep. 85-703, Computer Science,
Cornell University, Ithaca, New York, September 1985 (with W.H.J. Feijen and A.J.M. van Gasteren).
- A model and temporal proof system for networks of processes. Tech. Rep. 85-690, Computer Science,
Cornell University, Ithaca, New York, June 1985 (with Van Nguyen, Alan Demers, and Susan Owicki).
- A model and temporal proof system for networks of processes. Tech. Rep. 84-651, Computer Science,
Cornell University, Ithaca, New York, November 1984 (with Van Nguyen and Susan Owicki).
- General correctness: a unification of partial and total correctness. Tech. Rep. 84-641, Computer Science, Cornell
University, October 1984. (with Dean Jacobs)
- The seven-eleven problem. Tech. Rep. 83-574, Computer Science, Cornell
University, September 1983. (with P. Pritchard)
- Fault-tolerant brodcasts. Tech. Rep. 83-519, Computer Science,
Cornell University, Ithaca, New York, August 1983 (with Fred B. Schneider and Richard D. Schlichting).
- Review of R.G. Dromy's book How to solve it by computer. Science
of Computer Programming 3 (1983).
- A note on the standard strategy for developing loop invariants and loops. Tech. Rep. 82-531, Computer
Science, Cornell University, Ithaca, New York, October 1982.
- Finding repeated elements. Tech. Rep. 82-505, Computer Science,
Cornell University, Ithaca, New York, July 1982 (with Jayadev Misra).
- A reply to Susan Gerhart's review of Craft and Science.
May 1982.
- The science of programming answer book. Tech. Rep. 82-498, Computer
Science, Cornell University, Ithaca, New York, June 1982.
- The 711 problem. Tech. Rep. 82-493, Computer Science, Cornell University,
Ithaca, New York, May 1982.
- Finding the longest prefix. August 1981.
- Notes on Mathematical Induction and Well-Founded Sets. November 1981.
- Swapping sections. Tech. Rep. 81-452, Computer Science,
Cornell University, Ithaca, New York, May 1979 (with Harlan Mills).
- Educating the programmer: notation, proofs, and the development of programs. Tech. Rep. 80-414, Computer Science, Cornell University, Ithaca,
New York, May 1979.
- Cand and Cor before and then and or else in ADA. Tech. Rep. 79-402, Computer Science, Cornell University, Ithaca,
New York, May 1979.
- A procedure call proof rule (with a simple explanation). Tech. Rep. 79-379, Computer Science,
Cornell University, Ithaca, New York, May 1979 (with Gary Levin).
- Yet another exercise: using shared variables in two processes to
provide starvation-free mutual exclusion. Tech. Rep. 79-372, Computer
Science, Cornell University, Ithaca, New York, 1979.
- Sorting and searching using controlled density arrays. Tech. Rep. 78-362, Computer Science,
Cornell University, Ithaca, New York, May 1978 (with Robert Melville).
- Is sometime ever better than alway? Tech. Rep. 78-343, Computer Science, Cornell
University, Ithaca, New York, 1978.
- Tutorial on the development of programs. COMCON 77, September 1977.
(with D. Parnas).
- A note on iteration. Tech. Rep. 77-323, Computer Science, Cornell
University, Ithaca, New York, September 1977.
- A linear sieve algorithm for finding prime numbers. Tech. Rep. 77-313, Computer Science,
Cornell University, Ithaca, New York, May 1975 (with Jayadev Misra).
- Assignment to subscripted variables. Tech. Rep. 77-305, Computer Science, Cornell
University, Ithaca, New York, September 1977.
- Current ideas on programming methodology. Rep. 76-286, Computer Science,
Cornell University, Ithaca, New York, July 1976.
- A proof of correctness of Rem's semaphore implementation of the with-when
statement. Tech. Rep. 77-314, Computer Science, Cornell University,
Ithaca, New York, May 1977.
- The use of comments on programming. 1976. (with R. Conway).
- A student-written compiler. Tutorial Software Document 1, DISE Task
Force on Software Engineering, May 1975.
- Recursion as a programming tool. Tech. Rep. 75-242, Computer Science,
Cornell University, Ithaca, New York, May 1975.
- Some ideas on data types in high level languages. Tech. Rep. 75-244, Computer Science,
Cornell University, Ithaca, New York, May 1975 (with Narian Gehani).
- Proving properties of parallel programs: an axiomatic approach. Tech. Rep. 75-243, Computer Science,
Cornell University, Ithaca, New York, May 1975 (with Susan Owicki).
- A note on program development. Tech. Rep. 74-202, Computer Science,
Cornell University, Ithaca, New York, March 1974.
- Describing an algorithm by Hopcroft. Tech. Rep. 72-151, Computer Science,
Cornell University, Ithaca, New York, December 1972.
- Program schemes with pushdown stores. Tech. Rep. 72-126, Computer Science,
Cornell University, Ithaca, New Yor, January 1972 (with S. Brown and R. Szymanski).
- Programming by Induction. Tech. Rep. 71-106, Computer Science,
Cornell University, Ithaca, New York, September 1971
- Using recipes to teach programming. 1970.
- CIL: Compiler Implementation Language. SLAC Report 102, March 1969.
- MPL: Mathematical Programming Language. Computer Science Report,
Computer Science Department, Stanford University, 1968. (with 7 others).
- Ueber einige Klassen von Normen. Ph.D. Thesis, Technische
Hochschule Muenchen, 1966.
- ALCOR-ILLINOIS 7090 -an ALGOL compiler for the IBM 7090. Report 6415,
Rech. der Tech. Hochschule Munich, 1964. (with M. Paul and H.R. Wiehle).
- The object program produced by the ALCOR-ILLINOIS 7090 compiler.
Report 6412, Rech. der Tech. Hochschule Munich, 1964.
- User's manual for the ALCOR-ILLINOIS 7090 ALGOL translator. University
of Illinois, September 1964, 120 pages. (with R. Bayer and E. Murphree
Jr).
|