How to Design Programs, second edition: An Introduction to Programming and Computing by Matthias Felleisen (PDF)

6

 

Ebook Info

  • Published: 2018
  • Number of pages: 1077 pages
  • Format: PDF
  • File Size: 25.77 MB
  • Authors: Matthias Felleisen

Description

A completely revised edition, offering new design recipes for interactive programs and 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.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.

User’s Reviews

Reviews from Amazon users which were colected at the time this book was published on the website:

⭐There is a very recent book called software and mind (

⭐) which lashes out for nearly 1,000 pages at current software and programming education as mind-numbing, rote, and not fit for the human brain, let alone spirit. Anyone who has coded with the “wash on wash off” method knows what the point is.These authors get that, and more. They take the time to describe how memorization destroys the human spirit, let alone the will to go on in programming! A majority of other programming books do what both books warn about: kill the will to go on with just awful tedium. “Learning” data structures, commands, rote algorithms, etc. is about as fun as watching an apple rot.This fine text, still not outdated and a gem, created the DrScheme language out of Scheme (a Lisp descendant functional paradigm language) especially for beginning programmers. The book and online web support (still active in late 2013) include a custom SDK/IDE (programming interface) like a little toolkit window, with a “calculator” that can test structures and algorithms with a fun interface that gently leads you into debugging without creating thoughts of suicide.I train autodidacts with online tutorials and some of the finest programmers I’ve ever met are self taught. This is a GREAT text for that purpose, because autodidacts are self motivated and don’t have Satan the Professor cracking the whip to make them finish. In that frame the text has to be fun, interesting and revelatory or my favorite audience (self learners) just walk away. This is one of the rare ones that does not disappoint!Many authors try to pack their texts with show off garbage for their peers. This text is 180 degrees from that; totally student oriented, and always aware of how NOT to teach programming. The analogies, insights, exercises, pedagogy are wonderfully thorough, while bending over backwards to avoid methods that a rabid chimp could learn, or so rote that one wonders where the macro meta program is that should do this to save human dignity. Highly recommended, both for teachers who care about their students, and my fellow self study buddies.Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it’s a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.

⭐This is the best book on programming that i have ever read. Though it is centered around the language scheme, it actually explains how any programming language works. The book follows your thought process. You’ll find that the answer to the question that just popped up in your head, is infact there in the very next para. I have never seen a book that understands the reader completely as this book does. A must read if you want to understand the basic underlying mechanics of any programming language, and ofcourse a great book to learn scheme as well.

⭐I had this shown to me in my masters in computer science. For one, I am not the market, but I’m not sure I’d put any beginner through this.It’s overtly complext using old mathematical concepts to try to learn. Using the free swift or go tutorials or the many apps will do you *far* better as an intro to code and you’ll enjoy you’re like a lot more.This feels like it was written in 1985 and yet sadly it’s on a few years old. Save yourself the headache.

⭐very good

⭐The book is actually very new without any markings in the book. There is only a small problem with the cover.

⭐I found these products very informative. the product lived up to its advertised purpose and the cost was very affordable.

⭐Have you ever looked at other people’s codes and said to yourself something like “No… this isn’t the way it should be written!”. Or, worst yet, have you ever been asked by someone who wants you to read his/her codes and tell him/her what does it do?Both things happened quite often, though.The problems are mainly because they don’t know how to “design” their programs properly. Being able to progam doesn’t mean being to design/organize a good code at all. And being good at finding/inventing algorithms for problem solving doesn’t mean that either.One another thing, I (maybe just only me, I don’t know) think that C shouldn’t be taught as the first language (at least, not anymore). This is mainly because, in C, you can hardly express yourself. Also, C codes look cryptic to those new to programming. And you must know a lot, and practice a lot, (that takes a lot of time, friend) to be able to express what you want.And also, several times, I saw many people just playing around with the * and & (well, the pointer-dereferencing, and address-taking symbol in C/C++), adding one more, deleting one off, to see which will make their programs work. (Sometime, it just works by miracle…)This book, using Scheme (a modern dialect of Lisp) as the language of choice. I, personally, agree of choosing it. Scheme was designed in the way such that programmers can focus on what they want to express, rather than imprementation details. From my own experience, I became a better programmer after learning it. (I was already a C++ programmer by that time. I just have to use Lisp on my study/research).One thing that I like is that, it focused on how to “design” programs, not just how to program, while college classes are mostly focused on how to write programs. No matter how students write their codes, if it could run, then it is fine.Then, I think, a lot of people do have ability to program, a lot are good at it. However, the number of people who knows how to design programs are much lesser. And this would result in something like those silly examples at the beginning of this review. Therefore, this book had emphasized on quite an important thing.And the last thing to say about this one is: MIT Press’ textbooks are very high-quality, and this one is not an exception. It is very easy to read and to understand. And, even the html version is available at the book’s official homepage, it is nice to have the printed version.How to “design” programs is very important for every CS major people, and is important to everyone else in general (to program your “everyday life schedule”, etc). Whether you want to become a professional programmer (write codes for living, etc) or not.

