- THEMATIC GOALS
- To become acquainted with the use of modern computer
technology to formulate and solve problems from physics (and related
fields) computationally. This will generally involve:
To become familiar with basic-to-intermediate techniques
in computer programming that will be of use in solving problems from
physics and related fields.
- Identifying or isolating a specific problem that
- Formulating the problem in mathematical terms, as
precisely as possible.
- Identifying appropriate approximations, algorithms,
existing software etc. that will allow you to solve the problem.
- Implementing the solution process on the computer,
using programming (scripting etc.) in one or more computer languages as
- Performing the calculations on the computer using
- Analyzing and
the results of the calculations.
- Possible iteration of one or more of the above steps
view of the results and analysis.
To be exposed to selected topics in physics and
mathematics that are representative of some typical application areas
in "real world" computational physics: some of this material may
already be familiar to you.
To gain experience in searching for, and finding,
information on specific topics/areas; in understanding that
information, and then applying it (i.e. research and self-instruction!)
To gain experience in presenting the results of
scientific work, and in writing up the results of that work in the form
of a scientific paper
Successful completion of this course---which includes understanding the
lecture material, completing the homeworks with a reasonable degree of
proficiency, and presenting and submitting a good term project---should
provide you with the ability to do the following:
Note that in the above (as well as the course outline below),
references to MATLAB generally imply "MATLAB
and/or one of the available open-source MATLAB "clones", such as octave
or scilab). In addition, although we will be using MATLAB and/or the
"clones" as the primary programming language in this course, the
programming techniques that you acquire and the algorithms that you
encounter should be transferable to essentially any general purpose
programming language including C/C++, Java, Python, Fortran etc. etc.
- Work comfortably within a Unix / Linux environment with
an emphasis on the use of the command-line.
- Write basic Unix / Linux scripts (programming) to
automate tasks, extend the functionality of existing commands, or
create entirely new commands.
- Use Maple to interactively perform basic symbolic
manipulation and numerical computations.
- Write simple Maple procedures (programming) as part of
an introduction to the use of Maple as a powerful computing environment.
- Perform basic to intermediate level numerical
using MATLAB interactively.
- Use MATLAB's plotting facilities for viewing, analyzing
and understanding data.
- Write basic to intermediate level MATLAB scripts and
- Use your MATLAB programming skills to address specific
applications from physics and mathematics including
- The use of finite difference techniques to
approximate simple ordinary differential equations (equations of
motion), of the type encountered in particle dynamics.
- Dynamics of one or more particles in interaction with
one another or with an external potential.
- Simulation of simple cellular automata
- Basic data analysis
- Solution of linear equations, numerical integration
and solution of nonlinear equations
- Processes with a random or stochastic element such as
random walks and diffusion limited aggregation
- A moderately challenging problem of your own
choosing---i.e. your term project!