Computer Programming and Simulation
Physics/CS 705 Kalamazoo College
FALL 1999

Instructor: Jan Tobochnik, O/U 208A, 7098, email jant

Prerequisites: Phys. 412 and Math 410 or permission of the instructor. No background in computer programming is assumed.

Textbooks:
Lab notebook: You should have a laboratory notebook to keep notes. Although you could keep
notes purely on the computer, I advise you to also have a hand written notebook.

Class: MWF 8:30-9:45 O/U 304. (Sometimes we might meet elsewhere) Laboratory: Tues. 8:45-11:30 a.m. or 12:45-3:30, O/U 310.

General Overview
Physics/CS 705 is an introductory course on the computer simulation of physical systems. The goals of the course are to introduce the methods of computer simulation, to gain a greater intuitive understanding of basic concepts in physics, to learn how computer simulation is changing the nature of physics and related disciplines, and to obtain enough practice to be able to write programs on your own.

The course is project oriented with students proceeding at their own pace depending on their background and interests. Suggested projects include the simulation of planetary motion, chaos and nonlinear systems, self-organized critical phenomena, random systems, fractal phenomena, and thermal systems. The primary programming language used in the course will be Java and C++ implemented with Metrowerk's Codewarrior on the Power Macintosh. We will be learning the rudiments of object oriented programming using Java, but will not be using the object oriented feature of C++. The programs in Gould and Tobochnik are primarily in True BASIC. Thus, much of your programming will initially involve translating programs from True BASIC to Java or C++, and then modifying your programs. The True BASIC programs can be used to test your code, and you can run them to explore briefly topics that you don't have time to work on in depth.


Course Goals
The overall goals of the course are to lead you to the point where you can conceptualize a physical system, develop a computer experiment, write a program, and analyze and explain the data that you generate. This process should lead you to a greater intuitive understanding of a physical system as well as an understanding of the methods and value of computer simulation.

Course Structure
In the class hours I will introduce the physical system of interest and the corresponding model, suggest algorithms and programming strategy, introduce new programming constructs, and present methods for analyzing the results. In addition you will report on your results and suggest further work to be done.

Initially the scheduled laboratory time will be used for structured hands on programming exercises. Because we are missing the scheduled lab during the first week, we will use class time to replace the lab. Later in the term labs will be a time when I can work closest with you on your projects.

You should plan on spending 15 plus or minus 1 hours on this course each week including the 6-7 hours of scheduled class and laboratory. Because of the project orientation of the course it is too easy to spend too much or too little time. Thus, you are required to set a weekly schedule for when you will work in the laboratory. It is a good idea to schedule your time when others in the class will also be working. Maintain a log in your notebook listing the times you are in the lab.

This term we will work on parts of Chapters 1, 3, 6, 7, and 11-14 with the number of assignments in each chapter dependent on your background and interests. Some of the assignments will require laboratory reports as described in the Appendix to Chapter 1. Other assignments will be completed with laboratory notes and an oral report. The last couple weeks and the final exam will consist of a term project of your choice.

Grading
Your grade will be based on four equal components: (1) Class and lab attendance (required unless ill) and participation, (2) formal laboratory reports, (3) your notebook and informal oral reports, and (4) the term project(which will include formal oral and written reports).

Laboratory Rules
No smoking, eating, drinking or game playing is allowed in the computer laboratory. You may show your friends what you are doing, but they may not use the computers for their own purposes.

Please keep the computer laboratory clean by replacing manuals on the shelf and throwing away scrap paper.

The laboratory is available for student use whenever the Computer lab in O/U 312 is available. If the laboratory is locked obtain a key from the Physics/Math/CS secretary, Peggy Cauchy. In the evening or weekends you can ask campus security to let you in. They will be given a list of students who may use the laboratory.

You should use the hard disk on one of the Power Macs to store your files, but you are urged to purchase a zip disk to back up your files. Do not touch a floppy disk under the metal covering or expose a disk to extreme temperatures or magnetic fields.

In general avoid printing to save paper. Use the general purpose College printers for any essential printing.

Each of you will have a primary computer with a folder labeled with your name. All your files should be kept within your folder. Any files found outside your folder may be deleted. Generally, each computer will be used by two students since there are 10 students registered for the course and there are seven power macs. Thus, after hours you will need to share the computers. If there is a free computer, but it is not the one with your folder, you can access your files through AppleShare from the Chooser.

You may consult with any books in the lab, but they must never be removed from the lab. There are also many magazines and journals which you are welcome to take.

Commercial Software
The software on the hard disks must not be copied and is to be used only for this course. Students agree not to copy commercial software for their own use or to loan or distribute it to others.

Disability
Any student with a disability who needs an accomodation or other assistance in this course should make an appointment to speak with me as soon as possible.