Monday, September 30, 2013
Introduction to the Theory of Computation (Hardcover)
Introduction to the Theory of Computation (Hardcover) |
- Introduction to the Theory of Computation (Hardcover)
- Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition) (Hardcover)
- Types and Programming Languages (Hardcover)
- Taking Stock (Kindle Edition)
- Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition) (Hardcover)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Higher-Order Perl: Transforming Programs with Programs
Higher-Order Perl: Transforming Programs with Programs |
Higher-Order Perl: Transforming Programs with Programs Posted: As a programmer, your bookshelf is probably overflowing with books that did nothing to change the way you program...or think about programming. You're going to need a completely different shelf for this book. While discussing caching techniques in Chapter 3, Mark Jason Dominus points out how a large enough increase in power can change the fundamental way you think about a technology. And that's precisely what this entire book does for Perl. It raids the deepest vaults and highest towers of Computer Science, and transforms the many arcane treasures it finds---recursion, iterators, filters, memoization, partitioning, numerical methods, higher-order functions, currying, cutsorting, grammar-based parsing, lazy evaluation, and constraint programming---into powerful and practical tools for real-world programming tasks: file system interactions, HTML processing, database access, web spidering, typesetting, mail processing, home finance, text outlining, and diagram generation. Along the way it also scatters smaller (but equally invaluable) gems, like the elegant explanation of the difference between 'scope' and 'duration' in Chapter 3, or the careful exploration of how best to return error flags in Chapter 4. It even has practical tips for Perl evangelists. Dominus presents even the most complex ideas in simple, comprehensible ways, but never compromises on the precision and attention to detail for which he is so widely and justly admired. His writing is--as always--lucid, eloquent, witty, and compelling. Aptly named, this truly is a Perl book of a higher order, and essential reading for every serious Perl programmer. |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Sunday, September 29, 2013
Types and Programming Languages (Hardcover)
Types and Programming Languages (Hardcover) |
- Types and Programming Languages (Hardcover)
- Taking Stock (Kindle Edition)
- Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition) (Hardcover)
- The Little Schemer - 4th Edition (Paperback)
- The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Art of Computer Programming, The, Volumes 1-3 Boxed Set
Art of Computer Programming, The, Volumes 1-3 Boxed Set |
Art of Computer Programming, The, Volumes 1-3 Boxed Set Posted: Art of Computer Programming, The, Volumes 1-3 Boxed Set (3rd Edition) (Vol 1-3) (Hardcover) By Donald E. Knuth As Knuth himself says, it is impossible for any one person to keep up with all the research in computer science, but these 3 volumes do a remarkably good job of distilling the most important results and explaining them with mathematical rigor. Each volume contains 2 chapters. Ch. 1, Basic Concepts: mathematical foundations and a description of MIX, a hypothetical machine (now available in software emulations). Ch. 2, Information Structures: lists, trees, memory allocation, garbage collection. Ch. 3, Random Numbers: how to produce series of "random" numbers and test their statistical properties. Ch. 4, Arithmetic: algorithms for integer and floating-point arithmetic. Ch. 5, Sorting: both in memory and on disks or tapes. Ch. 6, Searching: sequential, binary, hashing. Despite the detailed coverage of the topics, which often involves esoteric mathematical notation, the author's lively style makes the algorithms and the main theoretical results relatively easy to grasp. If all you care about is getting a program to run, buy another book; but if you really want to understand how and why software works, there's nothing quite like this. |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Saturday, September 28, 2013
Types and Programming Languages (Hardcover)
Types and Programming Languages (Hardcover) |
- Types and Programming Languages (Hardcover)
- Taking Stock (Kindle Edition)
- Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition) (Hardcover)
- The Little Schemer - 4th Edition (Paperback)
- The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
The Universal Computer: The Road from Leibniz to Turing
The Universal Computer: The Road from Leibniz to Turing |
The Universal Computer: The Road from Leibniz to Turing Posted: This is one of the best popular books on computer science or mathematics in years. Most authors in this area (e.g., Berlinski) have no special expertise in the subject matter or its history; that doesn't guarantee a bad book, but makes it hard to write a good one. Davis is a refreshing exception: * He is a brilliant researcher, who made fundamental contributions to areas such as computability (the Davis-Putnam- Robinson theorem, related to Hilbert's 10th problem) and algorithms (the Davis-Putnam algorithm for solving satisfiability problems). * He is a master expositor (his 1958 book "Computability and Unsolvability" was one of the very first textbooks in its area, yet it is still widely read today despite the many other books written on this subject over the past 42 years). * He has spent the last twenty years studying the history of logic and computation. Davis's book is all one would hope for given his qualifications. It is insightful and engaging, and full of fascinating information that is hard to find elsewhere. I cannot imagine a better book on this subject. |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Friday, September 27, 2013
Operating System Concepts, Seventh Edition (Hardcover)
Operating System Concepts, Seventh Edition (Hardcover) |
- Operating System Concepts, Seventh Edition (Hardcover)
- Introduction to the Theory of Computation (Hardcover)
- Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition) (Hardcover)
- Types and Programming Languages (Hardcover)
- Taking Stock (Kindle Edition)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Computability: An Introduction to Recursive Function Theory
Computability: An Introduction to Recursive Function Theory |
Computability: An Introduction to Recursive Function Theory Posted: This is a well-written book, and gives a satisfying account of the field of recursion theory. It covers basic aspects of recursion theory, Godel numbering, the structure of recursive and recursively enumerable sets, and even a brief (and quite sketchy) foray into complexity results at the end. It is, however, worth deciding whether you are in the target audience before making a purchase. If you are trying to make a first transition over into theory topics from, say, a career of practical software development tasks, then this is the wrong book. Try Sipser's Introduction to the Theory of Computation instead. Sipser is more willing to spend time on demonstrating the intuitive picture, and relies less on formal mathematical arguments. This book can come later to fill in some of the mathematical properties. On the opposite end of the spectrum, this is a passable but mediocre reference book for recursion theory. It omits major topics, such as the arithmetic hierarchy. It deviates considerably from other traditional treatments. These decisions will get annoying if you plan to read bits and pieces rather than learn in sequence according to the author's presentation. A better reference is Hartley Rogers' Theory of Recursive Functions and Effective Computability. Buy this book if you are in the middle. It's a great book if you've seen some decidability results, but not a formal mathematical treatment; and if you intend to follow the book and learn what it decides rather than look up specific topics. In that situation, it's hard to see how you could do better. |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Thursday, September 26, 2013
Taking Stock (Kindle Edition)
Taking Stock (Kindle Edition) |
- Taking Stock (Kindle Edition)
- Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition) (Hardcover)
- The Little Schemer - 4th Edition (Paperback)
- The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Wednesday, September 25, 2013
Compilers: Principles, Techniques, and Tools (2nd Edition) (Hardcover)
Compilers: Principles, Techniques, and Tools (2nd Edition) (Hardcover) |
- Compilers: Principles, Techniques, and Tools (2nd Edition) (Hardcover)
- Operating System Concepts, Seventh Edition (Hardcover)
- Introduction to the Theory of Computation (Hardcover)
- Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition) (Hardcover)
- Types and Programming Languages (Hardcover)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Tuesday, September 24, 2013
Introduction to Algorithms (Hardcover)
Introduction to Algorithms (Hardcover) |
- Introduction to Algorithms (Hardcover)
- Compilers: Principles, Techniques, and Tools (2nd Edition) (Hardcover)
- Operating System Concepts, Seventh Edition (Hardcover)
- Introduction to the Theory of Computation (Hardcover)
- Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition) (Hardcover)
You are subscribed to email updates from Shield Amz Rec To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Concrete Mathematics: A Foundation for Computer Science
Concrete Mathematics: A Foundation for Computer Science |
Concrete Mathematics: A Foundation for Computer Science Posted: What is "concrete" math, as opposed to other types of math? The authors explain that the title comes from the blending of CONtinuous and disCRETE math, two branches of math that many seem to like to keep asunder, though each occurs in the foundation of the other. The topics in the book, such as sums, generating functions, and number theory, are actually standard discrete math topics; however, the treatment in this text shows the inherent continuous (read: calculus) undergirding of the topics. Without calculus, generating functions would not have come to mind and their tremendous power could not be put to use in figuring out series. The smart-aleck marginal notes notwithstanding, this is a serious math book for those who are willing to dot every i and cross every t. Unlike most math texts (esp. graduate math texts), nothing is omitted along the way. Notation is explained (=very= important), common pitfalls are pointed out (as opposed to the usual way students come across them -- by getting back bleeding exams), and what is important and what is =not= as important are indicated. Still, I cannot leave the marginal notes unremarked; some are serious warnings to the reader. For example, in the introduction, one note remarks "I would advise the casual student to stay away from this course." Notes that advise one to skim, and there are a few, should be taken seriously. All the marginal notes come from the TAs who had to help with the text, and thus have a more nitty-gritty understanding of the difficulties students are likely to face. Still, there are plenty of puns and bad jokes to amuse the text-reader for hours: "The empty set is pointless," "But not Imbesselian," and "John .316" made me chuckle, but you have to find them for yourself. To someone who has been through the rigors of math grad school, this book is a delight to read; to those who have not, they must keep in mind that this is a serious text and must be prepared to do some real work. Very bright high school students have gotten through this text with little difficulty. I want to note ahead of time - some of the questions in the book are serious research topics. They don't necessarily tell you that when they give you the problem; if you've worked on the problem for a week, you should turn to the answers in the back to check that there really is a solution. That said, I would highly recommend this book to math-lovers who want some rigorous math outside of the usual fare. The formulas in here can actually come in handy "in real life", especially if one has to use math a lot. |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Monday, September 23, 2013
Design Patterns: Elements of Reusable Object-Oriented Software
Design Patterns: Elements of Reusable Object-Oriented Software |
Design Patterns: Elements of Reusable Object-Oriented Software Posted: This book really changed my way of thinking about object-oriented design. The idea is that when designing a new class hierarchy, though implementation details may differ, you often find yourself using the same kinds of solutions over and over again. Rather than approaching each design task out of context as an individual, isolated problem, the strategy is to study the task and identify the underlying design pattern most likely to be applicable, and follow the class structure outlined by that pattern. It's a "cookbook" school of design that works amazingly well. There are other advantages to this book. It isolates 23 of the most common patterns and presents them in detail. You wouldn't think that 23 patterns would be enough, but once you become adept at recognizing patterns, you'll find that a large fraction of the patterns you use in practice are among these 23. For each pattern, the book carefully presents the intent of the pattern, a motivating example, consequences of using that pattern, implementation considerations and pitfalls, sample code (C++ or Smalltalk), known uses of that pattern in real-world applications, and a list of related patterns. Upon first reading, you will start to recognize these patterns in the frameworks you see. Upon second reading, you'll begin to see how these patterns can help you in your own designs, and may also start to see new patterns not listed in the book. Once you become familiar with the pattern concept, you will be able to originate your own patterns, which will serve you well in the future. One of the most valuable contributions of this book is that it is designed not merely to help you identify patterns, but to give you a sense of which patterns are appropriate in which contexts. I think this book is particularly valuable to many C++ and Java programmers, because of the dynamic and flexible design philosophy it follows. (Its two fundamental principles of reusable OO design are: "Program to an interface, not an implementation" and "Favor object composition over class inheritance".) I've found that many C++ books unfortunately tend to emphasize a rather static and inflexible design philosophy. Many C++ programmers do not realize how the language and the books they've studied from have been limiting their thinking until they have been exposed to ideas from other lanugages. The authors of this book have obviously been influenced by other languages as well, especially Smalltalk, and have brought many of its best lessons to C++ design. Most Java books seem to take after the C++ books, even though Java is a more dynamic language. This book may help Java programmers take full advantage of the extra power offered by their language, if they look deeply enough into some of the lesser-known features its runtime system affords. Last, but not least, this book is valuable because it names the patterns it uses, and so gives programmers a common vocabulary to describe design concepts, rather than particular implementations. You'll find yourself saying things like, "That would be a good use for a Decorator", or "Should we use a Facade or a Mediator in this case?" I encourage readers of this book to use this vocabulary with other programmers. In summary, this is one of the few books that I think belongs on every programmer's "must-have" list. Not to overuse a cliche, but like object-oriented design itself, the pattern concept is one of those rare paradigm-shifts in computer programming. It is equally valuable to expert professional and novice student alike. The book has a home page at [...] |
You are subscribed to email updates from Shield To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |