Contact Information

Instructor: Jim Crumley
Office: 107 Peter Engel Science Center
Phone: 363–3183
Office Hour:1 pm odd days (or by appointment or just stop by)

Course Information

Lecture: 8:00–9:10 am Days 135
Room: 319 Peter Engel Science Center (Some day 1s in 212 PE)
Textbook:(Introduction to) Fortran 90/95 by Stephen J. Chapman
Web Site:


Computer programming is a skill that is fast becoming essential for scientists and engineers. There are a wide variety of forms of programming that you might run into from programming calculators, to spreadsheets, to mathematical software, such as Matlab and Mathematica, to scripting languages like Perl or Python, to compiled languages like C++ or Fortran, to assembly language. In this class, we will attempt to give you a foundation of basic programming concepts and techniques. Only compiled languages will be taught in this course, but much of the structure of good programming carries over to other areas.

This course will be taught in Fortran, with some reference to C++ and other languages. For those of you more interested in C++ or some other programming language, you are free to write your programs in that language.

Homework Assignments

Homework will be assigned every day 1 and will be due the following day 1. Beware that computer programs can take a long time to debug. Do not wait until the night before an assignment is due to work on a program. Also, let’s try to run this class in a more or less “paper-less” manner. I’ll post the assignments online and the finished products should be emailed to me.


The one test for this course will be given on the final day of classes.


During most classes periods there will be in-class quizzes (quick checks). There may also occasionally be other in-class exercises or out of class quizzes which count as part of this grade.


This course is officially an intermediate (200) level course. Physics majors are required to take 6 credits of advanced (300) level electives. Those of you who would like this course to apply toward your elective requirement can complete an extra programming project. This project will be on a physical problem of your choosing. I’ll give you more details on this later.


Grading for this class will be based on grades on homework assignments, quizzes (all of them together count the same as a homework assignment), the test (counts twice as much as a homework assignment), and projects (counts twice as much as a homework assignment) for those of you who do them.