European Mathematical Society - 68-01
https://euro-math-soc.eu/msc-full/68-01
enEssential Discrete Mathematics for Computer Science
https://euro-math-soc.eu/review/essential-discrete-mathematics-computer-science
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>One may wonder whether physical quantities are discrete or continuous. Calculus has certainly helped to model all kinds of physical phenomena, but when digging deep enough, we are confronted with quantum physical aspects that show a more discrete character of nature. When looking at a large scale, then it is generally assumed that our universe is immense but finite. So we might consider the physical world to be a finite and discrete system.</p>
<p>Digital computers are also by definition finite and discrete, but at a much smaller scale than the cosmological universe and coarser than the subatomic level, although modern basic hardware components using nanotechnology are scraping against an atomic scale. The software that runs on this hardware is essentially a sequence of bits describing how bits are transformed into bits, and hence also this is finite and discrete. So one may say that calculus formulates continuous models as approximation of a discrete reality and numerical analysis simulates these models on computers by producing a discrete approximation at a much coarser level of the continuous models.</p>
<p>To describe the behaviour of a computer, it is clear that it can be in many, but eventually, only a finite number of different states. No wonder that students in computer science will have to learn about discrete mathematics. This involves traditionally graphs, Boolean calculus, complexity, and sometimes also algebraic relations and structures like (finite) groups, rings, etc.</p>
<p>In the early days of computer science, it was the playground of engineers and mathematicians who simulated their numerical models. Therefore many of the "discrete mathematics courses for computer science" were given to mathematics or engineering students who wanted to specialize in computers. However computer science is now a mature topic in its own right, and students of computer science may not have the traditional mathematical background of previous generations. This book is taking this observation into account, and starts at a very elementary mathematical level, even explaining proof techniques, while introducing the first concepts of induction, sets, formal logic,... Although starting with a very elementary introduction, not all the chapters are at this introductory level, and at some point require the introduction of calculus elements like limits, infinite series, integrals, and de l'Hôpital's rule. The text is largely self-contained. All the required concepts and notations are defined, and all the statements are proved in full. A computer could be used occasionally to solve the exercises but one can perfectly do without.</p>
<p>The text has 31 relatively short chapters, each followed by an itemized summary and about a dozen exercises. Some of the chapters are related, like for example the ones on probability, but others can be skipped without a problem. The main global topics include formal logic, graphs, automata, and complexity. The pages have a wide outside margin where all the notes and illustrations are included.</p>
<p>To illustrate how the chapters are built up, let's look at the first one which is an illustration of the pigeonhole principle. A simple concept, and yet, it starts with ideas about a mathematical theorem which is all about formulating and proving a general proposition, rather than just a particular case, but it runs up to the fundamental theorem of arithmetic (every positive integer is a unique product of prime numbers) and the proof that there are infinitely many prime numbers. Further proof techniques are illustrated with other (elementary) results from number theory.</p>
<p>The book continues with sets, used to introduce relations and functions, and induction lead to countable sets, but also to strings generated from an alphabet using syntax rules. Venn diagrams are an introduction to propositional logic, Boolean algebra, and logic circuits.</p>
<p>Graphs are a major part and return in several chapters. They are first introduced by describing a computer model as a discrete state space machine that executes an algorithm. This is a strange choice to see a graph appear for the first time, but it may be motivating for computer science students. However, graphs are studied for their own right: directed and undirected graphs, connectivity, trees, and coloring. Previous topics are retraced with finite automata to construct and analyse strings.</p>
<p>Two mathematical intermezzos introduce limits, integrals, series, and big-O and small-o notation to define orders of magnitude and another one defines infinite summations and series expansions. These are prerequisites to deal with counting problems (combinatorics), discrete probabilities (including conditional probability and Bayes's theorem). Complexity theory might have been another application, but that is not included. The two chapters about modular arithmetic and some elements of cryptography conclude the book.</p>
<p>This is a relatively low level introduction to some elements of discrete mathematics for students in computer science with only a minimal mathematical background. It has a pleasant lay-out for studying, but is a bit overweight (bout 1.2 kg) to take it along. The number of exercises is limited but sufficient for the depth at which the subjects are treated. There are many text books that treat the same subjects (most of them at a higher level though), but there are not many that take this particular approach.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>This is a textbook about discrete mathematics. It starts at a very elementary mathematical level explaining sets, relations and functions introducing the pigeon hole principle, proof techniques and induction, and continuing with principles of formal logic, Boolean algebra, graph theory, automata, combinatorics, and discrete probability.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/harry-lewis" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Harry Lewis</a></li><li class="vocabulary-links field-item odd"><a href="/author/rachel-zax" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Rachel Zax</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/princeton-university-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">princeton university press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2019</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">9780691179292 (hbk); 9780691190617 (ebk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">USD 75.00 (hbk)</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">408</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/combinatorics" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Combinatorics</a></li><li class="vocabulary-links field-item odd"><a href="/imu/mathematical-aspects-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematical Aspects of Computer Science</a></li><li class="vocabulary-links field-item even"><a href="/imu/mathematics-education-and-popularization-mathematics" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematics Education and Popularization of Mathematics</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="https://press.princeton.edu/titles/13651.html" title="Link to web page">https://press.princeton.edu/titles/13651.html</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68rxx" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68Rxx</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/05-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">05-01</a></li></ul></span>Sun, 14 Apr 2019 06:50:12 +0000Adhemar Bultheel49286 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/essential-discrete-mathematics-computer-science#commentsAlice and Bob Meet the Wall of Fire
https://euro-math-soc.eu/review/alice-and-bob-meet-wall-fire
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
Thomas Lin was science editor for the online <em>New York Times</em> before he decided in 2012 to become the founder and editor in chief of the online <a href="https://www.quantamagazine.org" target="_blank"><em>Quanta Magazine</em></a>. By now it has become a highly appreciated freely available online source for journalists to find information about (hard) science: physics, biology, computer science, and mathematics. Quanta is sponsored by the <em>Simons Foundation</em>, an organization for the promotion of science created by James Simons, the billionaire mathematician and hedge-fund founder. The editorial policy is to cover in about five to ten pages the cutting edge topics that fall somewhat outside the interest of the mainstream media. The texts are engaging newspaper style stories that are rigorous without being really technical. It should catch the attention of any science minded reader. The authors are mostly reporters that have talked to or interviewed the scientists. Only in very exceptional cases, it is written by the scientists themselves.</p>
<p>
After the first five years of Quanta's existence, Lin has made a "Best of"-selection of the texts in two volumes. One is entitled <em>The prime number conspiracy</em> and collects papers dealing with mathematical subjects. That involves obviously prime numbers, but is not restricted to number theory. The remaining subjects (physics, computer science, and biology) is covered in the present volume. The texts are only slightly edited to add the latest news. Clearly some are older while others are more recent. By reading subsequent texts on the same or a closely related topic it is seen how science advances.</p>
<p>
The present collection consists of 38 texts, grouped in eight parts. Clearly it is not possible to cover each of the subjects here in detail, but the titles of the eight parts can give an idea of what is covered. Note that they are all formulated as questions, which reflects that they relate to some of the "big questions" that humans naturally ask and that scientists have been trying to solve, often replacing them by new, even more challenging ones. What follows is a selective survey.</p>
<ol>
<li>
<em>Why doesn't our universe make sense?</em><br />
This is all about cosmology, space-time, multiverse collision, etc. It contains the article that delivered the book's title. Alice and Bob are the usual persons used in thought experiments. The wall of fire is how an outside observer would see the event horizon of a black hole, if Hawking radiation is accepted, but there are still paradoxes connected to black holes that could not be solved yet.</li>
<li>
<em>What is quantum reality, really?</em><br />
Although quantum theory was conceived about a century ago, it is still not completely understood. It is very real as confirmed by experiments over and over again. So there are still attempts to provide new explanations or old ones are revived. For example various multiverse concepts have their believers and non-believers based on different arguments. We can read about the amplituhedron, a geometrical object that should simplify the quantum field theoretical computations, a considerable improvement over Feynman diagrams. Noteworthy is also a text by Nobel Prize winner Frank Wilczek about quantum entanglement (he also had a contribution in the previous part about Feynman diagrams). He is one of the three authoring scientists in this collection (Robbert Dijkgraaf, director of the IAS in Princetion is another exception, with a contribution in the last part).</li>
<li>
<em>What is time?</em><br />
Time is in many aspects an "outsider" in physical quantities. Physicists have developed several theories about what it is and what is causing it. It is intimately related to an increase of entropy described by the second law of thermodynamics. Entropy is a measure of information. It quantifies the amount of uncertainty, and hence directly links to quantum theory. The preferred laboratory to investigate time (and other quantum physical effects) in extreme circumstances are black holes. Mathematically, time just stops at the singularity of a black hole like it popped into existence with the Big Bang. Quantum entanglement comes into the picture because entanglement happens in space-time, and hence there can also be this "spooky action" at a distance in time which makes causality questionable, but it may explain the evaporation of black holes that Hawking predicted.</li>
<li>
<em>What is life?</em><br />
A lot of progress has been made in cell biology up to the tiniest scale, and that has sparked some hypotheses about the origin of life. Life seems to counteract the second law of thermodynamics, creating structure from chaos. Again, the intimate relation between entropy and information can bring insight. External energy can make self-replication possible, but is it life? Should a sharp boundary between living and non-living be erased? Artificial life, editing and generating new DNA became reality. Animal life with asexual self-replication was discovered. And there is debate when in the course of evolution neurons where developed. All of these questions are discussed in this part.</li>
<li>
<em>What makes us human?</em><br />
The brain is still one of the most complex and least understood organs. There are speculations of why about 3 million years ago the brain of humans started to quadruple in size although size is not the only thing that counts. Why do we have an evolutionary aversion to loneliness? Why do we sometimes make bad decisions, and neuroscientists investigate how the brain of a child changes into the brain of an adult. This part is connected to the next one where machines simulate how the brain operates.</li>
<li>
<em>How do machines learn?</em><br />
Here it is explained how computers are programmed to win in chess or Go from humans. However, this is a machine programmed by humans who feed the rules of the game. In this setting a machine can beat a human only because it is faster. The proper learning machine is however obtained by neural nets where deep learning and reinforced learning are the driving mechanisms that make the machine learn on its own. It will be clumsy in the beginning, but it never gets tired and hence can learn much faster than humans.</li>
<li>
<em>How will we learn more?</em><br />
Here we are back into cosmology and quantum theory. Since the LIGO has measured gravitational waves, a whole new area has opened to scientists. The waves emerge from colliding black holes, but how did these black holes come about and why did they collide? Also a pair of neutron stars can collapse and how did that happen?</li>
<li>
<em>Where do we go from here?</em><br />
It was hoped or expected that the LHC at CERN would detect new particles, but except for the Higgs boson, which was predicted, none other new particle has been observed. So what about the speculative string theory? Will there ever be evidence for some of the, by now many, versions of string theory? Can we ever arrive at a Theory of Everything, and at explaining quantum gravity, or will a completely new vision emerge? Hawking was very optimistic at first to have a ToE at the beginning of the 21st century, but he eventually had admit that it will take a while longer.</li>
</ol>
<p>
</p>
<p>
Of course most of the topics covered in this book rely on mathematics, fundamental or applied. However, because of the purpose of these texts is to inform the non-specialist about the latest developments, the mathematics are left out and reference to the underlying mathematics is only rarely made. Nevertheless, I believe that also mathematicians, certainly mathematicians, will and should be interested. These applied topics is where mathematical tools are needed that may not be available yet. Here models and simulations of ever higher complexity are required, and more complex abstract tools should be developed. Anyone can read this to stay informed about recent developments in science, but young mathematicians may find here inspiration on which applied direction they want to build their career.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This is a collection of texts from the first five years (2012-2017) of the highly appreciated <em>Quanta Magazine</em>. The articles deal with cutting edge achievements from physics, biology, and computer science brought in a thorough, yet generally accessible form.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/thomas-lin" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Thomas Lin</a></li><li class="vocabulary-links field-item odd"><a href="/author/ed-1" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">(ed.)</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/mit-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">MIT Press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2018</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">9780262536349 (pbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">GBP 14.99 (pbk)</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">328</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/mathematical-physics" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematical Physics</a></li><li class="vocabulary-links field-item odd"><a href="/imu/mathematics-education-and-popularization-mathematics" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematics Education and Popularization of Mathematics</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://mitpress.mit.edu/books/alice-and-bob-meet-wall-fire" title="Link to web page">http://mitpress.mit.edu/books/alice-and-bob-meet-wall-fire</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/00-general" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">00 General</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/00-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">00-01</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/81-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">81-01</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/83-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">83-01</a></li><li class="vocabulary-links field-item even"><a href="/msc-full/85-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">85-01</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li><li class="vocabulary-links field-item even"><a href="/msc-full/98-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">98-01</a></li></ul></span>Thu, 03 Jan 2019 08:00:25 +0000Adhemar Bultheel48974 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/alice-and-bob-meet-wall-fire#commentsPython for Scientists (2nd edition)
https://euro-math-soc.eu/review/python-scientists-2nd-edition
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
Python is a young flexible scripting language of growing popularity for scientific computing. As the language is still evolving, also the books introducing the language do evolve along. John M. Stewart retired as a member of the Relativity and Gravitation group from the Department of Applied Mathematics and Theoretical Physics at the University of Cambridge in 2010. After his retirement he started working on his book introducing <em>Python for Scientists</em> of which the first edition appeared in 2014 which was reviewed <a href="/review/python-scientists" target="_blank">here</a> earlier. He passed away shortly after he finished this revised second edition.</p>
<p>
Since the first edition has been reviewed in some detail, it suffices here to discuss the differences. The basic structure and concept is retained, except for a new extra chapter 7 in which the new native Python computer algebra system (CAS) <em>SymPy</em> is discussed. <em>Maple</em> and <em>Mathematica</em> are the most widespread such systems. The <em>SymPy</em> library has similar possibilities like combinatorics, calculus, linear algebra, orthogonal polynomials and special functions, and solving differential equations. Although it is still developing and expanding, it is already a viable alternative for the topics mentioned. Combined with the plotting possibilities, and the graphical interface this is an important instrument for educational as well as for research purposes.</p>
<p>
For the rest the text is mainly the same as it was in the first edition. The chapter about plotting is slightly extended. Where it had before 2D and 3D plotting sections, now the 3D discussion is extended and discusses multidimensional plotting. Another novelty is that the users interface to Python was a command-line driven <em>IPython</em> which used basically a text terminal with pop-up graphics, it has now the possibility to handle notebooks which, like Maple and Mathematica notebooks, use a graphical browser to interact and which allows to mix the maple commands with text that can be introduced with section headers and a LaTeX kind of typesetting for the formulas. Instead of text oriented version of <em>IPython</em>, one has to open the IPython notebook with another tool called <em>Jupyter</em>. This does not influence the code snippets of the previous edition, but it is a much nicer users interface. Most of the snippets that are given in this book are now made available online in the form of an elementary notebook in <a href="http://www.ctc.cam.ac.uk/news/code.txt" target="_blank">txt</a> format or as a <a href="http://www.ctc.cam.ac.uk/news/code.pdf" target="_blank">pdf</a> file.</p>
<p>
In other words, this second edition is just a logical evolution, following the evolution of Python, while retaining its original concept and quality, Requiring only an increase from 220 to 257 pages, I still think the conciseness of the book is a major asset. It provides just enough to get you started with the language if you are already familiar with some computer programming or with a system like Maple or Mathematica. You might consider switching to Python to use it in either your design of scientific software, or, now with the nice notebook flexibility available, you might want to use it as a tool in teaching calculus or numerical analysis. It allows to generate on online interactive version of your course.</p>
<p>
The dynamism in the evolution and the succession of Python releases is a blessing and a curse. A blessing because with every release, the possibilities and the quality does increase, but also a curse because there is no standard for the language yet, and therefore it is not guaranteed that what works in some release will still work in the next one. As a consequence, one usually has to install different versions. This is done in a protected environment (basically confining a Python version to a directory) generated by a command <em>virtualenv env</em>. The necessary libraries are then installed there using the proper version dependency. This is achieved by using some command like for example <em>pip install jupyter</em> to install the <em>Jupyter</em> module. Stewart gives some explanation about the installation of Python, but that is rather minimal. There is nothing about virtual environments and pip install's. Also installing some packages on a computer where you do not have admin permission, can be problematic. Fortunately Python, its environment and all its satellite modules are well documented on the internet, and it is all open software. So you might need some external help to get started, but once you have an operational Python system, this book is still and excellent starting point to put you on the tracks to master the language and enjoy the marvels of the latest version of Python.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This is the second edition of the book for which the first edition was reviewed <a href="/review/python-scientists">here</a>, three years ago. The text has been rewritten to better reflect the <em>IPython</em> notebook style with graphical interface using <em>Jupyter</em> and a new chapter is added about <em>SymPy</em> (a library for symbolic mathematics). The number of code snippets has also been increased and most of them are now available online in an elementary form.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/john-m-stewart" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">John M. Stewart</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/cambridge-university-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">cambridge university press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2017</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">9781108120241 (pbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even"> € 29.99 (pbk)</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">271</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/mathematics-science-and-technology" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematics in Science and Technology</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://www.cambridge.org/be/academic/subjects/mathematics/computational-science/python-scientists-2nd-edition" title="Link to web page">http://www.cambridge.org/be/academic/subjects/mathematics/computational-science/python-scientists-2nd-edition</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68n15" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68N15</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-04" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-04</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li><li class="vocabulary-links field-item even"><a href="/msc-full/97n80" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">97N80</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/97u70" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">97U70</a></li></ul></span>Fri, 11 Aug 2017 09:31:22 +0000Adhemar Bultheel47806 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/python-scientists-2nd-edition#commentsA Machine Made This Book
https://euro-math-soc.eu/review/machine-made-book
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This is not really a mathematics book. Its subtitle is <em>Ten Sketches of Computer Science</em>. So it is more about algorithms and computers than about mathematics. The idea is the same as in many similar books popularizing mathematics. Here the author is explaining with some elementary examples what computer scientists are involved in. Just like the mathematical analogs that often take numbers or history as a theme to attach mathematics to, the theme of this book is (book) publication and text processing in a digital era.</p>
<p>
Even though computer science is not mathematics, it is an applied science and as most other applied sciences, it relies heavily on mathematics. Sometimes the mathematics are really simple (like in this book), but when one thinks of cryptography, the analysis of big data, artificial intelligence, numerical analysis, and other computer science problems, the mathematics are not always so simple and require answering deep and challenging mathematical questions. In fact Turing was involved with the foundations of mathematics and Gödel's theorems, the hardware of the electro-mechanical decryption machine for the <em>Enigma</em>, and so with his Turing machine laid at least the foundations of computers and computer science.</p>
<p>
What mathematics can there be involved in printing and publishing? Well, that is easier than you think. For example positioning a text on a page (or a screen) requires describing the location of every point (or pixel). Such a coordinate system was basically what Descartes and Fermat needed when they married geometry and algebra and created analytic geometry, No matter how high your printing resolution is, there will in practice always be a finite number of points that do or do not get printing ink (or pixels on a screen that get colored). Thus when zooming in deep enough, you will notice that a straight line is made up of a collection of dots, and these will be only a jagged approximation of what is perceived on a macro-scale as a straight line. Finding out which dots will need ink to best form this approximation is not completely trivial. Of course the same holds for characters or any edge on a black-and-white image no matter whether this represents text or illustrations.</p>
<p>
Characters come in many different shapes and can be defined by giving the boundaries between black and white in the form of piecewise smooth curves. Donald Knuth did not only gave TeX to the mathematical and scientific community, but he also designed Metafont which allows to design fonts (the <em>computer modern</em> font is the standard one used in TeX). Did you know that successive releases of TeX are numbered using the digital expansion of pi (3.14159...) and the releases of Metafont with the expansion of Euler's number e (2.7182...). Metafont is a programming language and in principle it is perfectly possible to solve a system of linear equations using its syntax. Metafont uses cubic splines to outline the closed boundaries of the character, hence defining an `inside' and an `outside'. The `inside' being the black region defining the character that we should be able to recognize. In this book Whitington explains how the character outline can be described using Bézier curves hooked up on control points. Not the mathematical formulas are given, but the idea can easily be explained graphically. In the chapters at the end of this book also the different font families, with carefully designed sizes, faces, and types are discussed. Also the algorithms needed to put lines and paragraphs and pages together taking care of spacings between letters and words, how words can be split at the end of a line, and how to avoid dangling lines at the bottom (orphans) or at the top (widows) of a page. All these issues are dealt with in TeX (although discussed here independent of that particular system).</p>
<p>
Other chapters require less, or much more elementary mathematics. For example it is explained how characters can be represented by numbers as in the ASCII standard of the 1960s. Also a (simple) algorithm is described to look up a word in a text (the search or find function of your favorite text editor) and a description of the input instruments like the typewriter or a computer keyboard. (Do you know how to input Chinese characters on a Western keyboard?) Somewhat more mathematical (although with a very elementary explanation here) is the compression of the data using Huffman encoding. Of course this is only the last step in a compression protocol like for example jpg that makes use of Fourier analysis or wavelets or other advanced techniques. These are however not discussed here, given the level of this book. Parsing algorithms and context free grammars are introduced and illustrated with the evaluation of a mathematical expression and an elementary sorting algorithm. Techniques to obtain gray-scale images (from etching and engraving to dithering variants which are the modern digital analogs).</p>
<p>
So this brief summary illustrates that the book is more about initiating computer science concepts to the reader (and even these are at a fairly elementary level) rather than the mathematics underlying these. The chapters typically end with some exercises at the same elementary level as the text. Solutions are given at the end of the book. One might get an idea of what an algorithm might be like, or what kind of algorithms are at work when one is editing a text, but the discussion of most elements is too shallow to bring the uninitiated reader beyond a vague idea. It might be an idea for an author who wants to popularize mathematics to write a book on the silent mathematical aspects of what is discussed in this one.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This contains ten sketches of computer science applications for the uninitiated reader. Some ideas and concepts are illustrated all related to text processing, illustrations, and storage, all linked to a central concept of publishing books in a digital era.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/john-withington" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">John Withington</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/coherent-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Coherent Press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2016</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">978-0957671126 (pbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">£10.99</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">204</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/mathematical-aspects-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematical Aspects of Computer Science</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://www.amazon.com/Machine-Made-this-Book-Sketches/dp/0957671121" title="Link to web page">http://www.amazon.com/Machine-Made-this-Book-Sketches/dp/0957671121</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/97r99" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">97R99</a></li></ul></span>Mon, 04 Apr 2016 09:52:47 +0000Adhemar Bultheel46845 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/machine-made-book#commentsThe Computing Universe, A journey through a revolution
https://euro-math-soc.eu/review/computing-universe-journey-through-revolution
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
Although several mathematicians have contributed to the birth of computers and computer science, computer science has now grown into a mature field that is the result of a very productive collaboration between scientists developing the hardware and the software. Nowadays, computers and hence computer science have a global impact on society so that it is important that one should have an idea of what computer science really stands for. Many are however have a fuzzy or even a wrong idea of what it really means. It is not a matter of sitting behind a computer all day long. Neither is a smart hacker automatically a good computer scientist. Computer science is so much more than skillful programming. Add to this that this science draws from many scientific disciplines and it is obvious that it is impossible to cover every aspect in just one book. The authors did nevertheless a marvelous job in sketching how the discipline has grown in such a short time from some abstract ideas and electromechanical devices into a science developing the software mastering global social networks running on hardware that nowadays is relying on nanotechnology. Many of the ICT buzz words are placed in their historical context and their meaning is clearly explained avoiding all the technical ballast.</p>
<p>
Certainly in the beginning (and the history is not that old) one was computer scientist as a secondary activity. Educated as a mathematician, an engineer, or a physicist your career could be shifted towards computer science. So we find in this book many mathematicians, engineers, physicists who contributed to the field (the namelist index has over 650 names). So I somewhat disagree with the statement of the introduction saying that ``It is curious that schoolchildren are taught the names and achievements of great mathematicians, physicists, chemists, and biologists but not about the great computer pioneers''. I believe that names like Steve Jobs, Mark Zuckerberg, Bill Gates, Larry Page, are nowadays pretty well known. You may think of them more as smart business men, rather than computer scientists, but they certainly helped developing the science. But also names like Alan Turing, von Neumann, Konrad Zuse, Ada Lovelace and other pioneers who were the computer scientists <em>avant la lettre</em> may be pretty well known. It is one of the purposes of this book to throw in many more names beyond these.</p>
<p>
Because the book is so broad, giving a detailed summary of the contents is almost impossible. The first chapters follow more or less the historical development. In about 150 pages you are brought from 1930 to the first personal computers of the late seventies. Meanwhile you meet the pioneers, the first electronic computers, Boolean algebra, circuits, programming languages, algorithms, Moore's law, etc. The second half of the book is more by topic, the chronology becoming somewhat fuzzy because many things happened simultaneously. Such topics are computer games, networks, the World Wide Web, hacking and cryptography, artificial intelligence, neural nets, and natural language processing. The last three chapters give a sneak preview of what is the expected future. Miniaturization hits the wall of nanoscience, and while quantum computing is still in the running, DNA computing is emerging. And on the applications side we have assimilated the simulation age of the 1950's and the communication era of the 1980's and have now engaged in the embodiment age. The latter entails dealing with uncertainties, robots, the Internet of Things, the mind-body problem, etc. Here we are on the edge of science fiction, which is the subject of the last chapter: the computer, robotics, and advanced artificial intelligence, as described in many science fiction books.</p>
<p>
The structure of the book is not linear. There are the successive chapters where the text is interrupted by many colourful illustrations, but the pages have also a wide margin (making the book somewhat wider than a usual text book) with extra illustrations, sometimes with brief additional information. Each chapter ends with a list of concepts that were discussed. But besides these chapters there are also several additional "frames". These discuss topics somehow related to the chapter, but which can be read independently. Their length can vary from half a page to seven or eight pages. In that sense it is a bit of a coffee table book that you can pick up for the pictures or to read some of the shorter comments that come with the illustrations. Of course, then you loose the context and the fabric. To go more systematically through a certain topic (for example early history, the Internet, artificial intelligence,...) there is an appendix in which is explained what to read if you are only interested in one of these. There is also a book list for further reading organized by chapter. The name index is impressive, as we mentioned before. The separate subject index is essential to recover a specific item in this sea of information.</p>
<p>
The book is really a pleasure to read. It is the broadest possible introduction to computer science for the layman one can imagine. The average computer user is not interested in the top-notch technical details, but rather in what these nerdy terms really mean, why he or she is annoyed with certain features. Placing them in their historical context is the best way to explain and understand how they came about. You learn about Gödel's incompleteness theorems, yes, but you also learn about the origin of the Ctr-Alt-Del key combination, of the 'Error 404 File not found' message, and you are told who is the inventor of emoticons. Besides the many illustrations, including cartoons and even plain jokes, the text is interlaced with many historical quotes, some of which are quite amusing. I cannot resist repeating here the following quotes by the Dutch computer scientist Edsger Dijkstra:</p>
<p>
"The use of COBOL cripples the mind; its teaching should therefore be regarded as a criminal offense."</p>
<p>
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration".</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This richly illustrated book brings a widely accessible survey of computer science. It describes not only its history from Babbage till the 21st century, and numerous bits of amusing facts, but it also introduces the reader to more advances topics, and gives some sneak preview of the expected future of the field.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/tony-hey" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tony Hey</a></li><li class="vocabulary-links field-item odd"><a href="/author/gyuri-p%C3%A1pay" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Gyuri Pápay</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/cambridge-university-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">cambridge university press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2015</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">978-0-521-15018-7 (pbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">$39.99</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">413</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/history-mathematics" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">History of Mathematics</a></li><li class="vocabulary-links field-item odd"><a href="/imu/mathematics-science-and-technology" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Mathematics in Science and Technology</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=9780521150187" title="Link to web page">http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=9780521150187</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-03" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-03</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/01a60" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">01a60</a></li><li class="vocabulary-links field-item even"><a href="/msc-full/01a61" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">01A61</a></li></ul></span>Mon, 30 Mar 2015 06:32:56 +0000Adhemar Bultheel46142 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/computing-universe-journey-through-revolution#commentsPython for Scientists
https://euro-math-soc.eu/review/python-scientists
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
Python is a popular computer scripting language. Its popularity is earned because it is open source and hence completely free as opposed to for example matlab, maple, or mathematica. To develop scientific software, the advantage of such interpreters is that they are very flexible in trying out several possibilities during the design stage of scientific software and they allow for an integration of numerical, algebraic, and graphical aspects of the problem. The downside is that they are usually rather slow. For production purposes, the software can better be implemented in a language like Fortran or C that can be compiled and that speeds up execution time considerably. These however are much less intuitive and more complex languages to learn. Python was developed in 1991 by Guido van Rossum (he was a big fan of <em>Monty Python's Flying Circus</em>), and has now become one of the most popular scripting languages. An army of volunteer developers have surrounded it with many modules (even compiled) that can be understood by Python and thus can be integrated while executing a Python program. Especially the <em>numpy</em> and <em>matplotlib</em> package has contributed substantially in the use of Python for scientific computing.</p>
<p>
Of course already many books are available that introduce Python. So the question should be answered here in what sense this book differs from all the others. The target audience consists of students and researchers who are familiar with computers, programming, and numerical analysis, and Stewart wants to introduce them to the possibilities that Python can provide in their study or work. In this sense, it is complementary to <a href="http://www.euro-math-soc.eu/review/numerical-methods-engineering-python-3">Numerical Methods in Engineering with Python 3</a> where the prime focus was to give a numerical analysis course where Python was used as one of the possible tools, introducing only the minimal elements of the language. In the Stewart book the focus is the language, although there are some (rather extensive) numerical examples, but they are just case studies to illustrate the power of Python, with only a minimum of numerics introduced (which are assumed to be known anyway). One of the advantages of this book is that it is deliberately kept short. Only 232 pages for such a lot of information is not that much. It goes directly to the core that should interest the target reader. Ideally it is to be read hands-on the computer, and after reading and experimenting your way through it, you are supposed to be ready to start on your own and find your way in more elaborate programming manuals for Python, for example the excellent documentation on the <a href="http://docs.python.org/">Python site</a> and the websites for the many add-on packages that are available on the Internet. No exercises are provided, so it is not really a course book, but the practitioner who wants to learn Python will love it. This is the type of book I have been looking for to learn Python.</p>
<p>
An outline of the book is as follows. Installing Python and its packages is explained in an appendix, so that Chapter 2 can start with the introduction using the IPython interactive screen. Users of matlab, maple, or mathematica will be familiar with this: you type a command and Python immediately responds. There are some elementary examples and a lot of tips for beginners: how to get help, tab completion, automagic commands etc. This is a feature also of the following chapters: Stewart is always giving good advise for the Python novice, things you would not find in a thick formal manual. So the true tutorial starts with Chapter 3 by introducing the different types objects, identifiers, loops, tests, functions, I/O commands. The Python classes might be a bit less familiar to some readers not familiar with object oriented programming (OOP). However, this is not an OOP course and only just enough information is provided to get along. The examples are typical for scientists: Fibonacci, gcd, prime numbers. Numerical computations become only feasible with Chapter 4 where the <em>numpy</em> package is introduced. Now arrays and linear algebra with their basic numerical tools become available. With these elements, the numerically educated reader should be able to take up the slack and move on. The next two chapters are devoted to two- and three-dimensional graphics. There is a <em>numpy</em> interface with <em>gnuplot</em> but graphics of matlab quality are provided through the <em>matplotlib</em> package with the possibility to include for example LaTeX text or make animations. For the 3D graphics, an interface is needed to render 3D data on a 2D screen. There are different standards to do this and Stewart illustrates two of them: the <em>mplot3d</em> module of <em>matplotlib</em> or the <em>mlab</em> module from the <em>mayavi</em> package (the latter using a VTK standard). The Python programming is similar but obviously different and also the eventual rendering looks somewhat different. Apart from the numerics for the problem to be solved, the visualizing part takes often most of the programming lines. So Stewart has spent relatively much attention to these chapters.</p>
<p>
Equipped with all this technical background, some more involved case studies are given in the second half of the book. Chapter 7 gives fully worked out examples for ordinary differential equations (initial and boundary value problems), delay differential equations and stochastic differential equations. Explaining the numerical methods is kept to a minimum. The focus is on the relevant modules to be loaded and the Python programming. The same is true for Chapter 8 dealing with partial differential equations. Here it is illustrated how (possibly precompiled) fortran programs can be imported in Python. Fortran is used as an example, but that could also have been C. The main purpose is to re-use existing software (e.g. fft) or speed up the time consuming number crunching parts. The final chapter illustrates how easily a multigrid code can be produced in Python by exploiting the agility of Python to deal with classes and with recursion.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">Adhemar Bultheel</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
This is a concise, yet practical description of the Python language for scientists. It is assumed that the reader is familiar with computer programming via e.g. matlab, fortran or C. Especially the numerical package <em>numpy</em> and the plot package <em>matplotlib</em> get focus. The second half gives some nontrivial numerical cases where differential equations are solved in Python.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/john-m-stewart" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">John M. Stewart</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/cambridge-university-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">cambridge university press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2014</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">978-1107061392 (hbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">65,00 €</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">232</div></div></div><span class="vocabulary field field-name-field-review-class field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/imu/numerical-analysis-and-scientific-computing" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Numerical Analysis and Scientific Computing</a></li><li class="vocabulary-links field-item odd"><a href="/imu/partial-differential-equations" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Partial Differential Equations</a></li></ul></span><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://www.cambridge.org/us/academic/subjects/mathematics/computational-science/python-scientists" title="Link to web page">http://www.cambridge.org/us/academic/subjects/mathematics/computational-science/python-scientists</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68n15" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68N15</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-other field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-04" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-04</a></li><li class="vocabulary-links field-item odd"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li><li class="vocabulary-links field-item even"><a href="/msc-full/97n80" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">97N80</a></li></ul></span>Mon, 25 Aug 2014 07:28:56 +0000Adhemar Bultheel45690 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/python-scientists#commentsNine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers
https://euro-math-soc.eu/review/nine-algorithms-changed-future-ingenious-ideas-drive-todays-computers
<div class="field field-name-field-review-review field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
Today nearly everybody is able to handle a computer, yet many have no idea what computer science is about, like some think that if you are a mathematician, then you should be good at mental arithmetic and vice versa. So if the grandson is a computer whiz, who is very good in solving grandma's computer problems, she thinks he should become a computer scientist. To judge whether this is true, you should know what computer science really is about. This book gives some insight.</p>
<p>
An unrespectful and somewhat inaccurate alternative title for this book could be <em>Computer science for dummies</em> and MacCormick is very good in explaining to the grandmas what computer scientists have done for her, even if before she didn't care too much. All is kept at a very low level. No mathematics, no unexplained technical terms, and all concepts introduced by analogy through a non-technical everyday-life situation. The text reads as if you are listening to MacCormick giving a Christmas lecture.</p>
<p>
MacCormick has chosen nine algorithms (although nine-ish is more appropriate since the precise number nine is disputable) to bring his message. Why these algorithms? This is explained in the introduction: algorithms that everybody is using, solving concrete problems and realizing some abstract ideas. I believe these arguments are a bit shaky because in my view they apply to many other algorithms as well. I suspect the criteria are written ad hoc like an introduction most often is. Of course he also has to explain what an algorithm is and what makes an algorithm `great'. The latter is simple because they gave MacCormick a personal `aha'-experience when the key-idea is exposed (which he calls a `trick', i.e. the 'thing-that-does-the-trick'). That does explain the selection, because there is no argument possible against personal preference. But whatever the reason is, the selected algorithms solve problems that everyone is familiar with while most people never thought about the mechanisms behind them and MacCormick is good at explaining the basics in a very accessible way.</p>
<p>
So here is what has been selected. Chapter 2 and 3 deal with search engines for the WWW. The origin of indexing the web pages which made AltaVista great and then the ranking mechanism used by Google. Mind you, although PageRank is basically solving a huge eigenvalue problem, nothing of that sort is ever mentioned, but the basics of hyperlinks, authorities and random surfer are neatly explained with a toy problem where people are referring to a page giving a recipe for scrambled eggs. This kind of remark also applies to the other chapters. For example, the next one explains public key cryptography, and although there are pretty hard mathematics behind involving prime numbers, elliptic curves etc., the idea is explained making mixtures of paint public, which can not be unmixed, and yet two people can communicate a common color keeping one ingredient private, without other observers being able to find out what their common color is. Paints become numbers only at a later stage of the chapter. Similarly other mechanisms are introduced in the subsequent chapters like error correcting codes, pattern recognition (e.g., automatic reading of ZIP codes) via decision trees and neural nets, data compression (encoding and jpeg are discussed, but words like `Fourier' or `wavelet' are carefully avoided). A somewhat unexpected subject for me is the one on databases. This explains how databases are protected against crashes or unfinished operations and how replicas are kept synchronized avoiding inconsistencies at all cost. Digital signatures on the other hand are a more obvious choice.</p>
<p>
All these algorithms are tacitly used on a daily basis by millions of people when they use a keyboard or a touch screen, often without realizing that these things are happening at the other side of the screen. The next chapter however is somewhat out of the main track. What MacCormick tries to do is explain the undecidability problem. The impossibility to construct an algorithm that always leads to a correct yes-no answer. Here he starts with convincing the reader that any program on a computer can run on any file and strongly encourages to try that out. I hope that the experiments of the grandmas following this advise will not damage their computer too much so that their grandsons can restore the original operational mode. Anyway the author hypothetically constructs a sequence of programs that read programs as input and give a yes-no answer (along the lines explaining what a proof by contradiction is). He so can show the reader that they must come to the conclusion that it is impossible to write a crash-detecting program since it will give a contradiction when it uses itself as input. This brings the reader who managed to finish the chapter up to the <em>halting problem</em>, the <em>Church-Turing thesis</em> and the related philosophical considerations</p>
<p>
Whether you agree with the choice of algorithms made or not, they form a good set of samples of what made some of the ICT applications a success. The world would be different if they had not been there. MacCormick did an excellent job is explaining the basic ingredients without needing any programming skills. Anyone who is used to a computer is able to grasp the ideas. His afterthoughts about what the great algorithms of the next generation or century will be are a bit thin, but nobody really knows what the future will be. If we ever get quantum computing to work, we shall have to rethink almost everything. This brings us back to the title of the book. The algorithms that were discussed have certainly influenced current computing, but whether they will change the future is not certain.</p>
<p>
Thus be warned: no mathematics, no Computer Science with capitals but easy reading for everyone from 9 till 99. If you are a computer scientist yourself, you might find ideas about how to explain things, or you might find this book an excellent idea to give as a present to grandma so that you don't have to explain yourself. You could hardly do better.</p>
</div></div></div></div><div class="field field-name-field-review-reviewer field-type-text field-label-inline clearfix"><div class="field-label">Reviewer: </div><div class="field-items"><div class="field-item even">A. Bultheel</div></div></div><div class="field field-name-field-review-legacy-affiliation field-type-text field-label-inline clearfix"><div class="field-label">Affiliation: </div><div class="field-items"><div class="field-item even">KU Leuven</div></div></div><div class="field field-name-field-review-desc field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><div class="tex2jax"><p>
A low level introduction to a selection of algorithms that are used by most people almost on a daily basis, often without knowing it. How search engines work: the indexing system of AltaVista and the PageRank system of Google; public key cryptography; error correcting codes; pattern recognition; data compression; database consistency and reliability and digital signatures. To conclude, some considerations about the limitations of computers and decidability are given.</p>
</div></div></div></div><span class="vocabulary field field-name-field-review-author field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Author: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/author/john-maccormick" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">john maccormick</a></li></ul></span><span class="vocabulary field field-name-field-review-publisher field-type-taxonomy-term-reference field-label-inline clearfix"><h2 class="field-label">Publisher: </h2><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/publisher/princeton-university-press" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">princeton university press</a></li></ul></span><div class="field field-name-field-review-pub field-type-number-integer field-label-inline clearfix"><div class="field-label">Published: </div><div class="field-items"><div class="field-item even">2013</div></div></div><div class="field field-name-field-review-isbn field-type-text field-label-inline clearfix"><div class="field-label">ISBN: </div><div class="field-items"><div class="field-item even">978-0-691-158198-7 (pbk), 978-0-691-14714-7 (hbk)</div></div></div><div class="field field-name-field-review-price field-type-text field-label-inline clearfix"><div class="field-label">Price: </div><div class="field-items"><div class="field-item even">11.95 £ (paper), 19.95 £ (cloth)</div></div></div><div class="field field-name-field-review-pages field-type-number-integer field-label-inline clearfix"><div class="field-label">Pages: </div><div class="field-items"><div class="field-item even">232</div></div></div><div class="field field-name-field-review-website field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://press.princeton.edu/titles/9528.html" title="Link to web page">http://press.princeton.edu/titles/9528.html</a></div></div></div><span class="vocabulary field field-name-field-review-msc field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc/68-computer-science" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68 Computer science</a></li></ul></span><span class="vocabulary field field-name-field-review-msc-full field-type-taxonomy-term-reference field-label-hidden"><ul class="vocabulary-list"><li class="vocabulary-links field-item even"><a href="/msc-full/68-01" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">68-01</a></li></ul></span>Tue, 06 Aug 2013 11:09:41 +0000Adhemar Bultheel45520 at https://euro-math-soc.euhttps://euro-math-soc.eu/review/nine-algorithms-changed-future-ingenious-ideas-drive-todays-computers#comments