How to Design Programs: An Introduction to Programming and Computing (Matthias Felleisen, et al)

0.0 (0)
How to Design Programs: An Introduction to Programming and Computing (Matthias Felleisen, et al)

This second edition has undergone a thorough revision. The second edition introduces many design recipes for interactive programs with graphical user interfaces and batch processes, although the book still teaches a methodical approach to program design.

It also adds various new clues to its design recipes for functionalities. Finally, testing, event-driven programming, images as plain values, and even distributed programming are now supported by the teaching languages and their IDE.

The foundation of a liberal arts education is computer science, which is emphasized in this introduction to programming. It concentrates on the program design process, as opposed to other beginning publications, and provides program design principles that demonstrate to the reader how to assess a problem statement, set clear goals, create examples, create an outline of the solution, complete the program, and test it.

The work does not employ an off-the-shelf industrial language but rather delivers a tailored instructional language because learning to create programs is about the study of concepts and the acquisition of transferrable skills.

It also provides DrRacket, a programming environment for beginners that encourages interactive, feedback-focused learning, for the same reason. As readers gain mastery of the information in the book, the environment develops alongside them until it can support a full-fledged language for the complete range of programming jobs.

Ebook Details

About the Authors
  • German-American author and professor of computer science, Matthias Felleisen. He is currently a Trustee Professor at Northeastern University in Boston, Massachusetts, in the Khoury College of Computer Sciences.
  • A member of the core development team for the Racket programming languages, Shriram Krishnamurthi is a computer scientist who teaches computer science at Brown University. He is also in charge of developing software packages like the Debugger, the FrTime package, and the networking library.
Published Date / Year
2nd edition (May 4, 2018); eBook (Creative Commons Licensed, February 9th, 2022)
792 pages
eBook Format
HTML and PDF (981 pages)
0262534800 / 0262062186 (1st edition)
978-0262534802 / 978-0262062183 (1st edition)

Similar Programming & Computer Books

Apprendre l'informatique sans ordinateur - Learn computer science without a computer
In this free programming book, the author describes how to Learn computer science without a computer.  
UML For The IT Business Analyst (Howard Podeswa)
Information technology business analysts are frequently involved in OO and UML projects nowadays, but they still have a ways to go before fully utilizing the technology beyond use cases...
UML Process (Sharam Hekmat)
Using object technology, the UML Procedure is a standardized process for creating software systems. This document's goal is to define the UML Process at a level appropriate for practitioners...
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design (Craig Larman)
This book provides a clear and useful introduction to using objects to think about and build systems that are well-built, reliable, and maintained. ...
UML Tutorial (Tutorialspoint)
Essential competencies for beginning programmers! Unified Modeling Language principles are explained in this user-friendly book (UML).  
Dictionary of Programming Languages (Neal Ziring)
The Dictionary of Programming Languages is an online reference guide to computer coding techniques put together to educate and enhance your understanding of computer science history. Over 120 words...
Game Programming in Haskell (Elise Huard, et al)
Predictably, Game Programming in Haskell provides an introduction to creating games in the language.  
Programming XML with C# (Mahesh Chand)
This free programming book is created in the style of a step-by-step tutorial and is intended for students and beginners who want to learn XML programming in the C#...
Programming C# for Beginners (Mahesh Chand)
Beginners and students who want to learn C# programming should read this free programming book. The C# language, including versions 1.0, 2.0, and 3.0, is covered in this pdf...
Principles, Patterns and Practices of Domain-Driven Design (Scott Millett)
For experienced developers creating applications for complicated domains, this book offers the Domain Driven Design (DDD) methodology in an approachable and useful manner.

Others Programming Books by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi

Programming and Programming Languages (Shriram Krishnamurthi)
Many readers would consider this to be a cohesive, two-book work. One book serves as an introduction to programming, laying out the fundamental ideas behind how to organize data...
How to Design Classes (Matthias Felleisen, et al)
The authors' approach is centered on classes and how they are designed. They demonstrate to students in this volume how syntactic constructs in object-oriented programming languages like C++, C#,...
Programming Languages: Application and Interpretation (S. Krishnamurthi)
This book combines two methods for teaching programming languages: one that revolves on conducting a language survey and the other that revolves around creating definitional interpreters. ...

