University of Alaska Fairbanks
Geophysical Institute

Beyond the Mouse 2010 - The geoscientist's computational chest.

Beyond the Mouse 2010 - The geoscientist's computational chest.
(A Short Course on Programming)

"Programming is legitimate and necessary academic endeavor."
Donald E. Knuth

Overview:

In the geosciences -as in many other disciplines- we collect data which need to be analyzed in ways that depend on the problem posed. The ability to modify your environment according to your needs instead of having it dictate how you approach a problem is invaluable. This is especially true in a setting that is supposed to generate fresh knowledge. Also, and this may be even more important, we are lazy people. We do not want to waste time by repeating the same steps again and again, and ... again. Such boredom causes errors. And being bored by such routines is totally legitimate. A computer (the machine, and earlier the person) exists to perform such routines reliably and repetitively: It takes in data, manipulates it following your commands (YEAH!), and gives the respective result. The point of writing computer programs is to automate an intellectual challenge that has been solved and make it reusable at all times - for yourself and ideally for others.

What this course is:

The intent is to hand you tools that will allow you to massage data in exactly the way you want it to be. We will start out manipulating your thinking, introduce you to programming in general, and then take off into specific working environments namely Unix/Linux and Matlab while teaching you how to map your data using GMT. We will cover many things in a short amount of time which means that we will give you many pointers which you can follow up on depending on your needs.

What it is not:

Complete.

Grading:

The class is pass/fail. Passing is based on mostly weekly homework assignments and a final project. The homework exercises consist of:

The final project will (hopefully) be specific to your research project. We want to encourage you to set up an efficient and safe environment in which you apply the methods and tools introduced in class. In the beginning of the semester you will provide us with a snapshot of your project directory (If you don't have one, don't bother). Send rudimentary datafiles - scripts/programs should be executable. You will do the same at the end of the term. Our expectations include (further specification later in the term):

(tentative) Schedule:

The class meets: Mondays 1-2 pm (REIC 237), Friday 10:30-11:30 am (REIC 316).

FriSep 10IntroductionJeff Freymueller
MonSep 13Thinking ProgramsRonni Grapenthin
Fri Sep 17, Lab 1Organizing your ideasRonni Grapenthin
MonSep 20Fundamental Programming Principles I:
Variables and Data Types
Ronni Grapenthin
Fri Sep 24, Lab 2Matlab and Variables Ronni Grapenthin
Mon Sep 27Matlab I: (Advanced) Variables and functions Jeff Freymueller
Fri Oct 01, Lab 3Matlab structs and functions Ronni Grapenthin
Mon Oct 04Fundamental Programming Principles II:
Control Structures
Ronni Grapenthin
Fri Oct 08, Lab 4Matlab flow control Ronni Grapenthin
Mon Oct 11Matlab I/O I Ronni Grapenthin
Fri Oct 15, Lab 5Matlab I/O Ronni Grapenthin
Mon Oct 18Matlab I/O II Ronni Grapenthin
Fri Oct 22, Lab 6Matlab I/O II (plotting) Ronni Grapenthin
Mon Oct 25HTML/CSS Ronni Grapenthin
Fri Oct 29, Lab 7Create your website Ronni Grapenthin
Mon Nov 01Unix Tools I Jeff Freymueller
Fri Nov 05, Lab 8Unix Tools Ronni Grapenthin
Mon Nov 08Unix Tools II Jeff Freymueller
Fri Nov 12, Lab 9Unix Tools Ronni Grapenthin
Mon Nov 15Live Shell Scripting Ronni Grapenthin
Fri Nov 19, Lab 10Matlab based student project presentation / Unix Ronni Grapenthin
Mon Nov 22Debugging Ronni Grapenthin
Fri Nov 26THANKSGIVING - No Lab
Mon Nov 29GMT IBernie Coakley
Fri Dec 03, Lab 11Using GMTRonni Grapenthin, Bernie Coakley
Mon Dec 06GMT II Bernie Coakley
Fri Dec 10Student Project Presentations Ronni Grapenthin

Prior to each lecture you will find handouts, examples, and problem sets here. The problem sets are supposed to get you started poking around on your system and/or change the way you approach problems. The handouts will form some sort of mini-handbook that could be placed next to your computer.

Notes:

If you do not have access to a unix-linux-mac environment, I recommend a similar setup as we'll have in the lab. We will use virtualbox as a virtualization software which allows to run, say, a linux distribution within a running Windows (no rebooting required). Once virtualbox is installed you need to put a linux distribution of your choice (maybe ubuntu) on top of this. See Ronni (ronni <at> gi <dot> alaska <dot> edu) if you need help with that.

Contact:

Ronni Grapenthin
Geophysical Institute
University of Alaska Fairbanks
903 Koyukuk Drive, P.O. Box 757320
Fairbanks, Alaska 99775-7320

email: ronni <at> gi <dot> alaska <dot> edu
phone: +1 (907) 474 - 7428

ronni <at> gi <dot> alaska <dot> edu | last changed: September 02, 2010