Live briefing
Everything about How to Design Programs
Computer programming textbook by Matthias Felleisen and colleagues
How to Design Programs (HtDP) is a textbook by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi on the systematic design of computer programs. MIT Press published the first edition in 2001 and the second edition in 2018. In addition to the for-purchase paperback, it is also freely available online. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: How to Design ProgramsA 5-minute orientation
- Skim a recent paper: How Do Curricular Design Changes Impact Computer Science Programs?: A Case Study at San Pablo Catholic University in PeruInfluential work since 2022
- Pick up a classic book: C How to ProgramThe most-reprinted book on the subject
- Read the landmark paper: Competing with loyalty: How to design successful customer loyalty reward programsCited 58 times
- Go sideways: Racket (programming language)A closely related topic
- Go sideways: ProgramByDesignA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Competing with loyalty: How to design successful customer loyalty reward programs
How to design co-programs
How computer graphing programs change the graph design process
How to Design and Apply Interactive Digital Educational TV Programs Based on the ADDIE Model
On teaching *how to design programs*
How Cryptocurrency Could Improve Basic Income Programs: A Design Science Research Approach
How to Do Corporate Volunteering Right – Investigating the Optimal Design of Volunteering Programs
Education programs: Inquiring student minds want to know how fuel cells work, and how to design them better
🆕 Influential since 2022
How Do Curricular Design Changes Impact Computer Science Programs?: A Case Study at San Pablo Catholic University in Peru
UNCOVERING THE POWER OF WEBSITE DESIGN AND PRODUCT PHOTOS: HOW FLASH SALES PROGRAMS SHAPE PURCHASING DECISIONS
The Cultivation of Novice Teachers: How Administrators Design, Support, and Evaluate Induction Programs in Rural Schools
How TV Programs of Home Design Attract the Audience -- Case Studies of Changing Room, New Home, and Design Rules
How Would You Do it? Using Community Cafes to Inform Co-Design of Community Response Programs?
📚 Books worth reading
C How to ProgramPaul J. Deitel, Harvey M. Deitel · 2007
Learning PythonMark Lutz, David Ascher · 1999
Research DesignJohn W. Creswell, J. David Creswell · 1994
Invitation to Computer ScienceG. Michael Schneider, Judith L. Gersting · 1995
Java how to programPaul J. Deitel, Harvey M. Deitel · 2005
Structure and Interpretation of Computer Programs (SICP)Harold Abelson, Gerald Jay Sussman · 1985
Design PatternsErich Gamma, John Vlissides · 1995
Think PythonAllen B. Downey, Allen Downey · 2009
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Racket (programming language) Racket is a general-purpose, multi-paradigm programming language. The Racket language is a modern dialect of Lisp and a descendant of Scheme. It is designed…
- ProgramByDesign The ProgramByDesign (formerly TeachScheme!) project is an outreach effort of the PLT research group. The goal is to train college faculty, high school…
- Structure and Interpretation of Computer Programs Structure and Interpretation of Computer Programs (SICP) is a computer science textbook by Massachusetts Institute of Technology professors Harold Abelson…
- Essentials of Programming Languages Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. EOPL…
- Matthias Felleisen Matthias Felleisen is a German-American computer science professor and author. He grew up in Germany and immigrated to the US in his twenties. He received…
- Matthew Flatt Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of…
- Language-oriented programming Language-oriented programming (LOP) is a software-development paradigm where "language" is a software building block with the same status as objects, modules…
- Expression problem The expression problem is a problem in programming languages that concerns the extensibility and modularity of statically typed data abstractions. The…