Best Alexander A. Stepanov books

From Mathematics to Generic Programming

Alexander A. Stepanov

Best price for this book: $ 24.61


In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful.


If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem.


As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming—insight that will prove invaluable no matter what programming languages and paradigms you use.


You will learn about

  • How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
  • Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
  • A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
  • Powerful mathematical approaches to abstraction
  • How abstract algebra provides the idea at the heart of generic programming
  • Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
  • Surprising subtleties of simple programming tasks and what you can learn from them
  • How practical implementations can exploit theoretical knowledge


Elements of Programming

Alexander A. Stepanov

Best price for this book: $ 28.23

“Ask a mechanical, structural, or electrical engineer how far they would get without a heavy reliance on a firm mathematical foundation, and they will tell you, ‘not far.’ Yet so-called software engineers often practice their art with little or no idea of the mathematical underpinnings of what they are doing. And then we wonder why software is notorious for being delivered late and full of bugs, while other engineers routinely deliver finished bridges, automobiles, electrical appliances, etc., on time and with only minor defects. This book sets out to redress this imbalance. Members of my advanced development team at Adobe who took the course based on the same material all benefited greatly from the time invested. It may appear as a highly technical text intended only for computer scientists, but it should be required reading for all practicing software engineers.”
    —Martin Newell, Adobe Fellow

 “The book contains some of the most beautiful code I have ever seen.”
    —Bjarne Stroustrup, Designer of C++

“I am happy to see the content of Alex’s course, the development and teaching of which I strongly supported as the CTO of Silicon Graphics, now available to all programmers in this elegant little book.”
    —Forest Baskett, General Partner, New Enterprise Associates

“Paul’s patience and architectural experience helped to organize Alex’s  mathematical approach into a tightly-structured edifice—an impressive feat!”
    —Robert W. Taylor, Founder of Xerox PARC CSL and DEC Systems Research Center

Elements of Programming provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering,must be based on a solid mathematical foundation. The book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation  algorithm is defined to work with any associative operation. Using abstract algorithms leads to efficient, reliable, secure, and economical software.

This is not an easy book. Nor is it a compilation of tips and tricks for incremental improvements in your programming skills. The book’s value is more fundamental and, ultimately, more critical for insight into programming. To benefit fully, you will need to work through it from beginning to end, reading the code, proving the lemmas, and doing the exercises. When finished, you will see how the application of the deductive method to your programs assures that your system’s software components will work together and behave as they must.

The book presents a number of algorithms and requirements for types on which they are defined. The code for these descriptions—also available on the Web—is written in a small subset of C++ meant to be accessible to any experienced programmer. This subset is defined in a special language appendix coauthored by Sean Parent and Bjarne Stroustrup.

Whether you are a software developer, or any other professional for whom programming is an important activity, or a committed student, you will come to understand what the book’s experienced authors have been teaching and demonstrating for years—that mathematics is good for programming, and that theory is good for practice.

The C++ Standard Template Library

P.J. Plauger

Best price for this book: $ 51.37

With the ANSI/ISO C++ Standard Template Library (STL), C++ developers have a powerful toolset for maximizing productivity, software quality, and performance at the same time. STL provides both comprehensive sets of container classes and fundamental algorithms to go with them-a large, systematic, and efficient framework for C++ development. Now, in this long-awaited book, the creators of the C++ Standard Template Library explain it authoritatively and in depth. Each chapter of The C++ Standard Template Library covers one STL component, including: *Detailed background about the component and its uses *A thorough review of the relevant ANSI/ISO C++ standard *Practical techniques for using and implementing the component *Extensive sample code *Hands-on exercises Appendices present lists of reserved names, a detailed glossary of terms and references, and how STL interfaces with the rest of the Standard C++ library. Fully reflective of the final ANSI/ISO STL standard, The C++ Standard Template Library is the last word on all aspects of STL development for every experienced C++ programmer.

Data Science in Python. Volume 3: Plots and Charts with Matplotlib, Data Analysis with Python and SQLite

Alexander Stepanov

Best price for this book: $ 0

This volume describes data visualization with Python and using SQL database for data analysis. I assume you are familiar with Python 3, have scientific Python 3 distribution installed and know how to start IPython notebook that is used for all examples in this book. If you need help setting up scientific Python on your machine be sure to check out introductory volume 1 of this series. You might also want to look at volume 2 that deals with reading and writing tabular data, interactive data exploration with IPython notebook, GUI programming, deployment and high performance computations in Python.

Data visualization is one of the strongest points of scientific Python stack. Matplotlib library makes it easy to do both quick data exploration and creating publication quality graphs. It has ready made routines for drawing wide variety of plots, from classical line and bar plots to modern violin plots. It allows users to annotate plots or create novel plot types. Matplotlib's ability to export drawings in numerous graphic formats, including pdf, svg, animated gif or mp4 video makes it useful for interactive data exploration, web applications or drawing high quality diagrams. It is way more flexible than any GUI plotting software and will benefit any student's or scientist's tool box. This book is intended to get you started with Matplotlib.
SQL databases is a science of its own. Usually database is associated with data storage, but in this book I use it for data analysis. SQL is more expressive, clear and powerful than any spreadsheet application can ever be.
SQLite database is used for all examples. Python is used to load realistic bioinformatic data, but most of the queries can be run in GUI database management software you can download from the internet.
In a final chapter I combine Python, Matplotlib and SQL to solve a realistic problem - identify genes that are frequently mentioned together in scientific publications and draw a network showing how many papers mention each pair of genes.

