Reasoning About Equations and Functional Dependencies on Complex Objects
IEEE Transactions on Knowledge and Data Engineering
Generic discrimination: sorting and paritioning unshared data in linear time
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Hi-index | 48.22 |
The study of algorithms has much to offer the practicing programmer. After just a course or two on the subject, students take away algorithms for solving many important tasks and design techniques for attacking new problems. Advanced algorithmic tools can have a substantial impact on software systems. Next month, for instance, we'll study a system in which algorithm design helped reduce development time by 170 staff-years.As important as such tools are, algorithms can have an impact on a more common level of programming. In his book aha! Insight (from which I shamelessly stole my title), Martin Gardner describes the type of contribution I have in mind: “a problem that seems difficult may have a simple, unexpected solution.” Unlike the advanced methods of the field, the aha! insights of algorithms don't come only after extensive study; they're available to any programmer willing to think seriously before, during, and after coding. But enough generalities, on to the problems!