Computation and Visualization in the Earth Sciences

Lesson 1: Introduction


We'll use the programming language Processing to build some interactive animations of cool geoscience concepts. Processing is ideal for what we want to do because it is free, platform-independent, and open source. It is also a great language for a novice programmer to learn because you will not have to deal with all the libraries, compilers, and other system-level functions that usually have to be set up correctly by an experienced user for other programming languages to run.

The tutorial you'll work through in this course is one way to learn Processing. Another great reference is the Processing website, at

I also suggest you invest in a good reference book as well. Here are my three favorites:

  • Getting Started with Processing by Casey Reas
  • Processing: A Programming Handbook for Visual Designers and Artists by Casey Reas and Ben Fry
  • Processing for Visual Artists: How to Create Expressive Images and Interactive Art by Andrew Glassner

I cannot emphasize enough that in order to learn to program you really have to practice doing it. In my experience, that means typing the commands in yourself, not just cutting and pasting them and not just reading over my sample programs. While it is true that you could copy and paste my sample programs into your editing window and then run them, I recommend that instead, you follow along with my examples by actually writing each one of them or better yet, writing an interesting modification to each one of them.


This lesson introduces you to the programming language Processing. We will also read and discuss a news article about teaching computer programming in schools.

Learning Outcomes

By the end of this lesson, you should be able to:

  • print output to the screen
  • make a composition with an assortment of shapes

Note about my sample programs

The content pages in this lesson and most of the other ones contain programs for you to copy, modify, and test out. This course is part of Penn State's Open Educational Resources initiative and I am committed to user accessibility. Therefore, wherever possible I have written out the plain text of the program or command using syntax highlighting and a font that looks like computer code. I have also taken a screenshot of the display window created by the output of the program. In the case of a more complicated program, I have made a narrated screencast explanation of its guts as well as a close-captioned version of the screencast.

If you want to learn to program, don't try to copy-and-paste all of the sample programs. Build muscle memory and increase your cognitive load threshold by typing them yourself. Your neurons will thank you later.

What is due for Lesson 1?

Lesson 1 Assignments
Assignment Details graded? Due date
Reading: "A is for Algorithm" Read and discuss in the Lesson 1 Reading Discussion board in Canvas Yes. This discussion counts toward your overall discussion grade. 9-17 Jan 2017
Exercise 1.1 Set the size and shading of the display window No 17 Jan 2017
Exercise 1.2 Tangent ellipses No 17 Jan 2017
Exercise 1.3 Tangent ellipses 2 No 17 Jan 2017
Exercise 1.4 Tangent ellipses 3 Yes. Turn into the Exercise 1.4 assignment in Canvas 17 Jan 2017
Exercise 1.5 Write your name with primitive shapes Yes. Turn into the Exercise 1.5 assignment in Canvas 17 Jan 2017

This lesson will take us 1 week to complete. Participate multiple times in the reading discussion in a discussion board 9 - 17 Jan, and turn in Exercises 1.4 and 1.5 to the appropriate assignment dropboxes in Canvas by 17 Jan 2017.


If you have any questions, please post them to our Questions? discussion forum (not e-mail). I will check that discussion forum daily to respond. While you are there, feel free to post your own responses if you, too, are able to help out a classmate.