Techniques
From Complex Systems
This page enumerates the fundamental techniques on which I rely in my academic work. Unlike the subjects listed in Background, they may not be of direct academic interest to me; however, I use them routinely and they are essential to my research. I include a list of sources which I found useful in learning these rechniques. Hopefully, other complex systems researchers will find this information valuable.
For a list of tools that I use (as opposed to techniques), please see Tools.
Contents |
Mathematics
- The Cambridge University Maths Society (a.k.a. the Archimedeans) are absolutely lovely people. They maintain a large collection of the Maths Tripos lecture notes online, covering Parts I - III.
- Wolfram MathWorld is the web's most extensive mathematical resource, provided as a free service to the world's mathematics and internet communities by Wolfram Research. It has been assembled over more than a decade by Eric W. Weisstein with assistance from thousands of contributors. This is an actively developed and maintained encyclopaedia of mathematics.
Pure
Logic
- M. Huth, M. Ryan. Logic in Computer Science: Modelling and Reasoning About Systems. 2nd Edition. Cambridge University Press, 2004.
Linear Algebra
- J. B. Fraleigh, R. A. Beauregard. Linear Algebra. 3rd Edition. Addison Wesley, 1995.
- J. B. Fraleigh, R. A. Beauregard. Linear Algebra: Student Solution Manual. 3rd Edition. Addison Wesley, 1995.
Topology
- B. Mendelson. Introduction to Topology. Dover Publications, 1990.
Applied
Mathematical Analysis
- K. G. Binmore. Mathematical Analysis: A Straightforward Approach. 2nd Edition. Cambridge University Press, 1982.
As the title suggests, this is a very intuitive introduction to mathematical analysis. The exposition is very clear. The exercises are simple but instructive. Their solutions are readily available at the back of the book. Binmore's text is therefore suitable for self-study.
- K. G. Binmore. The Foundations of Analysis: Logic, Sets and Numbers (Book 1). Cambridge University Press, 1981.
- K. G. Binmore. The Foundations of Analysis: Topological Ideas (Book 2). Cambridge University Press, 1981.
Binmore's Mathematical Analysis: A Straightforward Approach assumes the knowledge of elementary logic, set theory, number theory, and topology. These two books attempt to bridge the gap, introducing the relevant concepts rigorously. Naturally, the content is elementary. The books are, however, worth reading to develop a solid understanding of the subject.
Numerical and computational
- Numerical Recipes.
- Numerical Recipes in C online (direct link).
- Before you implement a numerical procedure, check numerical recipes. Chances are someone has already done it better. Much better.
- A. MacKinnon.Computational Physics. This is a 3rd/4th Year option taught to physics undergraduates at Imperial College. The course covers ODEs, PDEs, matrix algebra, Monte Carlo methods and simulation, and computer algebra.
Statistical
Game Theory
- P. Morris. Introduction to Game Theory. Springer, 1994.
Programming
Algorithms
Software engineering
- Design patterns are generally repeatable solutions to commonly occurring problems in software design.
- E. Gamma, R. Helm, R. Johnson, J. Vissides. Design Patterns: Element of Reusable Object-oriented Software. Addison Wesley.
- Read this book before you start writing any programs longer than 100 lines of code!
- E. Gamma, R. Helm, R. Johnson, J. Vissides. Design Patterns: Element of Reusable Object-oriented Software. Addison Wesley.
- Extreme Programming. I am generally positive about many of the XP techniques, although I do not embrace them wholeheartedly (which is probably an oxymoron, given the definition of XP). Some books that I found useful:
- K. Beck. Extreme Programming Explained: Embrace Change. 2nd Edition. Addison Wesley, 2004.
- K. Beck, M. Fowler. Planning Extreme Programming. Addison Wesley, 2000.
- R. Jeffries, A. Anderson, C. Hendrickson. Extreme Programming Installed. Addison Wesley, 2000.
- Pragmatic Programming - a heterogeneous collection of good advice.
- A. Hunt, D. Thomas. The Pragmatic Programmer. Addison Wesley, 2005.
C++
- B. Stroustrup. The C++ Programming Language. Special Edition. Addison Wesley.
- A thorough review of the C++ programming language written by its creator.
- S. Meyers. Effective C++: 55 Specific Ways to Improve Your Programs and Designs. 3rd Edition. Addison Wesley, 2005.
- Read this book before you start programming in C++!
- S. Meyers. More Effective C++: 35 New Ways to Improve Your Programs and Designs. Addison Wesley, 1996.
- S. Meyers. Effective STL: 50 Specific Ways to Improve the Use of the Standard Template Library. Addison Wesley, 2001.
Java
- J. Bloch. Effective Java. Addison Wesley, 2001.
- Read this book before you start programming in Java!
Scientific writing
Mathematics is a difficult subject. However, much of the difficulty often arises from poor exposition. Omissions, inconsistencies, and obscure terms abound in scientific papers, making them even harder to understand. It is therefore important to pay due attention to both content and form.
- N. E. Steenrod, P. R. Halmos, M. M. Schiffer, Jean R. Dieudonne. How To Write Mathematics. AMS, 1981.
