📖 Overview
Matthias Felleisen is a prominent German-American computer scientist known for his significant contributions to programming language theory and computer science education. He holds the position of Trustee Professor at Northeastern University's Khoury College of Computer Sciences, following a 14-year tenure at Rice University.
Felleisen founded PLT, a research group focused on programming language theory and implementation. His technical contributions include work on operational semantics, type safety, continuations, and gradual typing. He developed the A-normal form, which has become an important concept in programming language implementation.
In the educational sphere, Felleisen initiated the TeachScheme! project (later known as ProgramByDesign), which evolved into the Bootstrap project. His influential book "How to Design Programs," co-authored with colleagues, has shaped how programming is taught to beginners. His work has earned him several honors, including the ACM Karl V. Karlstrom Award and recognition as an ACM Fellow.
The programming languages community particularly values Felleisen's work on Scheme and Racket. These implementations have served both as research vehicles and educational tools, demonstrating his ability to bridge theoretical computer science with practical applications.
👀 Reviews
Readers consistently praise Felleisen's technical precision and systematic approach to teaching programming concepts. His book "How to Design Programs" (HtDP) receives particular attention for its methodical introduction to software design principles.
Liked:
- Clear progression from basic to advanced concepts
- Strong focus on problem-solving methodology
- Practical exercises that reinforce learning
- Language-agnostic principles that transfer across platforms
Disliked:
- Dense technical writing style
- Pace too slow for experienced programmers
- Use of Racket/Scheme as teaching languages instead of more mainstream options
- Some find exercises overly academic rather than industry-focused
Ratings across platforms:
Goodreads: 4.2/5 (HtDP)
Amazon: 4.4/5 (HtDP)
One reader notes: "The systematic design recipes transformed how I approach programming problems." Another comments: "Would be better if it used Python or Java instead of Racket - harder to apply professionally."
Key criticism focuses on accessibility: "Great content but requires significant commitment to work through the material."
📚 Books by Matthias Felleisen
How to Design Programs
A systematic approach to program design that teaches beginners how to compose programs by following a step-by-step design recipe, using the Racket programming language.
A Little Java, A Few Patterns An introduction to object-oriented programming and design patterns using Java, emphasizing structural recursion and composition.
The Little Schemer A dialogue-style text that teaches recursive programming techniques through a series of questions and answers using the Scheme programming language.
The Seasoned Schemer A continuation of The Little Schemer that explores advanced topics in Scheme programming including side effects and continuations.
The Little MLer An introduction to ML programming and type systems using the same question-answer format as The Little Schemer series.
The Little Prover A guide to mathematical reasoning and theorem proving using the ACL2 system, following the style of The Little Schemer series.
The Reasoned Schemer An exploration of logic programming in Scheme using miniKanren, presented in the distinctive dialogue format of The Little Schemer series.
A Little Java, A Few Patterns An introduction to object-oriented programming and design patterns using Java, emphasizing structural recursion and composition.
The Little Schemer A dialogue-style text that teaches recursive programming techniques through a series of questions and answers using the Scheme programming language.
The Seasoned Schemer A continuation of The Little Schemer that explores advanced topics in Scheme programming including side effects and continuations.
The Little MLer An introduction to ML programming and type systems using the same question-answer format as The Little Schemer series.
The Little Prover A guide to mathematical reasoning and theorem proving using the ACL2 system, following the style of The Little Schemer series.
The Reasoned Schemer An exploration of logic programming in Scheme using miniKanren, presented in the distinctive dialogue format of The Little Schemer series.
👥 Similar authors
Daniel P. Friedman - Author of "The Little Schemer" and other books in the Schemer series that teach functional programming concepts through dialogue. His work on Scheme and teaching programming shares similarities with Felleisen's educational approach.
Gerald Jay Sussman - Co-author of "Structure and Interpretation of Computer Programs" which revolutionized computer science education using Scheme. His focus on fundamental programming concepts and educational methodology aligns with Felleisen's teaching philosophy.
Robert Harper - Computer scientist known for work on type theory and programming language foundations including "Practical Foundations for Programming Languages." His research on type systems and programming language theory complements Felleisen's theoretical contributions.
Benjamin Pierce - Author of "Types and Programming Languages" and researcher in programming language theory and type systems. His work on type systems and formal methods parallels Felleisen's research interests.
Shriram Krishnamurthi - Co-author with Felleisen on several works and author of "Programming Languages: Application and Interpretation." His research on programming languages and software engineering builds upon similar foundations as Felleisen's work.
Gerald Jay Sussman - Co-author of "Structure and Interpretation of Computer Programs" which revolutionized computer science education using Scheme. His focus on fundamental programming concepts and educational methodology aligns with Felleisen's teaching philosophy.
Robert Harper - Computer scientist known for work on type theory and programming language foundations including "Practical Foundations for Programming Languages." His research on type systems and programming language theory complements Felleisen's theoretical contributions.
Benjamin Pierce - Author of "Types and Programming Languages" and researcher in programming language theory and type systems. His work on type systems and formal methods parallels Felleisen's research interests.
Shriram Krishnamurthi - Co-author with Felleisen on several works and author of "Programming Languages: Application and Interpretation." His research on programming languages and software engineering builds upon similar foundations as Felleisen's work.