In the (geo)sciences -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.
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.
The class is pass/fail. Passing is based on mostly weekly homework assignments/lab exercises, and a final project (percentages of individual labs depend on total number of labs (max. 12)):
|Project Presentation||1 Lab|
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):
The class meets: Mon (lecture+lab) + Tues (lab) 3:30-5:30 pm in REICH 316.
|Sep 08||Introduction||Jeff Freymueller, Ronni Grapenthin|
|Sep 12,13||Lecture 1: Thinking Programs||Ronni Grapenthin|
|Lab 1: Organizing your ideas|
|Sep 19,20||Lecture 2: Fundamental Programming Principles I:|
Variables and Data Types
|Lab 2: Matlab and Variables|
|Sep 26,27||Lecture 3: Matlab I: (Advanced) Variables and functions||Jeff Freymueller|
|Lab 3: Matlab structs and functions|
|Oct 03,04||Lecture 4: Fundamental Programming Principles II:|
|Lab 4: Matlab flow control|
|Oct 10,11||Lecture 5: Matlab I/O I||Ronni Grapenthin|
|Lab 5: Matlab I/O I (files)|
|Oct 17,18||Lecture 6: Matlab I/O II||Ronni Grapenthin|
|Lab 6: Matlab I/O II (plotting)|
|Oct 24,25||Lecture 7: Unix Tools I||Jeff Freymueller|
|Lab 7: Unix Tools|
|Oct 31, Nov 01||Lecture 8: Unix Tools II||Jeff Freymueller|
|Lab 8: Unix Tools|
|Nov 07,08||Lecture 9: Live Shell Scripting||Ronni Grapenthin|
|Lab 9: Unix Tools|
|Nov 14,15||Lecture 10: Debugging / HTML||Ronni Grapenthin|
|Lab 10: Building a website|
|Nov 21,22||Lecture 11: GMT I||Bernie Coakley|
|Lab 11: GMT|
|Nov 28,29||Lecture 12: GMT II||Bernie Coakley|
|Lab 12: GMT|
|Dec 5-12||Independent Study: HTML||Ronni Grapenthin|
|Lab 13: Setting up a website for project presentation|
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.
To discuss issues with labs, projects and general programming issues with your fellow students, we set up the mailinglist:
Please sign up at http://dogbert.gi.alaska.edu/mailman/listinfo/btm2011 and use this list first to ask your questions.
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.
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 modified: February 01 2013 21:41.