available options to understand such systems is by developing a multi-scale model of the system. Complex systems theory Using information theory, non-equilibrium dynamics, and explicit simulations, computational systems theory tries to uncover the true nature of complex adaptive systems. Computational science in engineering Computational science and engineering (CSE) is a relatively new discipline that deals with the development and application of computational models and simulations, often coupled with high-performance computing, to solve complex physical problems arising in engineering analysis and design (computational engineering) as well as natural phenomena (computational science). CSE has been described as the "third mode of discovery" (next to theory and experimentation). In many fields, computer simulation is integral and therefore essential to business and research. Computer simulation provides the capability to enter fields that are either inaccessible to traditional experimentation or where carrying out traditional empirical inquiries is prohibitively expensive. CSE should neither be confused with pure computer science, nor with computer engineering, although a wide domain in the former is used in CSE (e.g., certain algorithms, data structures, parallel programming, high-performance computing), and some problems in the latter can be modeled and solved with CSE methods (as an application area). Methods and algorithms Algorithms and mathematical methods used in computational science are varied. Commonly applied methods include: Computer algebra, including symbolic computation in fields such as statistics, equation solving, algebra, calculus, geometry, linear algebra, tensor analysis (multilinear algebra), optimization Numerical analysis, including Computing derivatives by finite differences Application of Taylor series as convergent and asymptotic series Computing derivatives by Automatic differentiation (AD) Finite element method for solving PDEs High order difference approximations via Taylor series and Richardson extrapolation Methods of integration on a uniform mesh: rectangle rule (also called midpoint rule), trapezoid rule, Simpson's rule Runge–Kutta methods for solving ordinary differential equations Newton's method Discrete Fourier transform Monte Carlo methods Numerical linear algebra, including decompositions and eigenvalue algorithms Linear programming Branch and cut Branch and bound Molecular dynamics, Car–Parrinello molecular dynamics Space mapping Time stepping methods for dynamical systems Historically and today, Fortran remains popular for most applications of scientific computing. Other programming languages and computer algebra systems commonly used for the more mathematical aspects of scientific computing applications include GNU Octave, Haskell, Julia, Maple, Mathematica, MATLAB, Python (with third-party SciPy library), Perl (with third-party PDL library), R, Scilab, and TK Solver. The more computationally intensive aspects of scientific computing will often use some variation