PHYS-4007/5007: Computational Physics
Syllabus -- Fall 2008


Course Information

Course ID: PHYS-4007-001 (undergrad-level),
PHYS-4007-088 (honors undergrad-level),
PHYS-5007-001 (grad-level)
Credit Hours: 3
Lecture Times: T R: 2:15 p.m. - 3:35 p.m.
Lecture Location: Brown Hall, Room 264
Lecturer: Dr. Donald Luttermoser
Office (Phone): 280 Brown Hall (439-7064)
E-mail: lutter@mail.rmspametsu.edu (subtract "rmspam" string before sending)
Office: 279 Brown Hall (423-439-7064)
Office Hours: M 3:00 p.m. - 4:00 p.m., R 4:00 p.m. - 5:00 p.m.
Prerequisites: PHYS-2110/20 and/or MATH-3200
Course Web Page: http://www.etsu.edu/physics/lutter/courses/phys4007/index.htm
Textbooks: (1) Computational Physics: Problem Solving with Computers
      (2007) Landau, Paez, & Bordeianu
(2) A Guide to LaTeX, 4th Ed. (2003) by Kopka & Daly
(3 - Optional) Practical IDL Programming (2002) by Gumbly


Course Outline

Days Topics Readings Note Sections
August 26, 28 Choosing Hardware and an Operating System (1) Chapters 1, 18 I
September 2, 4 How to Select a Programming Programming Language (1) Chapter 2 II, III
September 9, 11 The Art of Graphics Programming (1) Chapter 2 II, III
September 16, 18 LaTeX, Postscript, & PDF (2) Chaps 1, 2, 3, 4, 6 II, III
September 23, 25 Error Analysis & Uncertainties (1) Chapter 3 IV
September 30 Project #2 Proposal Due --- ---
September 30, 2 Methods of Data Fitting (1) Chapter 5 V
October 7, 9 Methods of Differentiation & Integration (1) Chapters 8, 4 VI
October 14 Fall Break - No Classes --- ---
October 16 Project #1 Due --- ---
October 16 Matrices & Systems of Linear Equations (1) Chapter 15 VII
October 21, 23 Linear Equations (cont.) (1) Chapter 15 VII
October 23 Take-Home Midterm Exam Due Chapters: All to Date I-VII
October 28, 30 Numerical Solution to ODEs (1) Chapter 9 VIII
November 4, 6 Numerical Solution to ODEs (cont.) (1) Chapter 9 VIII
November 11, 13 Trajectories & Orbits --- IX
November 18, 20 Trajectories & Orbits (cont.) --- IX
November 25 Project #2 Due --- ---
November 25 Fourier Analysis and Oscillations (1) Chapters 12, 13 X
November 27 Thanksgiving Break - No Classes --- ---
December 2, 4 Fourier Analysis and Oscillations (cont.) (1) Chapters 12, 13 X
December 9 Take-Home Final Due by 5 p.m. Chapters: All since Midterm VIII-XII

Please consult the ETSU supplemental syllabus attachment for other helpful university information.

Click here to view the web page for this course.


Course Description

Computational Physics (PHYS-4007 for undergraduate credit, PHYS-5007 for graduate credit) is designed to cover techniques used in modeling physical systems numerically. It is designed to help the students in the selection of a computing platform (PC versus workstations), operating system (Unix versus Windows), and programming language (some of the more popular in science include Fortran, C, C++, IDL, MatLab, Maple, Mathematica, and Visual Basic) that best meet the requirements needed to solve the problem. Techniques will be developed to solve systems of linear equations, ordinary differential equations (ODE), trajectories and orbits, and finally Fourier analysis. The students also will be introduced to data fitting techniques.

Students should have already taken PHYS-2110/20 (Technical Physics I & II) and/or MATH-3200 (Differential Equations) before taking this course. Though previous computer programming experience is not required, such experience will be beneficial to the student. During the first few weeks of class, the students will choose the programming language they wish to use for their main project required for the course. Supplemental instruction will be given to the individual student in that programming language should it be needed. Note that Appendix A contains a useful reference guide to the Fortran 77 programming language (probably the most widely used programming language in physics and astronomy) and Appendix B contains a reference guide to the C programming language.

Computational Physics is a problem-solving course, that is, the measure of a student's progress is demonstrated by the ability to solve numerical problems in physics. Upon completion of this course, the student will possess the basic knowledge of numerical modeling that may be required for graduate school or in a position at a technical corporation.

In this course, the student will be using two different types of computers, PCs containing Intel's 32-bit Pentium 4 chip (in Brown Hall Room 264) and a workstation (also with a 32-bit CPU) running Linux, a version of the Unix operating system (in Brown Hall Room 260).

Besides learning how to solve numerical problems with a computer, the student also will gain experience writing manuscripts in a scientific journal style using the markup language LaTeX. As a matter of fact, the course notes are written in LaTeX! LaTeX is used by a large number of professional journals in both the physical sciences and mathematics. Each student will be given a sample paper LaTeX file to help them get started using this beautiful program.

