Skip to content
Kyle Oba edited this page Jun 8, 2013 · 24 revisions

The Wiki of: Introduction to Programming

A Processing Workshop @ University of Hawai‘i - Pacific New Media

This wiki covers everything you'll need (and more) for the Summer 2013, Introduction to Programming - Processing workshop. That's a long title, so one of the purposes of this wiki is to help explain what this workshop is all about.

To register, check out the registration link on the official website. For the full description of the course, including prerequisites, check out the Workshop Description page.

Workshop participants, start playing along with the Workshop Outline.

Designed for Beginners...

This workshop is for beginners. Not only that, it should be a lot of fun!

Beyond the nitty-gritty of exactly what topics we'll explore, we'd also like to share a couple of the overarching goals for the workshop.

Goals:

  1. Programming is a tool, which requires you to think about how to solve your problems before you touch the keyboard. We will start you on the path of understanding how to think about programming.

  2. Learning is often a visual process, or greatly aided by visual cues. We will focus on creating visual output, understanding program execution via visual processes.

With these goals in mind we'll approach this workshop a little differently than other programming courses you may have heard about, or even attended before. We aren't just going to dive into code and barrage you with pages of syntax to decipher. On the contrary, we'll attempt to help you learn how to handle the tool of software in a more considered manner. We'll try to answer the "why" questions.

Perhaps more important, we're going to focus on drawing things with the computer. Visual feedback is an essential feature of this workshop. As such, you'll learn how to use Processing (more on this further down).

Prerequisites:

  • Students should already be familiar with computing basics such as how to use the keyboard and mouse.
  • No previous programming experience is required.
  • Curiosity about how computers work is required.

What is this Workshop?

For the full description of the course, including prerequisites, check out the Workshop Description page.

During this workshop we'll cover the following core concepts of programming:

  1. Variables
  2. The if statement
  3. Loops (as illustrated by Processing's built-in draw() loop)
  4. Functions

Variables are not too bad for someone who has had some algebra, and the control structures aren't too painful.

Concept #4 is probably the most difficult. You'll need to understand functions a bit if you're going to call into any of the helpful Processing stuff. What is this helpful Processing stuff? Well, Processing provides functions which you can use to draw things, like rectangles, ellipses, and lines. You're going to want to know how to use Processing's functions. Don't worry, you'll want to use them so bad, you'll forget it's a core concept.

We don't have to get to the level of showing how to create your own function. But, it's something we could explore if time permits.

Proposed Schedule

Here's the planned schedule for our workshop day. Of couse, things may change as we get to know you and what you're interested in.

  • 9am - 12noon Workshop (with two 15 minute coffee breaks)
  • 12noon - 1pm Lunch Break
  • 1pm - 3pm Workshop (with one 15 minute coffee break)
  • 3pm - 4pm Questions & Experimentation

So, that would give us ~3.25 hours of total workshop time. Additionally, people would have time to take breaks and eat. Our hope is that making it more casual will help the material sink in (see metacognition below).

What's up with all the coffee breaks?

Answer: Metacognition

You may have noticed that there are a lot of coffee breaks. Kevin and Kyle are both espresso snobs. But, that's not the only reason for the breaks. They're actually a cleverly disguised portion of the learning process.

The 15 minute breaks (even sans espresso) serve as an informal chance for folks to socialize and ask questions. One majore benefit of these classes is that people can meet others of similar interests and skill level.

They also allow you to step back, think about things differently, ask questions in a less formal environment, make connections, and come back refreshed. In short, we need to interact, tell stories, and get involved in the material. That's how we learn. Take a look at the excellent (and brief) Head First book series' write-up on metacognition.

Why Processing?

What is this Processing thing, and why are we using it? Well, we'll tell you.

From the Processing website:

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work. Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production.

Now, we thought about teaching other programming languages, even other programming languages that we like a lot more. We also thought about using alternative Processing implementations. But, we always came back to Processing. It has a lot going for it (see below), and it's a lot of fun. If you get excited about drawing with your computer, you're going to be thrilled with Processing.

But, enough chit-chat...

What does Processing have to offer?

  • It was designed as a teaching tool.
  • It's visual, and built for drawing with your computer.
  • Feedback is immediate - it's interactive.
  • There are great books available.
  • The creators have fun tutorials available online.
  • There are tons of examples at OpenProcessing learn from.
  • It's professional-grade, as in you can use it to make money, or art, or both.
  • It's free!
  • It runs on Mac, Linux, and Windows (it will even run in your browser, see Resources)
  • It has a great community behind it.

What about other processing implementations?

Alternative Processing implementations exist: ruby-processing, processing.js, sketchpad.cc. But we decided to stick with vanilla Processing. The reason? If you're really a beginner, you'll probably need a lot of help as you get going, and most of the best intro materials on the web and in books are for vanilla Processing.

If you're not a true beginner well, then take a look at the Resources page for additional references, and ways to get yourself into (and out of) trouble.

Wait, isn't Processing Java? I thought that was horrible, icky, government forms type stuff.

You're right, it is. But, we'll shield you from all that Java stuff. That is, we'll protect you until you're ready to handle all this Java mumbo jumbo.

Kevin loves Python, and Kyle loves Ruby. We both make fun of Java all the time. But, we both love Processing. That says something. All kidding aside, we both agree that Java is a powerful tool, and we'll show you how to either ignore it, or wield it with care.

Required Software

The workshop is equipped with Macs with Processing version 2.0 installed. If you'd like to install it on your own machine and bring it, you're welcome to do so.

If the idea of figuring out what version to use and installing the software makes your head hurt, have not fear. You can just use one of the computers provided by the workshop.

Please be aware that this workshop will use the Processing 2.0 version of the Processing software. Also, all of our examples are run and tested using the Mac version of Processing. Your mileage may vary if you switch versions of operating system.

You can get this exact version here:

For the latest version of Processing, check out the download page.

WARNING: Your experience with the workshop's examples may vary if the newest version doesn't match the version we use in the workshop (i.e. Processing comes out with a new version before we have a chance to put it on the workshop computers).