Others Programming Books by The MIT Press

Cellular: An Economic and Business History of the International Mobile-Phone Industry (Daniel D. Garcia-Swartz, et al)
From the late 1970s to the present, charts the development of the global cellular industry. It took exceptional collaboration between businesses, governments, and industrial sectors for the mobile phone...
The Ecology of Games: Connecting Youth, Games, and Learning (Katie Salen)
Little has been published on an overall "ecology" of gaming, game design, and play - mapping the ways that all the various elements, from code to social practices to...
Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist (Andrea Asperti, et al)
This free programming book offers an accessible introduction to category theory for computer scientists as well as useful examples in the context of programming language design. In "Categories, Types...
Sheaf Theory through Examples (Daniel Rosiak)
This free programming book offers a clear introduction to elementary sheaf theory from the standpoint of applied category theory and explores several applications, such as n-colorings of graphs, satellite...
Wandering Games (Melissa Kagen)
Games may use wandering as a topic, formal style, metaphor for aesthetics, or player action. It can refer to moving forward, moving backward, traveling, meandering, or escaping. ...
Probabilistic Machine Learning: Advanced Topics (Kevin Patrick Murphy)
In this book, we broaden the use of machine learning to more difficult issues.
Introduction to Online Convex Optimization (Elad Hazan)
In this book, optimization is portrayed as a procedure. It is not realistic to draw out a thorough theoretical model and utilize traditional algorithmic theory and/or mathematical optimization in...
Statistical Mechanics of Lattice Systems: A Concrete Mathematical Introduction (Sacha Friedli, et al)
Using a variety of specific models, such as the Curie-Weiss and Ising models, the Gaussian free field, O(n) models, and models with Ka interactions, this inspiring textbook provides a...
Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (Chris Hanson, et al)
Techniques for designing huge systems that are easily reconfigurable for different scenarios with very modest programming changes.
Global Fintech: Financial Innovation in the Connected World (David L. Shrier, et al.)
The global financial services industry has been completely transformed by artificial intelligence, big data, blockchain, and other new technologies, opening up new prospects for business owners and corporate innovators....
Structure and Interpretation of Computer Programs, JavaScript Edition (Harold Abelson, et al.)
By building a number of mental models for computation, this book introduces the reader to the fundamental concepts of computation.
The New Hacker's Dictionary (The Jargon File) by Eric S. Raymond
This page includes a glossary of terminology used by various computer hacker subcultures. What we describe here is the language hackers use among themselves for amusement, social contact, and...
Algorithms for Decision Making (Mykel Kochenderfer, et al)
In this book, algorithms for making decisions in the face of uncertainty are introduced in great detail. It introduces the underlying mathematical problem formulations and the strategies for addressing...
Machine Learning: A Probabilistic Perspective (Kevin Patrick Murphy)
Automated data analysis techniques are necessary given the Web-enabled flood of electronic data we face today. These are provided by machine learning, which creates techniques that can automatically find...
Exploratory Programming for the Arts and Humanities (Nick Montfort)
There are no prerequisites or assuming prior programming experience in this book, which introduces programming to readers interested in the arts and humanities.
The Constitution of Algorithms: Ground-Truthing, Programming, Formulating (Florian Jaton)
The technologies we use every day are powered by algorithms, which are sometimes used interchangeably with words like "big data," "machine learning," and "artificial intelligence." Arguments concerning the real...
Linguistics for the Age of AI (Marjorie McShane, et al)
This book presents a model of language understanding for intelligent agent systems that is human-inspired and linguistically complex.
Probabilistic Machine Learning: An Introduction (Kevin Patrick Murphy)
Using probabilistic models and inference as a unifying strategy, this book provides a thorough introduction to machine learning.
How Humans Judge Machines (Cesar A. Hidalgo, et al)
A thorough analysis of how individuals respond to human activities versus machine actions. This book investigates when and why people differentiate between humans and machines through dozens of tests....
Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant (Adam Chlipala)
Many different computer science research endeavors can benefit from the use of mechanized program verification technologies, and the use of similar formal proof-checking tools in mathematics and engineering is...

User reviews

There are no user reviews for this listing.
Rate this Book