Background Plus a Bit
Throughout the book, we assume the fundamentals of linear algebra, multivariable calculus, and probability. We also assume some facility with programming and either a knowledge of the basics of Julia1 or a willingness to pick it up. From this perspective, the chapters in this section of the book should be treated as review, and an impatient reader might reasonably decide to skip over them. But we counsel most readers to be patient enough to at least skim these chapters first, for two reasons:
We introduce notation that will be useful later in the book but is not used in all introductory courses, even when the topics are standard. This includes things like quasimatrix notation in our discussion of linear algebra and variational notation in our discussion of calculus.
In our experience, classes vary enough so that most students coming into our courses will not have seen everything in these chapters (or at least they do not remember everything), even if they took all the relevant background courses. My usual advice in such cases is that having a few such gaps in technical background is normal, but diagnosing them and filling them in will help in having a richer understanding of the material at hand.
Of course, even for those readers who have seen all the contents of these chapters before, we hope there will be some value in seeing the material again from a different prspective.
We begin the section with two chapters on computing. In 2 Julia programming, we discuss the Julia programming language, focusing on the mechanics of the language along with some tips on Julia style. Those readers who are familiar with Julia (or choose to program in some other language) may still appreciate 3 Performance Basics, where we give some basics of performance analysis of computer codes. Much of this chapter is independent of the Julia programming language, though we do also give some pointers on writing fast Julia code.
After discussing computing, we turn to mathematics. In 4 Linear Algebra, we review some standard topics in linear algebra, as well as a few topics in multilinear algebra. Unlike our discussion later in the book, where we will often focus on specific bases and concrete spaces, we try to keep an eye on the “basis free” properties of linear spaces and maps upon them. We also try to avoid being overly abstract by regularly tying concepts back to spaces of polynomials and providing code that implements those concepts. Similarly, regular examples in code will feature in our chapters on calculus and analysis (5 Calculus and analysis) and probability theory (7 Probability).
The examples in this book will be in Julia. If you are unfamiliar with Julia but familiar with MATLAB or Octave, you should be able to read most of the code. The syntax may be slightly more mysterious if you primarily program in some other language, but I will generally assume that you have the computational maturity to figure things out.↩︎