Note: this page is in the process of being updated from the previous year's PHY 301 page, so some links may not yet be working.

PHY301 - Physics Computations III (Fall 2005)

All course materials and worksheets will appear here.


Prof. Jon Pumplin - Office 3240 BPS (517) 355-9200 ext. 2126,

Course Overview

This one-credit course is the third of three lab-style courses (PHY102, PHY201, PHY301) designed to teach undergraduate physics students how to use computers to solve physics problems.
PHY102 introduces or develops your knowledge of Mathematica.
PHY201 introduces or develops your knowledge of programming in Fortran 90.
PHY301 introduces or develops your knowledge of programming in C++.
Physics 201 and 301 are taught concurrently, but they are independent of each other: it is not necessary to take 201 as a prerequisite to 301. Most students will want to choose one of the two languages and ignore the other. Familiarity with Mathematica at the level of Physics 102 is required, however, as a prerequisite for both Physics 201 and 301. It will mainly be used for checking results.

PHY201 and PHY301 meet simultaneously in Room 1240 BPS (Biomedical and Physical Sciences Building).

There are no lectures: the class is entirely hands-on-keyboard. You will probably need about 2-3 hours per week to complete the assignments. The room will be open and I will be there to offer help at the following times:

  10:20am - 11:20 Thursday
   2:00pm - 4:00 Thursday
   9:10am - 10:10 Friday
   3:00pm - 5:00 Friday

Course Assessment

  • 75% of your grade will come from your solutions to the worksheets. For each worksheet that is not completed by its due date, your grade is reduced by 0.5. If you complete all the worksheets but do not do the lab. exam, you get a 3.0 grade.
  • 25% of your grade will come from a one hour practical exam at the end of the semester. This exam will be held in the last week of the semester during your regular lab. time. In the exam you will be asked to write simple C++ code and to use Mathematica. Nothing new will be introduced. You will need to know how to use the online help facilities.

    The worksheets

    Worksheet 1 - due Sept 16 at 5pm (3 weeks)
    Worksheet 2 - due Oct 7 at 5pm (3 weeks)
    Worksheet 3 - due Oct 28 at 5pm (3 weeks)
    Worksheet 4 - due Nov 18 at 5pm (3 weeks)
    Worksheet 5 - due Dec 9 at 5pm (1 week)
    Exam - Dec 8 or 9

    There are three class sessions before the first assignment is due, to accommodate students who are learning C++ for the first time.

    If you encounter computational problems in your physics classes that you would like to solve using C++ (either for the additional experience, or to replace some of the problems assigned in the worksheets) feel free to ask the instructor.

    Reference materials

  • Introduction to Linux Computing in 1240BPS.
  • Introduction to Mathematica (Written by Ellen Lau)

  • Online tutorial.
  • MSU course with a large number of examples that can be used as templates.
  • Online intro to C and C++
  • C++ programming for scientists
  • C++ An Introduction to computing, Adams, Leestma, Nyhoff

  • GNU Scientific Library . Useful free software.
  • Numerical Recipes online. This is a book of numerical methods that are very useful in physics, and the code can used as a model for writing your own C++

  • Introduction to HTML online
  • local html help
  • Graphics programs, including xmgrace
  • Other local help manuals (e.g. Latex and related packages).