-
|
«
|
August
2008
|
»
|
| Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
| | | | | 1
| 2
|
| 3 | 4
| 5
| 6
| 7
| 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | | | | | | |
|
Introduction to Scientific Programming
Introduction to Scientific Programming is intended to serve as an
introductory course to the use of computers to support investigations in mathematics and the sciences. It is not intended to be a "computer science" course, per se, but is for students who are mainly interested in
practical scientific or mathematical applications of computer programming.
It will teach the programming fundamentals in the context of real-world applications. Data and applications covered in the course will come from real research projects that have occurred at Truman and from some that are in-progress here. The course was developed by faculty involved in Truman's Mathematical Biology program as is intended to serve the needs of Truman's interdisciplinary community.
General Information
- Instructor:
- Prof. Jason Miller
- Course References:
- Gilat, Amos. Matlab: An introduction With Applications., John Wiley and Sons, Inc. 2005.
- Hunt, Brian R., Lipsman, Ronald L., and Rosenberg, Jonathan M. A guide to Matlab: for beginners and experienced users. (second edition), Cambridge University Press. 2006.
- Kaplan, Daniel T. Introduction to Scientific Computation and Programming., Brooks/Cole, Belmont, California, 2004.
- Shiflet and Shiflet. Introduction to Computational Science. Princeton University Press. 2006.
- Times:
- 9:00am-10:20 TTh
NOTE: Please contact Prof. Miller if you have interest in this course but cannot fit it into your current schedule.
|
|
Benefits of the Course
Work will be done using the MATLAB programming environment, though some attention will be paid to the open source Octave languag. Both are powerful tools for mathematical
and scientific computing in their own right. Each is general enough to
provide students with skills that will easily transfer to other computer
languages such as python and Java. Of more importance to the student who will be taking this course, the skills and techniques learned through this class can easily be translated into a laboratory or undergraduate research setting.
|
Course Topics
-
Computation & Algorithms. The purposes for which you might use
scientific computation. The relationship between an algorithm and a
computer program.
-
Invoking a Computation. The basics of notation, syntax and command
parsing.
-
Variable Types. Dealing with text, numerical, and boolean types
and how to carry out simple numerical manipulations of arrays and plots.
-
Collections and Indexing. How to access individual elements of an
array and how to group elements together.
-
Files and Scripts. File input and output, as well as defining and
executing scripts.
-
Functions. Creating functions. Passing functions as arguments, and
generating functions as values.
-
Conditionals. Using “if” statements and cases.
-
Loops. The standard “for” and “while” loops, nested loops, loop
termination.
|
This material will be covered in nine weeks and the balance of the
term will be devoted to student projects. Other topics in scientific computing may be explored, depending upon the demands of the examples we work with. Such additional topics could include,
- scope,
- databases and database structure,
- recursion,
- numerical error,
- digital signal processing and analysis (e.g., image processing),
- scripting languages (e.g., Perl, python),
- interfacing with laboratory instruments,
- simulation,
- equation solving and optimization,
- data structures and the practical considerations regarding appropriate choice of data structure, or
- other topics related to ongoing research interests at Truman.
|
Course Workload and Assignments
Students will be evaluated through engagement in the course, homework assignments, a midterm exam, and a final project and project presentation. Weekly homework
will primarily consist of computer assignments. The final projects will
give students the opportunity to apply ideas learned in the course in the
context of a problem from their home discipline and to communicate their
results orally and in written form.
Homework assignments will arise as we study questions that are of current research interest to Truman students and faculty. Examples of ways this may happen follow:
- Conservation of an Endangered Bat Species
- Different species of bat native to northeast Missouri "sound" different when they echolocate in search for food. At least people think so. Can we look at measurement of recordings of these calls and use some basic statistics to distinguish between the species we recorded? This question will involve organizing data (perhaps by species), doing some simple statistics on the data (e.g., mean, median, standard deviation), and visualizing the data and the statistics through simple plots.
- How Fast Does Pollen Fall
- Stroboscopic images have captured pollen falling through the air. Understanding how fast the pollen falls has big implications in the field of botany and paleobotany - this speed impacts how far the pollen can disperse to fertilize other plants. Can we take the digital images of the falling pollen and have a computer (1) automatically identify a pollen grain in the picture, and (2) calculate the approximate rate it is falling?
- How do Tick's Breathe?
- A Truman research team has been among the first to understand how ticks manage to survive while submerged under water. THis has something to do with specific tick anatomy and an object called a spiracle. This Truman team, as part of their investigations, put ticks under Truman's electron microscope and grabbed some astounding images. From these images we can count the multitude of holes in the tick's spiracles. Can we program a computer to do this automatically?
- Reading an Electrophoresis Gel
- An important tool in a bioogist's arsenal is the eletrophoresis gel. One pushes a substance (e.g., genetic material) through a semi-solid gel using an electroc current. The distance the particles in the substance advance down the gel is directly related to the size of the particle. What an investigator gets is a bunch of stripes in the gel. The darkness or lightness of each stripe tells the investigator about the concentration of that type of particle in the gel. Can we take a digital image of an electrophoresis gel and program a computer to (1) find a stripe in the gel, and (2) make a measure of its lightness or darkness?
- Interpreting an Analog Signal
- Some scientific instrumentation sends analog (continuous) signals to represent measurements. This happens with a temperature probe and, I think, with a chromatograph. Can we teach a computer to automatically take such an analog signal and translate it into a sequence of values (e.g., of peaks and their locations)? We could practice this using an audio signal of a message in Morse code and identifying where the dots, dashes, and pauses occur. Conceivably, we could then translate the message into letters.
|
Segmentation and medial axis of vascular network
|
|
|
Electon microscope image of Dermacentor (tick) spiracle
|
|
|
Visualization of cross-correlation of beetle abundance
|
|
|
Visualization of habitat data for Missouri Bladderpod
|
|
|