Personal tools
You are here: Home MathBio Minor Introduction to Scientific Programming

Introduction to Scientific Programming

Document Actions

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

  1. Computation & Algorithms. The purposes for which you might use scientific computation. The relationship between an algorithm and a computer program.
  2. Invoking a Computation. The basics of notation, syntax and command parsing.
  3. Variable Types. Dealing with text, numerical, and boolean types and how to carry out simple numerical manipulations of arrays and plots.
  4. Collections and Indexing. How to access individual elements of an array and how to group elements together.
  5. Files and Scripts. File input and output, as well as defining and executing scripts.
  6. Functions. Creating functions. Passing functions as arguments, and generating functions as values.
  7. Conditionals. Using “if” statements and cases.
  8. 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 of vascular network
Segmentation and medial axis of vascular network
SEM Image of spiracle
Electon microscope image of Dermacentor (tick) spiracle
Visualization of cross-correlation
Visualization of cross-correlation of beetle abundance
Visualization of habitat data
Visualization of habitat data for Missouri Bladderpod

Powered by Plone

This site conforms to the following standards:

Section 508 WCAG Valid XHTML Valid CSS Usable in any browser
This material is based upon work supported by the National Science Foundation's Interdisciplinary Training for Undergraduates in Biology and Mathematics program under Grant No. 0436348, "Research-focused Learning Communities in Mathematical Biology," and Grant No. 0337769, "Mathematical Biology Initiative." Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.