Introduction to Programming

Objectives: This course provide a general overview of programming concepts, and specific introduction to Matlab, IDL(Interactive Data Language) and FORTRAN Language.  

I. Introductory Concepts 

 Week 1
Introduction: Unix background/overview, basic data structures.
PPT 1 | PDF
PPT 2 | PDF 

Week 2
Working in a Unix(-like) environment: Unix terminology, essential commands, shells(what they are/types/scripting),text editor(s).
PPT 2 | PDF 

Week 3
Network related topics: tunneling, vpn, ssh, ftp, scp, creating/maintaining a simple webpage (html), brief look at data format types.
The first part of class I'll cover the Unix/Linux commands left from last lecture.
The second part will be a demo illustrating many of these commands to transfer and work with data over a network.
Part of the process involves a nice opportunity to use a shell script.

PPT | PDF 

Week 4
Introduction to computer science: discrete logic, problem solving methodology, algorithm design, program structure, good programming practices, development/debugging tips.
PPT 

II. Fortran 90/95

Week 5
Introduction: Creating a basic program in Fortran.
Key | PDF | PPT
Example code
ILikePie.f90ClimateModel.f90TestingInts.f90Statistics.f90
Homework #1 PDF

Week 6
Step 2: Control Structures and Multi-Dimensional Arrays.
Key | PDF | PPT
Example code
OscarsIF.f90OscarsCase.f90OscarCount.f90MultiArray.f90OscarCount2.f90OscarCount3.f90
Homework #2 PDF

Week 7

Week 8

III. IDL: Interactive Data Language

Week 9
Week 9
Introduction to IDL.
Key | PDF | PPT
Example code

Week 11
Contour Mapping.
Key | PDF | PPT
Example code
cbar.procindex.procontour1.procontour2.procontour3.pro
legend.promake_postscript.proplotting_colors.prowrapping.pro
Data sets
data.txt is a 41 x 41 block of data representing "elevation" the data set covers the area 24.0 N to 48 N and -122.0 W to -72 W with 0.6 degrees between each grid point in the meridional direction and 0.75 degrees between each grid poin in the zonal direction.
This dataset was obtained from D. Fanning

tas_gfdl.nc is a global surface temperature dataset from the Climate of the 20th Century simulations produced with the GFDL CM 2.0 GCM. This dataset was obtained from the PCMDI website. 

Week 12
Optimization and Statistical Techniques.
Key | PDF | PPT
Example code
cindex.procolors_anomalies.proeof_example.proglobal_temp.propower_spec_example.pro
read_had_global.proread_sun_spot.prorm_seasonal_cycle.prormv_season.pro
temp_trend.pro temp_vs_sunspot.pro
Data sets
GP_precip.txt is timeseires of monthly mean Great Plains Preciptation
Extending from 1901-2002. This data set was derived from the CRU TS 2.1 preciptation data set.
hadcrut3gl.txt is a global combined land and  marine [sea surface temperature (SST) anomalies from HadSST2, see Rayner et al., 2006] temperature anomalies on a 5 x 5 degree grid-box basis.
anomalies are taken relative to the 1961-1990 base. The timeseires extends from
1850-present. For each year, the first row represents the monthly mean temperature anomalies and the second row represents the percent of the globe with data.
nino3.4_index.txt is a timeseires of the Nino 3.4 index. The timeseires extends from 1870-2002
sunspot_activity is a timeseries of the monthly mean international sunspot number from
http://www.ngdc.noaa.gov/stp/SOLAR/ftpsunspotnumber.html  The timeseries extends from 1850-present.
zg_ukmo.nc is a global geopotential height dataset from the Climate of the 20th Century simulations produced with the HadCM3 GCM. This dataset was obtained from the PCMDI website.

IV. MATLAB: MATrix LABoratory

Week 13
Introduction to MATLAB.
PDF | PPT

Week 14
Week 15
Graphics in MATLAB.
PDF | PPT
Example code
AIRC_lifetime_plot.mmake_ind_plot.mIntFig200525.tifvort193_fig.tif 

Week 16
MATLAB Extras.
PDF | PPT
Example code
AIRC_map_all.mAIRC_map_all.matAIRC_map_all.tif 

No comments: