This site is the result of an ongoing project to use The Processing language with Middle School students. The project got it's start as the result of a series of workshops in Hillsboro OR. put on by Derek Runberg and SparkFun Electronics(Jeff Branson and Lindsay Craig with the able, good-natured assistance of Rob Carpenter).
Derek had approached SparkFun in conjunction with a West Coast tour and asked what the options were for material outside the mainstream "Intro to Arduino". After a bit of remote brainstorming between Boulder and Portland we settled on using processing and setup some basic intro material. We liked the use of Processing for it's immediate feedback and ease of entry for students just entering the world of text based programming and interactivity. One of the observed effects of classroom use is students willingness to troubleshoot bugs more readily than in the Arduino setting. Processing isolates code from problems with hardware and reduces the amount of variables in the troubleshooting sequence, making it an easier and more sequential way to learn embedded and interactive technology.
As Derek and Jeff swapped code and explored the progress of Derek's students it became quickly apparent that the project might have broad-based appeal for the education community and there should be a way to disseminate the material. Derek authored the site you're on and here we are.
If you are using Processing and would like to share your material, or if you do something cool in addition to what you find here, please let us know so we can pass this along to the community. this is an open source project and we will all benefit from community involvement.
We all hope this site is helpful and look forward to seeing where we go!
It really has been amazing 7 months since starting this website. I never thought that it would get so popular so fast. In fact after starting the site, I figured it was more for me to dump my ideas into as a repository for myself and never really thought that other people were really looking at it. I then got an email from Jeff, he asked me if I was seeing any traffic on the site. I replied, "I dont know, I havent really kept track", he then moved on to tell me that he was sharing the site and the material on it with everyone that would listen. If my memory is correct, one of the first places that he shared the materials with was a group at Cal Poly. I fell out of my chair.
Since then I have been adding to the site, and starting to keep track of site traffic...finally! It is such a humble honor that my material is being shared across the nation, and I owe Jeff and the Sparkfun Dept. of Education
Most recently I was asked to put on an all day workshop around Processing & Interactivity for Educators at Sparkfun headquarters in Boulder, CO. again, fell out of my chair again, and agreed right away. Yesterday day the workshop took place and it was a real hit, in fact it was the first professional development around Processing that I have ever given (I have run a few around Arduino) and the materials and flow of the workshop were completely new and untested in terms of workshop format.
Not only did we hit a lot of material in one day, but we also added a hardware component into the mix in the last hour and a half of the day. We introduced using a Makey Makey
board with processing as a quick start out of the box interactive tool to make some really cool interactions in Processing without having to learn or spend time on serial communication between an Arduino and Processing. I am planning more materials that incorporate the Makey Makey into Processing materials more and more.
Again, it went really well. We had about 12 people for the workshop and many of them were from the local library system...Awesome! I would like to thank everyone who came, and I hope that it was a great source of information and that you learned a lot. I am also hoping that your brain doesn't hurt too much now.
I am adding the presentation to the instructional materials of the site and I hope that is a useful tool not only for review, but also as a reference for further professional developments in the future.
I would like to thank Jeff and Sparkfun for putting everything together for me and hosting the workshop as well as letting me stick around for AVC
Thank you so much,
It is always a tough decision for me, how much detail should I go into as far as hardware components? I have seen the outcomes of both extremes. I have given too much information about resistors, diodes and motors leaving students in a comatose state where they ask..."when are we ever going to use this?" I have also glossed over the details, focussing more on the building and getting it working aspect; cutting out the details. This tends to produce students who are interested in building but can only reproduce given circuits and not design their own projects.
I am not one to lecture, I actually hate it! I am a huge believer in the student centered classroom and only give presentations when it is absolutely necesarry. So, where am I am in terms of teaching hardware? I am in a state of transition...trying to tow that line between detail and completely obtuse.
In an attempt to make individual component knowledge more interesting and inclusive I have started to create WebQuests. These activities are different from one another, but usually incorporates a number of different types of content: Video, images, tutorials, research, design. They are designed to give a primer to students before building a circuit and give addition information to refer to when creating their own circuits.
You will find these in the Instructional Materials area in their own folder. If you have any ideas or feedback, or even have created your own please contact me and/or leave a comment below.
Its funny...the whole creation of this site and the curriculum that it includes was centered on how to preload students with the basics of text based coding in the anticipation of working with the arduino IDE and imbedded computing/ digital electronics. With the focus being on Processing the Arduino part of the curriculum has fallen for the most part to the wayside... not entirerly.
The reason for delay in Arduino is because that I have been developing projects and curriculum as a "just in time" model. This is not entirerly by the seat of my pants, but more of a research and development process. Before projects are added to the website I teach them (duh!) and then modify them as needed before being added. Some of these project range in levels of completeness or polish, but that is the spirit of open source...build on others work.
I am now happy to be adding projects that are Arduino based. One of the reasons for the delay was that I wanted to create projects that had context, or that students could connect with reality. One of the questions that plague my class is "When are we ever going to use this?". I wanted to kill that question before its asked. So all projects are application/ product and creatively combine student design and the Arduino.
This came as an epiphany recently at a workshop that I was co-teaching with Jeff Branson at the Oregon Museum of Science and Industry here in Portland. We had spent the weekend creating an Arduino controlled balance beam at a seperate workshop. Much our dismay I had forgotten the project example at home, so we could not show it as an example. Fear not! Cardboard to the rescue! We recreated the project from some carbard and materials "borrowed" from the cafe. The cardboard project actually functioned better in some ways than the finished wood one does. That day it hit me... cardboard based projects that use the components of the Sparkfun Inventors Kits to create cheap interactive artifcacts!!!!
These projects focus on the Big six of Arduino and then move into the combination Arduino and Processing. The first project which has just been added is an LED based lamp of their own design that focuses on digitalWrite, analogWrite and analogRead. There will be photographs of student work added soon, but for now please check out my example design and the assignment handout! I will be adding the Carboard Hero projects to the website as I teach through them. I will also be adding instructional materials as I create/ modify them.
After working through the learning process and learning patterns of Processing and Arduino we have made a few observations
over the past month that shine some light on the future of technology education in the future. As it has been shown through the use of Arduino and Processing it is becoming harder and harder to keep the conversations of hardware and software seperate. One informs the other and for the most part one cannot exhist with the other.
The original goal of this site is interaction in the classroom, the ultimate interaction is between software and hardware. These interactions are powerful teaching tools, and potent components when applied to project based learning. All of a sudden a students skills with both hardware and software are tested. The engineers of the future need to have a solid ffoting in both camps and become what has been coined a "wholistic technologist" (More on that later).
While talking with many of coleagues I have realized the similarities between Arduino and Processing, not only within the IDE's, but in flow of learning and overlap opportunities to use both IDE's to teach the same concept. Sparkfun has thrown around the term "Big six" for their learning goals in the area of Intro to Arduino. These Big 6 are: digitalWrite, analogRead, analogWrite, Serial, if(), and digitalWrite. Essentially with these basic building blocks, the world of Arduino becomes completely open to you to create anything.
I have been working on a complementary set of skills in Processing. One problem that I have ran into is the sheer number of commands and functions in Processing doesn't lend itself to a simplified set of six. What I am working towards and feel that I have accomplished is a grouping or themed set of 6. These are: Geometry, Color, Tranformation, Serial, If(), Image/ Text. With these 6 a learner could produce an extremely potent project that is visually appealing, interactive in nature and interconnected with other progams and/or hardware via serial communication.
I have come to the realization that if you combine these 2 sets of 6 you come up with 12 ultimate tools/ skills for the wholistic technologist. These combined with documentation, and basic assembly skills produce an educational platform to move our educational system forward in terms of STEM education and producing more people who produce their own content rather than just consume it.
Many of you by this time have probably seen the video(s) from code.org
. Where they are short documentary style clips of successful "all-stars" and their views, and connections to computer coding. In my experience these videos, no matter the length have been one of the most powerful tools for me in the past few weeks than anyother lesson, handout or project.
Getting students to make authentic real world connections to the reality of code is rather hard. For the most part students understand that websites and software are code based, but its not natural to make that connection. They also know many of celebrities in the videos and dont realize they are coders, programmers, engineers, etc.
The first time that I showed one of the videos, kids were able to name every person in the video before the name caption came up, but they had not realized that these people wrote code. As each person was interviewed a sea of "wow's" and "ooh, I know him/ her" flooded my room. After making multiple feeble attempts to make connections for kids through sites, readings, research, etc, this video nailed it.
I am proud to be a part of the 10%, but I am also sad that this is the present state of the educational system as of now. It is not rocket science...its computer science and tools like Scratch, Processing, Arduino are the simple, low cost, shallow learning curve tools that schools should embrace in a time when we need computer science the most, and when dollars are stretched thin.
Building on the concept of "Processing Unplugged" I started to create the projects that would mirror the learning concepts and progressions of my original assignments (whenever possible). I realized a simple next step is to go beyond the "unplugged" and plug in the unplugged project. If you are like me (a computer/ electronics/ building nerd) you are probably asking yourself, "if something is unplugged, what happens when I plug it in?"
I did just that with this first unplugged project. I created an extension assignment for students where they then take their work that they create on graph paper and then plug that into Processing. In essence the project "plugged in" is reconstituting the concepts that are broken down by unplugging it, learning them and being comfortable with them, then building it back up and plugging it back in. The currious kid who takes his dad's drill apart (me) to see how it works comes to mind, but then think about getting it back together and it working again (sorry Dad).
You can start finding examples of students plugged in work on our Open Processing gallery, check it out and comments are always welcome!!!
Some things are funny when you are in the development process of education. You come across them and take note, then put it on the back burner for later. You may think "it's too rinky-dink for my students" or, "maybe later, when the dust settles". Those are both lines that came out of my mouth when I came across openprocessing.org a few months ago.
When I took the dive into Processing I googled it, I checked out every website that I could looking for tools, information, example projects, uses, etc. I always take pretty extensive notes, and this Processing information session was many pages of notes, printouts, and links. Recently, as I have been looking for some way to display student work and example sketches for this site I returned to my notes for help. I was frustrated by how sketches looked as HTML iframes, you couldnt show code in context next to the sketches, and no one really wants to deal with .zip files and clutter their own computer with examples of others work.
About 2 pages into my notes I found a link...that's it, just a link. "openprocessing.org" I went there to remind myself of what it was, and to my glee and elation it was just what I was looking for! openprocessing.org allows me to upload a sketch in its etirety, it plays it as a java web-applet, and you can view the code, even edit it and change it on the spot with the web editor...no download required.
So in making a long story short... the gallery for this site is now on openprocessing.org as a collection hosted by me. I will be uploading examples of all the projects that are displayed on this site, so that you can view them easily, manipulate them and take a peak under the hood without the annoyance of even having Processing on your computer, or downloading the sketch files.
I have also recently created a classroom on the website that I would like to invite anyone to submit sketches to while using the instructional materials from this site. I see it as a place for us all to share the fruits of our/ our students labors!
I am working to get things moved over right now but, please enjoy playing!
I just now finished a presentation that helps to explain variables and data types at a low level fly over. I would really appreciate feedback from others in the comments of this post on what should be added, removed, or lurking errors that I have made (which usually happens). I am working on an Unplugged exercise that also tackles the issues of data types. It will hopefully illustrate also how to change from one type to another. We will see!
It may seem simple and straight forward to think about drawing on graph paper, but it is a foundational skill to learn when students are learning Processing. I have just added a Presentation on an introductory project to teach some of the basics of Processing...drawing without Processing at all. There will be handouts to come, but for now the presentation is simple enough to turn into a presentation that all you need is graph paper, something to draw with, and color with and your students will end up doing some pretty cool pixel art. Check it out, and as always I am looking for feedback!
I always look for things that I get the most for my dollar, kill two birds with one stone, or make it worth a trip. My curriculum is no exception. One of the things that has drawn me full force to Processing, and Arduino for that matter is the flexibility and expandability that they afford my students and I. In this day and age of teaching to all students, integrated ESL, and a number of special needs that need to be addressed in the classroom and with that it a flexible and differentiated technology is needed.
Processing is showing itself to be easily leveled to students' learning ability and age. I have given small workshops to elementary students with great success in Processing, just playing with geometry and a few basic variables. I have created a simple flow chart that depicts a possible curriculum flow that would span a long period of time.
If somehow we were able to align a students computer science (CS) / technology education over a period of time starting in upper elementary and spanning to the end of high school, I feel that this would be a good outline for a well rounded sequence of topics. This does not include other important skills like drawing/ design, modeling/ fabrication, etc. but from a CS point of view would be pretty comprehensive, while using a single software package (combination of Processing and Arduino) that would align in syntax, operation, and instructional materials available.
As you read this, I would really like feedback on this flow chart. If you can think of other topics that would be doable I would like to hear from you, as well as where it should go within the sequence. This is a work in progress and many eyes/ hands makes light work. Thank you!