Data Science in Python. Volume 1: Get and Install Scientific Python3: WinPython, Anaconda

Alexander Stepanov

Best price for this book: $ 0

Python is the most popular programming language in scientific computing today. This series is for people who want to start using Python 3 and its popular extension libraries quickly. I assume you are familiar with Python. This short introductory volume 1 is intended to get you started with scientific Python distribution necessary to run examples from other volumes. It covers how to:
  • Obtain and install Winpython or Anaconda Python distribution.

  • Start a Jupyter (formerly IPython) notebook

  • Use IDLE and Spyder integrated development environments

  • Gives an overview of the topics covered in the following volumes

Volume 2 of this series, that describes how to read tabular data, save it as text or Microsoft Excel file, explore data interactively with Ipython notebook, create GUI application with TkInter, package your program for deployment on other computers, do efficient computation with Numpy, run Python at the speed of compiled program on all cores of your processor.

Volume 3 describes plotting library Matplotlib and using Python together with SQLite database.

From Mathematics to Generic Programming by Alexander A. Stepanov (2014-11-07)

Best price for this book: $ 43.54


Data Science in Python, Volume 2: Data I/O, Jupyter Notebook, GUI, Deployment, Numeric Programming, High Performance Python

Alexander Stepanov

Best price for this book: $ 0

This volume covers the fundamentals of scientific Python programming, and I assume you are familiar with Python 3. If you need help with obtaining and setting up a scientific Python 3 distribution, make sure to check out volume 1 of this series.

In this volume I will show how to:
  • Read data from a tab delimited text file, sort, filter, and recover from errors

  • Save data in a tab delimited text or in rich Microsoft Excel format

  • Use an IPython notebook to quickly prototype your program, explore your data interactively, document, and share your research.

  • Give your program a Graphic User Interface (GUI) to make it useful for non-programmers.

  • Package a Python program for deployment on other computers

  • Use Numpy for number crunching

  • Make the Python program run as fast as compiled code

  • Use multiple cores or processors for parallel execution of a Python program

You might also want to look at volume 3 describing plotting with Matplotlib and using Python together with SQLite database for data analysis.

Lucas Cranach: The Elder (Great Painters)

Alexander Stepanov

Best price for this book: $ 89.1

Lucas Cranach (1472-1553) was one of the greatest artists of the Renaissance, as shown by the diversity of his artistic interests as well as his awareness of the social and political events of this time. He developed a number of painting techniques which were afterwards used by several generations of artists. His somewhat mannered style and spending palette are easily recognized in numerous portraits of monarchs, cardinals, courtiers and their ladies, religious reformers, humanists and philosophers. A part of the Great Painters Collection, translated from the Russian by Paul Williams. 109 full color plates and numerous black and white and two-color illustrations interspersed by text. Includes a chronological table of the work of Cranach and his notable contemporaries.

Before Average is Over: How to Avoid Stagnation in a World of Limited Resources

Alexander Stepanov

Best price for this book: $ 0

Undergraduate economic textbooks offer little beyond pro-free market propaganda and a caricatured view of planning and optimization of Economy. But does profit maximization really lead to maximal satisfaction of human needs, optimal use of resources and labor?
The first chapter of this book offers a simple mathematical model that answers these questions, dispelling the fundamental myths of neoliberal economic theory. The following chapters explore various economic systems beyond that of the family that have accounted for societal needs from the Stone Age to the Space Age, and offer a historical and anthropological perspective on how Christianity have influenced free market ideology. The last essay discusses what neoliberal ideology envisions for the future of mankind.
With world population growing rapidly, planning and optimization techniques should not be reserved for Business schools. General public must be aware of these techniques in order to make meaningful contribution to public debate and get the most out of the resources our planet provides.

Coronal Seismology: Waves and Oscillations in Stellar Coronae

Alexander Stepanov

Best price for this book: $ 0

This concise and systematic account of the current state of this new branch of astrophysics presents the theoretical foundations of plasma astrophysics, magneto-hydrodynamics and coronal magnetic structures, taking into account the full range of available observation techniques -- from radio to gamma.

The book discusses stellar loops during flare energy releases, MHD waves and oscillations, plasma instabilities and heating and charged particle acceleration. Current trends and developments in MHD seismology of solar and stellar coronal plasma systems are also covered, while recent progress is presented in the observational study of quasi-periodic pulsations in solar and stellar flares with radio, optical, X and gamma rays. In addition, the authors investigate the origin of coherent radio emission from stellar loops, paying special attention to their fine structure.

For advanced students and specialists in astronomy, as well as theoretical and plasma physics.