If you ask a carpenter apprentice what tools do you need to work with, he may answer you: "I only need a hammer and a saw ". But if you ask an old carpenter or master architect, he will tell you, "I need some precise tools ". Because the problems solved by computers are all abstracted from life, their complexity is self-evident, so we need such accurate and effective tools to solve complex problems in real life. Algorithm And the data structure is Program An essential precision tool in design. The importance of algorithms is very clear to every programmer.
A considerable part of the issues solved in programming involve a variety of scientific calculations. What kind of foundation do programmers need? The actual problem is converted into a program. It takes a process of problem abstraction to establish a complete mathematical model. Only in this way can we establish a well-designed program. It is not difficult to see the importance of computational mathematics in the field of programming. Mr. Meng Yan has written several technical books, four books and five classics. It seems that this has become one of the symbols of Mr ......
As an introduction in this regard, if we do not introduce the following joke of the terrorist masters, It is the epic taocp of computer programming:
Computer Programming Art
English name: The art of computer programming
Author: Donald. E. knuth
Donald E. knuth spent the most brilliant time in his life at the computer department at Stanford University. The winner of the American Computer Association Turing Award is a well-deserved competition in his field. The masterpiece of taocp is profound and profound, covering almost the most important content of computer programming algorithms and theories. Currently, only three volumes are released, including basic algorithm, semi-numerical algorithm, sorting, and search. There should be a total of 7 volumes. In my personal grasp of this series of books, apart from reading this book like other books, you can also use it as a dictionary for computer programming. After all, the content is too broad. When reading this book, we should focus most on the author's rigorous thinking methods. Everyone has their own reading methods. Some masters say that they should read this book in sequence because it is written like a poem. However, it depends on your personal experience. As for the value of this book, I think Mr. Bill Gates is enough to explain the problem: "If you think that you are a really good programmer to read knuth's" computer programming art ", if you can read the entire set of books, please send me your resume ". The author's mathematical skills have created a rigorous style in this book. Although this book is not described in today's popular programming languages, it does not damage its position as an "program design epic. The principle is simple. The design concept of its connotation will never be out of date. Unless it is difficult, we recommend that you use the English version.
If taocp is compared to "the homic of computer programming theory", CLRS may be referred to as "the bible of computer algorithms ".
Introduction to Algorithms
English name: Introduction to Algorithms
Author: Thomas H. cormen, Charles E. leiserson, Ronald L. Rivest, Clifford Stein
This book is mainly written by Ronald L, one of the authors of computer science at the Massachusetts Institute of Technology. rivest received the Turing Award for its contribution to the public key cryptography algorithm RSA. It is currently a standard algorithm textbook and is used by many computer departments in the United States, some colleges in China also use this book as a textbook for algorithm courses. It is also frequently cited by many professionals. Since taocp only published three volumes, CLRS is more comprehensive than the former, basically including all the classic algorithms. All programs in this book are composed of pseudoCodeThis makes the book more universal, so that programmers who use various programming languages can be used as a reference. In terms of language, it is suitable for algorithm teaching materials and self-learning algorithms. Many domestic works are called data structures, which are out of context in this book and confuse the data structures with algorithms, making the authors confused themselves. This is also the reason why I am reluctant to recommend domestic works to you. You will find that basically all data structures and algorithms books now use this book as one of the references. It can be further explained that this book is the best choice for readers to learn algorithms. As a supplement to this book, I would like to recommend the following learning materials: you can find all the exercises in this book through this address answer: http://www.itu.dk/people/beetle. To better learn the content of this book, the best guidance is of course from the author's own book. Readers can obtain a video of the course through http: // 18.89.1.101/SMA/5503fall2001/index5503fall2001.html.
I don't want to recommend two sets of excellent books separately, but it is also an excellent reference for beginners of advanced programming languages:
Algorithms in C ++ and Algorithms in Java series. The author is Robert Sedgewick, a well-known professor in the computer department of Princeton University. He is a master of taocp author Donald E. knuth. The algorithm theory is not inferior to CLRS. The two versions are customized for C ++ and Java programmers respectively. As a reference for algorithm books in specialized languages, these two books are the only ones I would like to recommend to you. It can be used as a supplement to the book introduction to algorithms. If you are interested in cryptographic algorithms, application cryptography is your first choice.
There are quite a few books that can be recommended in computer mathematics theory. Which mathematical theory bases should we be involved in and which ones are basically not needed, you can refer to the "csdn development master" published in September "Computer Science and Technology mathematical theory", or through the address below to browse this article: http://www.cstc.net.cn/docs/docs.php? Id = 111
Discrete Mathematics is clearly second to none in the field of computer mathematics theory. The first thing we recommend to you is:
Discrete Mathematics and Its Application
English name: discrete mathematics and its applications, Fourth Edition
Author: kenth H. Rosen
The value of this book has been confirmed by hundreds of universities around the world. As a classic teaching material in the Discrete Mathematics field, almost all well-known schools around the world have used this book as a teaching material. In my opinion, this book can be called the Encyclopedia of discrete mathematics. The book not only introduces the theory and method of discrete mathematics, but also rich historical materials and related learning website resources. What's even more exciting is that this book rarely combines Discrete Mathematical theories with applications so well. You can see examples of Discrete Mathematics Theory in logic circuits, programming, commerce, Internet, and many other fields. Considering the basis of most readers, we recommend the Chinese version of this book (the fourth version of the original book). The English version of this book (the fifth version) adds the biography of a considerable number of mathematical and computer scientists, it is a rare reference in the history of computer science. As a textbook, this book has a considerable number of exercises. Each chapter is followed by a set of topics that combine the computing and discrete mathematics that students have learned to train. This book is also the only English teaching material I personally read when studying discrete mathematics. It is actually a good book worth recommending.
The objects of traditional mathematical research are too abstract, leading to insufficient concern for specific problems. To directly address application needs, the great computer scientist and mathematician Donald E. knuth proposed "Specific Mathematics" at the Massachusetts Institute of Technology ". Since that day, "Specific mathematics" has become the foundation of computer science. Therefore, what we recommend for you is a long-lasting book:
Specific mathematics-Basics of Computer Science
Concrete mathematics a foundation for computer science (second edition)
It is excited that the main author of this book is tidou Donald E. knuth and his colleague Ronald L. Graham. In 1970, they organized the books on the basis of the postgraduate course of computer science. Content is the first extension of knuth's major taocp, which is much deeper than taocp. The focus is on advanced computer programming and algorithm analysis, involving almost all possible mathematical knowledge in the computer science field. The specific mathematics is the synthesis of Discrete Mathematics and continuous mathematics. This is an excellent job in the book. The content introduced involves answers to many classic questions in the book, which is easier to understand than the widely-spread solutions. It is of great help to improve your computing mathematics cultivation. The reason why taocp readers sometimes do not understand it is because the foundation of computational mathematics is not very solid, but with my personal experience, if I can have a better understanding of the content in this book, it will bring you a lot of convenience to read such great achievements as taocp.
In short, computing French mathematics is the foundation of programming and the essence of computing science. We still need to pay enough attention to it. For more information about the role and position of algorithms and mathematics in computer programming, see my introduction to mathematical theory in computational science.Author's blog:Http://blog.csdn.net/myali88/