Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of The Science of Programming

    The Science of Programming

    David Gries · 1989

    Describes basic programming principles and their step-by- step applications.Numerous examples are included.

    Programming
    Open LibraryAmazon
    Stats for nerds
    9recommend
    15mentions
    13people
    2009–2024years
    60% recommend40% neutral

    Mentions per year

    200920112013201520172019202120232024

    What Hacker News says

    1. steppiApr 2024
      Check out The Science of Programming Matrix Computations by Robert A. van de Geijn and Enrique S. Quintana-Ort. Chapter 5 walks through how to write an optimized GEMM. It involves clever use of block multiplication, choosing block sizes for optimal cache behavior for specific chips. Modern compilers just aren't able to do such things now. I've spent a little time debugging things in scipy.linalg by swapping out OpenBLAS with reference BLAS and have found the slowdown from using reference BLAS is typically at least an order of magnitude.

      [0] https://www.cs.utexas.edu/users/rvdg/tmp/TSoPMC.pdf

      thread
    2. jonsenMar 2022
      If interested in a comprehensive treatment of this kind of imperative program design: The Science of Programming by David Gries.
      thread
    3. noriudayJul 2020
      1) "The Science of Programming", by David Gries, is an excellent book dealing with mathematical proof based approach to programming.

      2) "The Book of Numbers", by John H. Conway and Richard Guy is a beautiful book which discusses about figurative numbers amoung several other beautiful topics.

      3) "Stories About Maxima and Minima", V. M. Tikhomirov has some beautiful anecdotes and interesting applications of calculus.

      4) "Contemporary Abstract Algebra", by Joseph Gallian is an algebra textbook that goes beyond just teaching material. It has quotations, biographies, puzzles and interesting applications of algebra.

      thread
    4. streetcat1Feb 2020
      You might also want to check out

      David Gries, the science of programming:

      https://www.springer.com/gp/book/9780387964805

      thread
    5. todd8Aug 2017
      My daughter's first class in programming used this book. She really liked the class and still has a fondness for Scheme, although her subsequent programming classes have used Java.

      I took a look at the online second edition (and I happen to have a hard copy of the first edition in my library). I like the book and believe that it is one of the best books I've seen for teaching a beginner to program. The subjects covered are non-trivial, but the book gets the students there in a well paced presentation. The book emphasizes the importance of breaking down problems into well defined parts, defining the interfaces, and implementing each part as a function that satisfies the desired contract.

      If you are an experienced programmer, I believe that your time would be better spent on a book that is less oriented around teaching the basic steps that you already know. Books that I can recommend to experienced programmers interested in advanced subjects in programming:

      1) Structure and Interpretation of Computer Programs, 2ed., by Harold Abelson, Gerald Jay Sussman, Julie Sussman. This book will teach you how to program in Scheme, and you will learn much more than just the syntax. I would consider this to be a very demanding book for a complete beginner. Available online: https://mitpress.mit.edu/sicp/full-text/book/book.html

      2) The Science of Programming (1981), by David Gries. This book and the smaller, but equally difficult monograph The Discipline of Programming (1976), by Dijkstra are great books but too hard and mathematical for many readers. They focus on verifying the correctness of programs and introduce a formalism that shows how the logical effects of each program statement can be combined to prove that the program satisfies its specification. There are practical limitations not addressed by these early expositions on program correctness, but the techniques covered can be applied by hand and I've often used them on especially troubling passages of code that I wanted to make sure were correct. If you are up for it these books will introduce new ways of thinking about your code. I'd advise taking a peek at the books before buying to make sure it will be worth the investment; it definitely was for me.

      3) Learn You a Haskell for Great Good!, by Miran Lipovaca. Like learning Scheme, learning Haskell will teach you about a new way of thinking about programming. This is a nice introduction to the language. Even though I'm still trying to learn Haskell, this book was my favorite of all my books on Haskell (I've got all of the ones written in English). Learn Haskell to understand where researchers are exploring the possible futures of programming. This book is also available online: http://learnyouahaskell.com

      4) Algorithms + Data Structures = Programs (1976), by Niklaus Wirth. This book is far easier on the reader than the ones I've listed above; I've included this book because it is just a fun read for any programmer. It's old and uses Pascal, but it still a great book on programming that introduces a number of algorithms and data structures. It's available used for reasonable prices: https://www.amazon.com/Algorithms-Structures-Prentice-Hall-A.... For a more advanced introduction to data structures I suggest MIT's Open Courseware videos taught by Professor Erik Demaine, https://ocw.mit.edu/courses/electrical-engineering-and-compu...

      thread
    6. contravariantDec 2016
      The book 'The science of programming' of David Gries is also a nice introduction to writing programs using mathematical logic and reasoning. The book is inspired by the techniques of Dijkstra and Hoare, and written in a way that's easy to follow.
      thread

    Related

    Cover of Computer lib
    2008–2026

    Computer lib

    Ted Nelson
    10 recommend · 41
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of Essentials of programming languages
    2008–2026

    Essentials of programming languages

    Daniel P. Friedman
    43 recommend · 76
    Cover of A discipline of programming
    2009–2025

    A discipline of programming

    Edsger Wybe Dijkstra
    16 recommend · 51
    Cover of Programming from the Ground Up
    2009–2026

    Programming from the Ground Up

    Jonathan Bartlett
    36 recommend · 56
    Cover of Concepts, techniques, and models of computer programming
    2007–2026

    Concepts, techniques, and models of computer programming

    Peter Van Roy
    70 recommend · 133
    Cover of Programming Language Pragmatics
    2008–2026

    Programming Language Pragmatics

    Michael L. Scott
    31 recommend · 54
    Cover of Modern compiler design
    2008–2026

    Modern compiler design

    Dick Grune
    12 recommend · 30