⭐I don’t like the authors’ “design recipe” all that much, but the problems (done in Racket) are interesting and fun.Another plus for this book is it has you make some simple games in Racket. Actual moving sprites and such – not text based. That provides a great example of a functional API that lets you update state without… updating state!If you’re a real-worlder trying to crack functional programming, the two recommended books are this one and “get programming with Haskell.” After two functional languages learned, you will “get it”

⭐This book is perhaps the very best book to jump into programming. It can be best learnt from the video course with the same title. The book suggests a systematic approach to software development, and it is doing it very well. However, the book cries for an editor. The authors should read a book about How to Design Books. The content is good, but the structure is chaotic, which makes it a very hard reader. I am thinking of sending this book back (esp. for this price), and I definitely do not recommend for anyone to buy the paper edition.

⭐I found this book reading Peter Norvig’s “Teach Yourself Programming in Ten Years”.As many other people, i have been fooling around struggling with books to get a deeper understanding of computers and software.This is the book (at least one of them) everybody should use to start learning programming. Clear concepts and strong good programming habits/style.Gets you in serious programming concepts in a natural manner.You have to take the patience of doing the exercises, but they are very agile and put you the exact intensity of challenge you need to improve your skills.When i finished, i found myself writing my ideas directly in this LISP dialect (Dr. Racket, former Scheme) like if i had really embodied the technics.This book has also teached me an unknown dimension of programming. I was used to code in a very (bad/idiosyncratic) free way, declaring variables, making loops, etc… HTDP and most this LISP-kind-of language FORCES you to program “the good way” (no other way would be possible). Pushes you to clear what do you want to do, how and also to write the corresponding documentation.Gets you into “generative recursion” and “structural recursion”.Gets you familiar with very useful ways of managing arbitrary size data, using lists and structures.Great book! One of a kind!If there is a bad thing to say… I perhaps noticed that the first 2/3 parts of the book are very clear and with a very planified pace and at the end looks a little bit chaotic trying to put new concepts in a fast way. Looks like the person in charge of the first part was not the same at the end “trying to ‘solve’ the book ASAP”.This book has improved my CS (computer science) knowledge and now i can approach more complex books.A jewel.Best regards.

⭐Bad book:1) unclear instructions. Often opaque. You need to read minds to understand what the authors want you to do.2) No answer key. The book uses Racket. Good luck finding answers to the exercises anywhere online.The poorly worded exercises and the lack of answers make this book useless for self-study.

⭐Book is not that good as I am expected. Typical Textbook style writing. Sometimes to verbose and sometimes too abstract 🙁 . Little schemer is much better book than this.Also book quality is not very good. seems like an old book given to me.

Keywords

Free Download How to Design Programs, second edition: An Introduction to Programming and Computing in PDF format
How to Design Programs, second edition: An Introduction to Programming and Computing PDF Free Download
Download How to Design Programs, second edition: An Introduction to Programming and Computing 2018 PDF Free
How to Design Programs, second edition: An Introduction to Programming and Computing 2018 PDF Free Download
Download How to Design Programs, second edition: An Introduction to Programming and Computing PDF
Free Download Ebook How to Design Programs, second edition: An Introduction to Programming and Computing

Previous articleComputational Complexity: A Modern Approach 1st Edition by Sanjeev Arora (PDF)
Next articleThe Pillars of Computation Theory: State, Encoding, Nondeterminism (Universitext Book 0) 2010th Edition by Arnold L. Rosenberg (PDF)