Computational physics is taking its place alongside the traditional disciplines of theoretical and experimental physics as a third paradigm for doing physics. It permits simulation, visualisation, and modelling of situations which are normally avoided either because of the difficulty of physical study or the complexity of the mathematical tools required.
In traditional computational courses, simulation and modelling are taught by stressing numerical techniques, whilst visualisation often requires a range of specialised software tools. This course uses Mathematica as both a presentation environment and a computational tool. Programs like Mathematica have the potential to revolutionize teaching and learning in a range of computational disciplines because their hypertext "Notebook" interface provides an environment for computation (including linking to external fortran or C code), a high-level programming language, text, graphics, animation, and sound. At the same time Mathematica is capable of, and used for, high-level computation by physicists making it, in some ways, an ideal computer assisted learning tool.
Standard texts on Computational Physics such as Koonin and Meredith (1990)
teach computation by having students develop or edit procedural code
fragments to model a particular physical problem or system. This approach
requires the student needs to learn and understand many details of a
procedural programming language such as Basic, Pascal, Fortran or C.
Although learning procedural programming is very useful it can detract from
the desired goal of teaching computation. A second approach, taken by,
e.g., Hubbard and West (1992), is to develop custom "black-box"
applications for illustrating specific physical concepts. Another approach,
taken by e.g., Feagin (1994), involves using an integrated computational
environment such as Mathematica. (Similar approaches are certainly possible
with other high-level computer algebra systems such as Maple, see e.g.,
Greene (1993)).