Physics 210: Intro Computational Physics
Learning Goals & Course Topics / Outline

LEARNING GOALS

  1. THEMATIC GOALS

    1. 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:
      • Identifying or isolating a specific problem that requires solution.
      • 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 necessary.
      • Performing the calculations on the computer using your implementation.
      • Analyzing and interpreting the results of the calculations.
      • Possible iteration of one or more of the above steps in view of the results and analysis.

    2. To become familiar with basic techniques in computer programming that will be of use in solving problems from physics and related fields.

    3. 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.

    4. 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!)

    5. To gain experience in writing up the results of scientific work in the form of a scientific paper.

  2. SPECIFIC GOALS

    Successful completion of this course---which includes understanding the lecture material, completing the homeworks with a reasonable degree of proficiency, and finishing and submitting a good term project---should provide you with the ability to do the following at a minimum:

    1. Work comfortably within a Unix / Linux environment with an emphasis on the use of the command-line.
    2. Use Maple to interactively perform basic symbolic manipulation and numerical computations.
    3. Write simple Maple procedures (programming) as part of an introduction to the use of Maple as a powerful computing environment.
    4. Perform basic to intermediate level numerical computations using Matlab interactively.
    5. Write basic to intermediate level Matlab scripts and functions (programming).
    6. Use your Matlab programming skills to address specific applications from physics and mathematics including:
      1. The use of finite difference techniques to approximately solve simple ordinary differential equations (equations of motion), of the type encountered in particle dynamics.
      2. Dynamics of one or more particles in interaction with one another or with an external potential using finite difference techniques.
      3. A moderately challenging problem of your own choosing---i.e. your term project!

COURSE TOPICS & OUTLINE (subject to adjustment)

Unix: 3 lectures, 4 labs

  • Unix / Linux fundamentals with a focus on use of the command line

Maple: 5 lectures, 5 labs

  • Use of a modern "symbolic manipulation" language for routine computations
  • Basic Maple programming

Matlab: 2 lecture, 5 labs

  • Introduction to Matlab as an interactive tool for numerical calculations
  • Introduction to Matlab plotting facilities
  • Matlab programming: writing scripts and functions
  • Specific Matlab scripts/programs mostly motivated by topics covered in lectures

Project Proposal Presentations: 2 lectures and labs


Finite Difference Approximations With Applications to Dynamics: 6 lectures

  • Definition of finite difference approximation (FDAs)
  • Use of FDAs to approximate simple ordinary differential equations, such as are encountered in particle dynamics

Final Project Free Time: 6 lectures and 6 labs


Maintained by choptuik@physics.ubc.ca.