Due to this, there are two textbooks required for the course: (1) Computational Physics, Problem Solving with Computers by Rubin H. Landau, Manuel J. Paez, and Cristian C. Bordeianu, published in 2007 by John Wiley, and Sons, Inc.; and (2) A Guide to LaTeX, 4th Edition by Helmut Kopka and Patrick W. Daly, published in 2003 by Addison-Wesley Publishing Company. I also had the bookstore stock an optional textbook called Practical IDL Programming by L.E. Gumley, published in 2002 by Morgan-Kaufmann. A student does not have to buy this IDL book since I have a copy that a student can borrow for a short period of time. However, if you can afford it, it might be a good idea to have your own copy since you will make use of this book a lot for Project \#1. Besides these books, it might be a good idea to buy a book concerning the programming language you choose to use for the course. Below is a list of good reference books, some of wich you might wish to purchase on your own (http://www.amazon.com/ has most of these books that are listed). I have copies of these books that students can borrow for a short period of time (a few days). Please handle these books with care if you borrow any of them! Also, do not remove the disks or CDs that any of these books might have in them (your textbook already has sample programs supplied on disk). Here is the list:

In the world of business, object-oriented programming, primarily using the C++ programming language, is used almost exclusively at the present time. However, in the scientific world (and in high-tech industries), what some scientists referred to as structured programming (Fortran and C primarily) is typically used. In both the astronomical and medical fields, the Interactive Data Language (IDL) is often used, mainly due to its rich graphics capabilities. There are many large codes in the scientific community, most of them written in Fortran 77, that are likely to stay in use for a long period of time. As a result of this, if a student is uncertain which programming language to use for this course, I will recommend that a student use either IDL (which will be required for Project #1), Fortran 90, or Fortran 77. All of these have very powerful mathematical utilities built right into the compiler (unlike C and C++ which require math libraries to be loaded at compile time). The TAF PCs in Brown Hall 264 (there are 12 of them) all will have both flavors of Fortran on them (under the Developer Studio icon). The Linux workstation in Room 260 (node physicsIDL available and Fortran 77/90 (these compilers are accessed through the gfortran software).

Computer modeling is very complicated and requires years of training to become proficient at it using just one computer language. I will not push my prejudices on you as to which programming language you should use. Keep in mind, however, that if you want any help from me on your programming, I consider myself an expert with IDL, Fortran 77, and Fortran 90. I have some experience with C and Visual Basic, as well. However, I know nothing of C++, Matlab, Maple, Mathematica, or any other programming language that you may have seen. You can use any of the programming languages listed above except for Maple and Mathematica. The reason for excluding these two packages is that they do too much for the user. I want each student to learn how to program to solve problems numerically, not some software package to do it for you.


Homework, Projects, and Exams

The students will be graded on their performance on a Midterm (20% of the course grade) and a Final (20%) -- the Final is not comprehensive. Both of these tests will be take-home and passed out a week prior to their due date. Anywhere from 3 to 5 short homework sets (worth 10% of your course grade) will be assigned throughout the semester. The students also will have to complete two computer projects which will each require a term paper to be submitted describing the code and results. The students will be instructed in the use of the mark-up language LaTeXe which is used in many physical science and mathematical journals. The students will be required to write their two term papers with LaTeX. Project #1 (15%) will be limited in nature and require the student to analyze observational data provided by the instructor which will enable the student to determine the Hubble constant in Hubble's Law which describes the overall expansion of the Universe. A 5 to 10 page, single-sided, term paper will be required for this project. Project #2 (35% of the final grade) will require the student to solve a numerical problem computationally using any of the techniques described in class (e.g., system of linear equations, system of ODEs, solution to a PDE, Fourier analysis, Monte Carlo techniques, etc.). I will supply a list of possible projects. Each student is free to select any of these projects or come up with one of their own. Each student will have to submit a proposal by the end of the first month describing what is to be done for this second project and what programming language is to be used. A 10 to 15 page term paper will be required for this project.

Honors-in-Discipline and Graduate Students Note: For those of you who are either undergraduate honors students or graduate students taking this course, you will be required to carry out a more sophisticated Project #2 than the "non-honors" undergraduate students. There also will be additional questions on the tests that the honors and graduate students will have to answer.


Grading Policy

The grading system will be based by the following criteria:

Final Grade = 10%*(Homework) + 20%*(Midterm) + 20%*(Final) +
15%*(Project 1) + 35%*(Project 2)

Each of the items in the formula above represents the normalized score for the given item. The final grades will be based on the following scales. The Undergraduate Student Scale:

A = 90% or better B- = 73-75.9% D+ = 56-58.9%
A- = 88-89.9% C+ = 70-72.9% D = 50-55.9%
B+ = 86-87.9% C = 62-69.9% F = Less than 50%
B = 76-85.9% C- = 59-61.9%

The Graduate Student Scale:

A = 90% or better B = 76-85.9% C = 62-69.9%
A- = 88-89.9% B- = 73-75.9% F = Less than 62%
B+ = 86-87.9% C+ = 70-72.9%

Note that a failing grade also will be given if the student has engaged in any form of academic dishonesty.


Last modified: September 2, 2008 by D.G. Luttermoser