Processing ......
Links to Free Computer, Mathematics, Technical Books all over the World
How to Design Programs: An Introduction to Programming and Computing
GIS Visualizer - Geographic Data Visualized on 40+ Maps! Click here for details.
  • Title How to Design Programs: An Introduction to Programming and Computing
  • Author(s) Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
  • Publisher: The MIT Press; 2nd edition (May 4, 2018); eBook (Creative Commons Licensed, February 9th, 2022)
  • License(s): CC BY-NC-ND
  • Hardcover/Paperback 792 pages
  • eBook HTML and PDF (981 pages)
  • Language: English
  • ISBN-10: 0262534800 / 0262062186 (1st edition)
  • ISBN-13: 978-0262534802 / 978-0262062183 (1st edition)
  • Share This:  

Book Description

This second edition has been completely revised. While the book continues to teach a systematic approach to program design, the second edition introduces different design recipes for interactive programs with graphical interfaces and batch programs. It also enriches its design recipes for functions with numerous new hints. Finally, the teaching languages and their IDE now come with support for images as plain values, testing, event-driven programming, and even distributed programming.

This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it.

Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language.

For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks.

About the Authors
  • Matthias Felleisen is a German-American computer science professor and author. He is currently a Trustee Professor in the Khoury College of Computer Sciences at Northeastern University in Boston, Massachusetts.
  • Shriram Krishnamurthi is a computer scientist, currently a professor of computer science at Brown University and a member of the core development group for the Racket programming languages, responsible for the creation of software packages including the Debugger, the FrTime package, and the networking library.
Reviews, Ratings, and Recommendations: Related Book Categories: Read and Download Links: Similar Books:
  • Structure and Interpretation of Computer Programs using JavaScript

    This book introduces the reader to central ideas of computation by establishing a series of mental models for computation. It has had a dramatic impact on computer science curricula over the past decades. Examples are implemented using the JavaScript.

  • The Black Art of Programming (Mark McIlroy)

    This book is an introduction to computer programming. It covers the essential information of a Computer Science course. It is recommended for beginners and intermediate programmers.

  • Concepts, Techniques, and Models of Computer Programming

    This innovative book presents computer programming as a unified discipline in a way that is both practical and scientifically sound. The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine.

  • How to Design Classes (Matthias Felleisen, et al)

    This book shows students how object-oriented programming languages such as C++, C#, and Java support this effort with syntactic constructs. They also refine the program design discipline.

  • Exploratory Programming for the Arts and Humanities

    This book introduces programming to readers involved with the arts and humanities; there are no prerequisites, and no previous knowledge of programming is assumed. It reveals programming can also be a tool for sketching, brainstorming, and inquiry.

  • Programming Fundamentals - A Modular Structured Approach

    This book is an introduction to computer programming using any of a variety of programming languages, including C++, C#, Java, JavaScript, Python, and Swift, for writing programmes, and to solid, fundamental programming principles.

  • A Practical Theory of Programming (Eric C.R. Hehner)

    This book explores aspects of programming that are amenable to mathematical proof. The author describes a programming theory which is much simpler and more comprehensive than the current theories to date.

  • Learn Programming: Tour Through the Programming Jungle

    This book is aimed at readers who are interested in software development but have very little to no prior experience. The book focuses on teaching the core principles around software development.

  • Your First Year in Code: For New and Aspiring Developers

    Starting a career in programming can be intimidating. This book can help, with practical advice on topics like code reviews, resume writing, fitting in, ethics, and finding your dream job.

  • Patterns for Beginning Programmers (David Bernstein)

    Programming patterns are solutions to problems that require the creation of a small fragment of code that will be part of a larger program. Hence, this book is about teaching you how to write such fragments of code.

  • The Recursive Book of Recursion (Al Sweigart)

    Recursion has an intimidating reputation. This book uses Python and JavaScript examples to teach the basics of recursion, exposing the ways that it's often poorly taught and clarifying the fundamental principles of all recursive algorithms.

  • Elements of Programming (Alexander Stepanov, et al)

    The book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation algorithm is defined to work with any associative operation.

  • Software Design for Flexibility: Avoid Programming into a Corner

    This book describes techniques they have found effective--over their combined 100-plus years of programming experience--that will help programmers avoid programming themselves into corners.

Book Categories
Other Categories
Resources and Links