Contact Information

Instructor: Jim Crumley
Office: 107 Peter Engel Science Center
Phone: 363–3183
Office Hour:1 pm days 146

Course Information

Lecture: 8:00–9:10 am Days 246
Room: 319 Peter Engel Science Center (Some day 2s in 212 PE)
Textbook:C++ Primer Plus by Stephen Prata
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 C++, with some reference to Fortran and other languages. For those of you more interested in Fortran or some other programming language, you can write your programs in that language. Check with me if you would like to do that.

Homework Assignments

Homework will be assigned every day 2 and will be due the following day 2. 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 fairly “paper-less” manner. I’ll post the assignments online and the finished products should be emailed to me with a specific subject line which will be given with the assignment. Points will be lost for not following those directions.


There are two versions of this class. Physics 222 is for those of you who are interested in learning the basics of programming, but do not need this class to count as a Physics elective towards the physics major. Those taking this class as Physics 222 will complete 6 homework assignments.

Physics majors who would like to count this class toward their 6 credits of advanced (300) level physics electives should take this class as 322. The only difference in the class for those taking it as 322 is that they will have to complete an individual programming project, and they will only have to complete the first 5 homework assignments. This project will be on a physical problem of your choosing. I’ll give you more details on this later.


Plagiarism can be a problem in computer programming courses. While you are encouraged to share ideas with your classmates in order to learn how to program, it is not acceptable to copy programs from others, make minor changes, and pass them off as your own. The CSB/SJU’s policy on plagiarism, which is in the course catalog, will be followed in this course.


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.


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.