- Paperback: 364 pages
- Publisher: Packt Publishing (11 May 2011)
- Language: English
- ISBN-10: 1849514461
- ISBN-13: 978-1849514460
- Product Dimensions: 19 x 2.1 x 23.5 cm
- Average Customer Review: 4.7 out of 5 stars See all reviews (3 customer reviews)
- Amazon Bestsellers Rank: 482,030 in Books (See Top 100 in Books)
Sage Beginner's Guide Paperback – 11 May 2011
|New from||Used from|
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Customers who bought this item also bought
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
If you are a seller for this product, would you like to suggest updates through seller support?
About the Author
Craig Finch is a Ph. D. candidate in the Modeling and Simulation program at the University of Central Florida (UCF). He earned a Bachelor of Science degree from the University of Illinois at Urbana-Champaign and a Master of Science degree from UCF, both in electrical engineering. Craig worked as a design engineer for TriQuint Semiconductor, and currently works as a research assistant in the Hybrid Systems Lab at the UCF NanoScience Technology Center. Craig's professional goal is to develop tools for computational science and engineering and use them to solve difficult problems. In particular, he is interested in developing tools to help biologists study living systems. Craig is committed to using, developing, and promoting open-source software. He provides documentation and "how-to" examples on his blog at http://www.shocksolution.com. I would like to thank my advisers, Dr. J. Hickman and Dr. Tom Clarke, for giving me the opportunity to pursue my doctorate. I would also like to thank my parents for buying the Apple IIGS computer that started it all.
Top Customer Reviews
There are 10 chapters and it's about 350 pages. Although Sage of course has color plotting, all figures in this book are in black and white, so the reader really must try out the Sage code given in the book to get the full effect. Each chapter features many "Time for action" Sage code examples (also conveniently listed in the table of contents at the front of the book), followed by a "What just happened?" section explaining in detail (and without computer code) what the example did. These make the book more useful to the beginner as well as for someone wanting a quick reference for one of the examples. All these examples use the command-line version of Sage (typing your commands into a terminal window at a sage: prompt) but there are several sections explaining the GUI version of Sage (typing your commands into a Mathematica-like "notebook cell") as well.Read more ›
As with a lot of (all?) Packt Publishing Beginner's Guide, the book with a small introduction of what you can expect of the piece of software and its installation process on the three major platforms. Although for Windows the process is more complicated, the author gives the whole explanation, even on why the process is so complicated for this platform.
Sage consists of several layers, Python being one of them, but there are many others. The book tries to dig a little bit further each time. The first "real" (i.e. outside the introductory and installation) chapter tackles the two main ways of using Sage, the interactive shell and the notebook. The different options and the basic usage are explained and illustrated with a lot of examples. The next step is mastering basic Python, which also done with the same efficiency as before.
As Sage is mostly about math stuff, the book spends several chapters on the different APIs it offers to handle data. First, linear algebra and the different vectors and matrices are introduced, with a final reference to Numpy and its special arrays. Here is perhaps something lacking in this book: a reference to scipy. Indeed, scipy has a lot to offer in terms of linear algebgra, and it works with Numpy arrays. That being said, the common linear algebra issues will be solved by the Sage interface directly.
A huge topic is graphics and scientific plots. The book exposes the different aspects of graphical Sage and also its main support package matplotlib. 3D graphics are also tackled, also they are only very recent in their current form in Matplotlib.Read more ›
Most Helpful Customer Reviews on Amazon.com (beta)
There are 10 chapters and it's about 350 pages. Although Sage of course has color plotting, all figures in this book are in black and white, so the reader really must try out the Sage code given in the book to get the full effect. Each chapter features many "Time for action" Sage code examples (also conveniently listed in the table of contents at the front of the book), followed by a "What just happened?" section explaining in detail (and without computer code) what the example did. These make the book more useful to the beginner as well as for someone wanting a quick reference for one of the examples. All these examples use the command-line version of Sage (typing your commands into a terminal window at a sage: prompt) but there are several sections explaining the GUI version of Sage (typing your commands into a Mathematica-like "notebook cell") as well.
Here is a chapter-by-chapter summary:
The first chapter, "What can you do with Sage?", is a survey of some of Sage`s most commonly used capabilities. Examples such as solving a differential equations, plotting experimental data, and some simple example matrix computations are presented.
The second chapter is "Installing Sage". This covers the steps you go though for a Mac OS, Windows, and Linux installation of Sage. Since this is scary for a number of users who are not very computer-savvy, it is nice an entire chapter is devoted to this.
The third chapter, "Getting started with Sage", introduces the new Sage user to the user interface, basic Sage syntax, user-defined functions, and some of the available data types (such as strings and real number types).
"Introducing Python and Sage", the fourth chapter, introduces syntax for Python lists, dictionaries, for loops, if-then statements, and also reading and writing to files. Sage is based on Python, a popular language used extensively in industry (at google among other places). This chapter introduces some very useful stuff, but is pretty basic if you know Python already.
The 5th chapter is "Vectors, matrices and linear algebra". Sage has very wide functionality in linear algebra, with specialized packages for numerical computations for real and complex matrices, matrices over a finite field, or matrices having symbolic coefficients, such as functions of a variable x.
Sage`s functionality in two-dimensional and three-dimensional plotting is described in the 6th chapter, "Plotting with Sage". There is 3-d "live-view" (i.e., you can use the mouse to rotate a plot of a surface or solid in 3-space), histogram plots, as well as simpler plots using Sage`s 2-d plotting package, matplotlib.
Chapter 7 is "Making symbolic mathematics easy". Various topics are covered, from various calculus operations, such as limits, derivatives, integrals, and Laplace transforms, to exact
solutions to equations with variable coefficients, to infinite sums such as power series, to solving ordinary differential equations.
"Solving problems numerically" is the next chapter. This is the meat-and-potatoes for an applied mathematician. Sage includes many packages which have been developed to solve optimization problems, linear programming problems, numerical solutions of ordinary differential equations, numerical integration, and probability and statistics. These are introduced briefly in this chapter.
The 9th chapter is "Learning advanced python programming". Here object-oriented programming is introduced by means of examples, and it is shown how Python handles errors and imports.
The last chapter "Where to go from here" discusses selected miscellaneous advanced topics.
Topics covered include: LaTeX, interactive plotting using the Sage notebook, as well as a fairly detailed example of analyzing colliding spheres in Sage from several different approaches.
The book has a very good index and, overall I believe is a very welcomed addition to the literature of Sage books. Maybe it's just my generation, but to me it is a little expensive for a paperback. Because of that, and the fact that it is not as well-rounded as it could be, I'd rate it as 4.5 stars.
Chapter 1 tries to capture reader's attention having a quick look, withouth too many explanations, at some of the situations in which Sage can be useful, apart from presenting the program's graphical interface (the "notebook"). Chapters 2, 3 and 4 are centered on showing the user how to get and install the software in the most popular desktop operating systems (Windows, OS X and GNU/Linux), analyzing the features of the notebook and, very important, defining the elements of the programming language, based in Python: its data types, control structures and function defining methods. Here the author assumes the reader has already programming knowledges, so he can focus on describing the particularities of Sage and Python.
Chapters 5, 6, 7 and 8 may be considered the central ones of the book, and are dedicated to go deep into Sage's capabilities in linear algebra, plotting, symbolic calculus and numerical analysis. Finally, chapters 9 and 10 introduce two topics that, thought not directly related to the previous ones, may also be interesting: object oriented programming (OOP) with Python and Sage's relationship with other software packages such as LaTeX, Numpy or Cython.
All the chapters have plenty of code samples, figures and proposed exercises, so reading them is quite enjoyable. First a simple program is shown, then new concepts are analyzed and then sometimes the reader is encouraged to solve a similar problem or do a simple quiz. Sitting near a computer and thanks to these dynamic explanations one can achieve results very shortly.
Although the book is extremely useful from an applied point of view, and of course as an introduction to the Sage way and the Python programming language, some of the very strong points of Sage are missing, such as its multiple interfaces to other software packages, both free and non-free (Mathematica, GAP, Matlab, Octave) or its enormous capabilities in number and set theory, combinatorics and other more pure mathematical branches. Maybe the title could have been "Sage Beginner's Guide for Engineers and Physicists".
Anyway, I strongly recommend this book to those who want to know one of the most complete free-as-in-freedom alternatives to programs like Mathematica or Maple available. And for those who want to go deeper into its possibilities, they will always have its huge reference freely available on the Internet.
The first chapter is a tour of "what can be done with Sage". The second chapter deals with installing Sage across a variety of platforms. Chapter three eases the user into the sage interface, it discusses how to use the CLI, the notebook interface and get help. Chapter four is all about python; the chapter does a great job introducing python: one of the best I've seen in a book. It arms the reader to work with Sage and python.
Chapter five focuses on vectors, matrices and linear algebra. Sagemath includes numpy and the chapter covers numpy in good detail. Chapter six is my favorite. I love plotting graphs, the chapter discusses various types of plots. The chapter does a great job explaining Matplotlib. Chapter seven is all about symbolic mathematics: integrals, differentials, ODE's, solving equations, finding roots, Taylor series and more. Chapter eight is about solving problems numerically and for me this is the best chapter in the book. It covers a variety of topics -- finding roots, maxima and minima of functions, gradients, integration, discrete Fourier transforms, window functions, solving ODE's. linear programming, constrained optimization to probability. Chapters five to eight are the meat of the book and I expect all readers to keep referring back to these chapters time and again.
Chapter nine is about advanced python programming, but I was a little let down based on what I had seen in chapter four. The chapter covers OOP, modules, exception handling and unit testing. What I did not like was the way the code is formatted and occupies a majority of the contents of the chapter. Chapter ten is about my favorite tool, LaTeX, it covers integration of LaTeX and Sage. No mathematical software is complete unless one can build interactive workbooks and the author does a great job explaining how to go about that business with interactive graphics and good typesetting.
Given the capabilities of Sage, the book fails to cover some of the discrete mathematics aspects, like graph theory, combinatorics and cryptography. To be fair, the author does mention in the preface the focus is on calculus, ODE and linear algebra.
Sage is a beast with several projects integrated under a single umbrella. This book meets the goals it sets out to achieve and does so in an incredible manner with clear definition of chapter goals, good summaries and excellent examples. The breadth of coverage of topics is very good for an introductory book on Sage. If there is one book I could recommend on getting started with Sage, it would be this "Sage beginners guide"
Here on Amazon you can browse the table of contents, which gives a pretty good idea of the strengths of the book, namely basic computation and plotting, numerical calculations, and data analysis. The focus was an excellent choice considering what is already available. The current free Sage Tutorial ([...]) is oriented much more towards pure mathematicians. There is a Numerical Computing With Sage ([...]) as part of the standard documentation ([...]), but at the moment its quite short and nowhere near as helpful as Finch's book.
I liked the style of the book a lot. There are many code examples that illustrate how to accomplish concrete tasks, along with good explanations of what they are doing. Many of these are things that are unfortunately far from obvious to a beginner (or even intermediate) Sage user. Despite using Sage heavily for the last five years, I learned some new things. The book is particularly strong in showing how to use Numpy, Scipy, and Matplotlib. Sage wraps a lot of the functionality of these projects, but if you want to do something that isn't included in the standard interfaces it can be quite mystifying.
Chapter 9, "Learning Advanced Python Programming", might have been a little ambitious. There's nothing wrong with it, but its too short to provide enough. Fortunately there are a lot of good books, some of them free, that cover Python programming in much more depth. I would have preferred some of this space and effort to be devoted to using Cython and the @interact command, which are covered very briefly in Chapter 10.
I teach several classes using Sage and I will definitely advertise this text as a useful optional supplement (I consider it a little too expensive to add on as a mandatory second text). It would be nice if some institutions considered using Sage instead of its commercial competitors such as Maple, Matlab, and Mathematica - you could probably give every student a copy of this book for the money saved from license fees!
The only thing I disliked about the book was the quality of the illustrations. Sage output that was in LaTeX was not typeset, but instead looks as if a PNG was copied from a screenshot. Some of the examples would have benefited from being in color. The quality of the plots is also somewhat poor. This is not too big a deal if one is following along with Sage, since you can reproduce the figures. None of them are bad enough to obscure the content.
Overall this is a very impressive and useful introduction to Sage that should help any beginning user a great deal.
While I use Sage and Python in technical programming myself, I have not been able to successfully teach someone else to do the same. What Finch does is to introduce someone not only to tools available for Python programmers, but instructions on setting up the environment, the practice of technical programming, but also the idea that each of these steps sets up something else.
Sage is a large and highly capable program, so any book has to focus somewhere. So the chapters can be thought of as covering the following (Note: this is NOT a chapter listing):
- Introduction and installation of Sage
- Use of Sage as an interactive environment
- Python programming: Introductory and advanced programming
- Numerical methods: Linear algebra, solving equations, numeric integration, ODE
- Symbolic math: algebra and calculus
- Plotting: 2D and 3D
In each substantive chapter, topics are covered in a standard pattern. A brief narrative description, a short sample program that uses the concept, a description of what program does and why the output looks like it does, then sometimes there are exercises that you can use to confirm you understand the concept or build your intuitive understanding.
What is missing? These are probably additional topics for "Where do we go from here" chapter. First, they do not take advantage of the Python ecosystem. Because of the basics of Numpy, Scipy and Matplotlib, numerous other scientific libraries exist that are not in Sage. I would include some notes on installing packages for use in Sage (which requires some modifications to the standard procedures). Also, an explicit mention of Scipy, since it is the basis for a number of other scientific packages in Python.
Sage: Beginner's Guide is a great addition to the library. It fills the role of the introduction to technical programming in Python that for Matlab is filled by professors who teach computational science/engineering courses. I envision that my copy of the book will be loaned out to one student after another for some time to come.
(Note: I received a free copy of Sage: Beginner's Guide for review from Packt Publishing)