David Gries
American computer scientist
David Gries's AcademicInfluence.com Rankings
Download Badge
Computer Science
David Gries's Degrees
- PhD Computer Science Stanford University
- Masters Computer Science Stanford University
- Bachelors Mathematics University of Chicago
Similar Degrees You Can Earn
Why Is David Gries Influential?
(Suggest an Edit or Addition)According to Wikipedia, David Gries is an American computer scientist at Cornell University, United States mainly known for his books The Science of Programming and A Logical Approach to Discrete Math . He was Associate Dean for Undergraduate Programs at the Cornell University College of Engineering from 2003–2011. His research interests include programming methodology and related areas such as programming languages, related semantics, and logic. His son, Paul Gries, has been a co-author of an introductory textbook to computer programming using the language Python and is a teaching stream professor in the Department of Computer Science at the University of Toronto.
David Gries's Published Works
Published Works
- The Science of Programming (1981) (1588)
- A Theory of Graphs (1993) (960)
- Refinement Calculus: A Systematic Introduction (1998) (916)
- Computing as a discipline (1989) (857)
- An axiomatic proof technique for parallel programs I (1976) (655)
- Finding Repeated Elements (1982) (515)
- Verifying properties of parallel programs: an axiomatic approach (1976) (499)
- The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 (1983) (494)
- Compiler Construction for Digital Computers (1971) (431)
- A Logical Approach to Discrete Math (1993) (423)
- Active Rules in Database Systems (1998) (324)
- Advances in Cryptology — EUROCRYPT ’88 (2000) (217)
- Translator writing systems (1968) (184)
- A Constructive Proof of Vizing's Theorem (1992) (169)
- An Invitation to Formal Methods (1996) (161)
- A Theory of Sets (1993) (157)
- The Programming Language Ada (1983) (147)
- An exercise in proving parallel programs correct (1975) (112)
- Beauty Is Our Business: A Birthday Salute to Edsger W.Dijkstra (1990) (103)
- Assignment and Procedure Call Proof Rules (1980) (95)
- Fault-Tolerant Broadcasts (1984) (94)
- Specification and Transformation of Programs: A Formal Approach to Software Development (1990) (89)
- An introduction to programming (1973) (86)
- Describing an algorithm by Hopcroft (1973) (83)
- What should we teach in an introductory programming course? (1974) (78)
- On Classes of Program Schemata (1971) (74)
- A Note on a Standard Strategy for Developing Loop Invariants and Loops (1982) (74)
- Teaching calculation and discrimination: a more effective curriculum (1991) (73)
- Computing as a discipline: preliminary report of the ACM task force on the core of computer science (1988) (67)
- Avoiding the Undefined by Underspecification (1995) (64)
- A proof technique for communicating sequential processes (1981) (58)
- The Cornell commission: on Morris and the worm (1989) (44)
- Some ideas on data types in high level languages (1977) (44)
- A new notion of encapsulation (1985) (42)
- A linear sieve algorithm for finding prime numbers (1978) (41)
- Computing Fibonacci Numbers (and Similarly Defined Functions) in Log Time (1980) (39)
- A principled approach to teaching OO first (2008) (37)
- Programming Methodology: A Collection of Articles by Members of IFIP WG 2.3 (1978) (37)
- An Illustration of Current Ideas on the Derivation of Correctness Proofs and Correct Programs (1976) (35)
- The Multiple Assignment Statement (1978) (35)
- Beauty Is Our Business (1990) (33)
- An Algorithm for Transitive Reduction of an Acyclic Graph (1989) (33)
- General correctness: A unification of partial and total correctness (1985) (32)
- Program Schemes with Pushdown Stores (1972) (32)
- Equational Propositional Logic (1995) (32)
- Programming Concepts and Methods (1998) (32)
- The Transform - a New Language Construct (1990) (31)
- On Structured Programming (1978) (31)
- Supporting workflow in a course management system (2005) (29)
- An Optimal Parallel Algorithm for Generating Combinations (1989) (29)
- A Note on Graham's Convex Hull Algorithm (1987) (27)
- Use of transition matrices in compiling (1967) (26)
- Characterizations of certain classes of norms (1967) (26)
- Completeness and incompleteness of trace-based network proof systems (1987) (26)
- TEACHING MATH MORE EFFECTIVELY, THROUGH CALCULATIONAL PROOFS (1995) (23)
- Language Facilities for Programming User-Computer Dialogues (1978) (23)
- Some techniques used in the ALCOR ILLINOIS 7090 (1965) (21)
- A model and temporal proof system for networks of processes (1985) (21)
- The 1989–90 Taulbee survey (1992) (18)
- Where is programming methodology these days? (2002) (18)
- Inorder traversal of a binary tree and its inversion (1989) (18)
- How mathematical thinking enchances computer science problem solving (2001) (18)
- Is Sometimes Ever Better Than Always? (1978) (17)
- Generating a random cyclic permutation (1986) (17)
- The Schorr-Waite graph marking algorithm (1978) (16)
- Documents mean more than just paper (1997) (16)
- Adding the Everywhere Operator to Propositional Logic (1996) (16)
- Foundations for Calculational Logic (1997) (15)
- Improving the curriculum through the teaching of calculation and discrimination (1991) (15)
- What Have We Not Learned about Teaching Programming? (2006) (15)
- An introduction to programming: A structured approach using PL/1 and PL/C (1973) (13)
- Trace-based network proof systems: expressiveness and completeness (1987) (13)
- The 1985-1986 Taulbee survey (1987) (13)
- Developing a Linear Algorithm for Cubing a Cyclic Permutation (1988) (12)
- The ALCOR Illinois 7090/7094 post mortem dump (1967) (12)
- Programming Concepts and Methods PROCOMET ’98 (1998) (12)
- Controlled Density Sorting (1980) (12)
- Frames and folders: a teachable memory model for Java (2002) (12)
- Current Ideas in Programming Methodology (1976) (11)
- The 1988-89 Taulbee Survey Report (1989) (11)
- The 1986-1987 Taulbee survey (1988) (11)
- K-M-P String Matching Revisited (1997) (10)
- The 1987—1988 Taulbee survey (1989) (10)
- The 1984-85 Taulbee Survey (1986) (10)
- The 1988 snowbird report: a discipline matures (1989) (10)
- Binary to decimal, one more time (1990) (10)
- Data Refinement and the Transform (1996) (10)
- Some Results on Fields of Values of a Matrix (1967) (10)
- In-situ Inversion of a Cyclic Permutation (1987) (10)
- A new look for intelligence (1995) (9)
- Imbalance Between Growth and Funding in Academic Computing Science: Two Trends Colliding (1986) (9)
- Imbalance Between Growth and Funding in Academic Computer Science: Two Trends Colliding (1986) (9)
- Instructor's manual: a logical approach to discrete math (1993) (9)
- Formalizations Of Substitution Of Equals For Equals (1998) (9)
- The maximum-segment-sum problem (1989) (9)
- Behavior: A Temporal Approach to Process Modelling (1985) (9)
- Programming in Modula-2 (4th ed) (1989) (9)
- Error Recovery and Correction - An Introduction to the Literature (1976) (9)
- Audio formatting—Making spoken text and math comprehensible (1995) (9)
- Educating the Programmer: Notation, Proofs and the Development of Programs (1980) (8)
- A New Approach to Teaching Mathematics (1994) (8)
- The 1984-1985 Taulbee survey (1986) (8)
- The Hopcroft-Tarjan Planarity Algorithm, Presentation and Improvements (1988) (7)
- Sorting and Searching Using Controlled Density Arrays (1978) (7)
- Programming by Induction (1972) (7)
- Interactive audio documents (1994) (6)
- Equational Logic as a Tool (1995) (6)
- ACM SIGPLAN history of programming languages conference ALGOL 60 language summary (1978) (6)
- Influences (or lack thereof) of formalism in teaching programming and software engineering (1989) (6)
- McLaren's Masterpiece (1987) (6)
- The 1988-89 Taulbee survey report (education) (1990) (5)
- Monotonicity in Calculational Proofs (1999) (5)
- Recursion as a Programming Tool (1975) (5)
- Recommendations for changes in advanced placement computer science (panel session) (2000) (5)
- The Seven-Eleven Problem (1983) (5)
- A hands-in-the pocket presentation of a k -majority vote algorithm (1989) (5)
- The 1986-7 Taulbee survey (computer science graduates, employment survey) (1988) (5)
- Informatics curricula for the 1990s (1991) (3)
- Discrete mathematics/structures: how do we deal with the late appreciation problem? (2009) (3)
- A Procedure Call Proof Rule (With a Simple Explanation) (1979) (3)
- An Algorithm for Processing Program Transformations (1993) (3)
- Assignment to Subscripted Variables (1977) (3)
- User's manual for the ALCØR-ILLINØIS-7090 ALGØL-60 translator, University of Illinois, 2nd edition (1964) (3)
- AP CS goes OO (2001) (3)
- What Have We Not Learned about Teaching Programming? (2006) (3)
- Teaching Math More Effectively, Through the Design of Calculational Proofs (1994) (3)
- Introduction to structured programming, using PL/I and SP/k (1977) (2)
- Presenting an Algorithm to Find the Minimum Edit Distance (1988) (2)
- A Proof Correctness of Rem''s Semaphore Implementation of the With-When Statement (1977) (2)
- A primer on structured programming using PL/I, PL/C, and PL/CT (1976) (2)
- Avoiding the Undeened by Underspeciication (1995) (2)
- An Introduction to Proofs of Program Correctness for Teachers of College-Level Introductory Programming Courses (1990) (2)
- Opening up secret intelligence (1993) (2)
- Notational abbreviations applied to the syntax of ALGOL (1968) (2)
- Noise Control Solutions For Standby Power Generators (2004) (2)
- Correction to "An Illustration of Current Ideas on the Derivation of Correctness Proofs and Correct Programs" (1977) (2)
- Tactic-Based Modeling of Cognitive Inference on Logically Structured Notation (2000) (2)
- ProgramLive - master Java programming in a dynamic, self-paced learning environment (2002) (2)
- Formal Justification of Underspecification for S5 (1997) (2)
- Multimedia introduction to programming using Java (2004) (2)
- Audio formatting—Making spoken text and math comprehensible (1997) (2)
- The 1987-8 Taulbee Survey report (1989) (2)
- Basic Axiomatic Definitions (1978) (2)
- A calculational proof of Andrews''s challenge (1996) (2)
- Some ideas on data types in high-level languages (1976) (1)
- 1988 Snowbird report: a discipline matures [computer science education] (1989) (1)
- Type Definitions in Polya (1990) (1)
- Constant-space Quicksort (1994) (1)
- Horner's Rule and the Computation of Linear Recurrences (1987) (1)
- A twenty year retrospective of the NATO software engineering conferences (panel session): my thoughts on software engineering in the late 1960s (1989) (1)
- Declarations and Types (1980) (1)
- Some Comments on Programming Language Design (1976) (1)
- Are formal methods useful for software development? (1992) (1)
- Equational Logic: A Great Pedagogical Tool for Teaching a Skill in Logic (1995) (1)
- Teaching calculational logic (1998) (1)
- The mathematics of programming and why we should teach it (2004) (1)
- A Theory of Sequences (1993) (1)
- Panel discussion on structured programming (1974) (1)
- Problems with CS education (2002) (1)
- Audio formatting — presenting structured information aurally (1995) (1)
- Programming as a Goal-Oriented Activity (1981) (1)
- A NOTE ON GRAHAM'S COT\IVEX HULL ALGORITHM (1986) (1)
- Loop invariant (2003) (1)
- Eliminating the Chaff—Again Banquet Speech at Marktoberdorf 1996 (1997) (1)
- CIL: Compiler Implementation Language (1969) (1)
- Lectures on Data Refinement (1992) (1)
- From the Editors of this special issue (2001) (1)
- The Predicate Transformer wp (1981) (1)
- Programming concepts and methods : PROCOMET '98 : IFIP TC2/WG2.2, 2.3 International Conference on Programming Concepts and Methods (PROCOMET '98), 8-12 June 1998, Shelter Island, New York, USA (1998) (1)
- On Progress in Programming (1991) (1)
- Teaching program development (2005) (0)
- Instilling Professionalism in Software Engineers (1990) (0)
- IPL expands coverage of distributed and parallel processing (1989) (0)
- Reasoning using Equivalence Transformations (1981) (0)
- The Iterative Command (1981) (0)
- Letters to the Editor (1984) (0)
- The 1990-91 Taulbee survey report (computer science education) (1992) (0)
- A Note on Iteration (1977) (0)
- The Origins of Digital Computers (1973) (0)
- Models for Re-Use (1987) (0)
- Parallel Programming (1978) (0)
- Development of Correct Programs (2022) (0)
- Letter to Dr. Susan Gerhart: comments on two book reviews (1982) (0)
- On the Design and *mplementation of a Wafer Editor (0)
- Relations and Functions (1993) (0)
- Computer Programs for Spelling Correction: An Experiment in Program Design (1980) (0)
- Teaching Logic as a Tool (1994) (0)
- A Conversation with Richard W. Conway (2015) (0)
- Predicates and Programming (1993) (0)
- Eliminating the chaff (1978) (0)
- Hilbert-style Proofs (1993) (0)
- THE ALOOR ILLINOIS 7090/94 POST MORTEM DUMP. (1967) (0)
- Formalizations of Substitution of Equals for Equals Substitution of Equals for Equals: If S Results from R by Substitution of Q For (1998) (0)
- Computer science funding. (1985) (0)
- A Conversation with Tim Teitelbaum (2015) (0)
- Multimedia introduction to programming using Java : programlive CD-ROM included (2005) (0)
- Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods (1998) (0)
- Using Iteration Instead of Recursion (1981) (0)
- Cand and Cor Before and Then or Else in Ada (1979) (0)
- A Theory of Integers (1993) (0)
- The Alternative Command (1981) (0)
- Position Statement on the Foundations of Software Engineering (1989) (0)
- The Commands skip, abort and Composition (1981) (0)
- Why Use Logic? Why Prove Programs Correct? (1981) (0)
- A Conversation with Anil Nerode (2014) (0)
- Representation Specifications and Implementation Dependent Features (1980) (0)
- Silence is golden (2005) (0)
- A Conversation with John E. Hopcroft (2015) (0)
- A Conversation with David Gries (2015) (0)
- On Presenting Monotonicity and On EA=>AE (1995) (0)
- Two Larger Examples of Program Development (1981) (0)
- Chapter 1 Constant-space Quicksort (2009) (0)
- Domain-Specific Software Architectures : Distributec Intelligent Control and Communication (0)
- A Natural Deduction System (1981) (0)
- 7 Observations on Early Experiences 6 Innovative Instructional Methods 5 Course Work and Laboratories 3 the Object-oriented Approach and Software Reuse 2 Inadequacies of Existing Curricula Integrating Object-oriented Software Engineering in the Computer Science Curriculum ? (1992) (0)
- Notations and Conventions for Arrays (1981) (0)
- Programming Methodology (2003) (0)
- The Assignment Command (1981) (0)
- What Programmers Don't and Should Know (1987) (0)
- Computer science-Ph.d statistics (2003) (0)
- 4 Results and Conclusions (0)
- Proofs, programs and their development — The axiomatic approach (1979) (0)
- Using Assertions To Document Programs (1981) (0)
- Applications of Propositional Calculus (1993) (0)
- Developing Loops from Invariants and Bounds (1981) (0)
- The 1986-1987 Taulbee Survey Report: The Computing Research Board''s Survey on the Production and Employment of Ph.D.''s and Faculty in Computer Science and Engineering (1988) (0)
- A Conversation with Fred Schneider (2015) (0)
- STUDY OF PSA AS VIBRATION DAMPING LAYER (2016) (0)
- A Note on Program Development (1974) (0)
- Program Structure and Compilation Issues (1980) (0)
- Describing an Algorith m by Hopcroft (1973) (0)
- Counting sort Ó (2018) (0)
- Relaxing the Proof Style (1993) (0)
- Representation clauses and implementation-dependent features (1983) (0)
- How to solve it by computer : R.G. Dromy. Prentice-Hall International Inc., London, 1982, 464 pp. (1983) (0)
- Making a Science Out of an Art (2013) (0)
- Notes on Bound Functions (1981) (0)
- Teaching as a logic tool (abstract) (1995) (0)
- Notes on Documentation (1981) (0)
- Reflections on Edsger and His Influence (2022) (0)
- Complete, Trace-based, Network Proof Systems: An Advisor's Perspective (1987) (0)
- Generic Program Units (1980) (0)
- Textual Substitution, Equality, and Assignment (1993) (0)
- Developing Two of Arsac's Funny Algorithms (1985) (0)
- CONPAR 81 : Conference on Analysing Problem Classes and Programming for Parallel Computing, Nürnberg, June 10-12, 1981 : proceedings (1981) (0)
- A Conversation with Robert L. Constable (2015) (0)
- Dijktra's Shortest Path Algorithm (2008) (0)
- Compcon77 Fall (1977) (0)
- MPL: Mathematical Programming Language (1968) (0)
- Formal versus semiformal proof in teaching predicate logic (1996) (0)
- The 711 Problem (1982) (0)
This paper list is powered by the following services:
Other Resources About David Gries
What Schools Are Affiliated With David Gries?
David Gries is affiliated with the following schools: