Contact Information

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

Course Information

Class time:11:10 TR
Room: 319 Peter Engel Science Center (Most Tuesdays in 212 PE)
Textbook: C++ Primer Plus by Stephen Prata
Web Sites:


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 Tuesday and will be due the following day Monday. 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 regular 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 not have to do the last regular assignment. 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.


All students are welcome to meet with me to discuss ways to be successful in this course. If you experience a disability or other access challenges and want to discuss strategies, please feel free to meet with me. Students with disabilities should also contact Student Accessibility Services (320-363-5160 or to discuss any accommodations and services needed.


The one test for this course will be given on Wednesday, May 10 from 1:00-3:00.


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 two homework assignments), the test (counts four times as much as a homework assignment), and projects (counts six times as much as a homework assignment) for those of you who do them.