CAS cheat sheet

SandBox online arduino tool:
sand box online arduino emulator
 

Neo Pixel example

Neo Pixel Library from git hub. Click on the download zip button on the right.

#include <Adafruit_NeoPixel.h>

#define PIN            6
#define NUMPIXELS      12

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 200; 

void setup() {
  pixels.begin(); 
}

void loop() {
  
  int activeLed = 0;
  
  pixelOn( activeLed, 100, 0, 0 ); 
  delay(20);
  pixelOff(activeLed);
  delay(20);
}

void pixelOn(int index, int r, int g, int b){
  pixels.setPixelColor( index, pixels.Color( r, g, b) ); 
  pixels.show(); 
}

void pixelOff( int index ){
  pixels.setPixelColor(index, pixels.Color(0,0,0));
  pixels.show(); 
}

Posted in Uncategorized | Leave a comment

Seven Thoughts on Teaching (programming)

Its not a huge surprise I haven’t written anything here since my change of direction to become software developer. A friend from primary school contacted me recently as he was about to start a code club. He had gleaned form my various fb posts that I have spent some time teaching programming and wondered if I had an advice. I wrote a massive, sprawling email, then deleted it and tried to write a list. As with most things (here) it is a work in progress, if you can add to it or refine it please do.

Teaching is probably one of the most important things we can do. Our capacity to accumulate and share wisdom that transcends generations is a defining feature of us as a species. To teach is to learn twice (Joseph Joubert) and to do it well can have the most profound impact.

(1) Prepare and Practice:

This seems obvious but is really important and worth underscoring. Knowing your material makes everything much more pleasant. The old adage “fail to prepare, prepare to fail” rings true. You don’t have to exhaustively commit it to memory but an outline of where your time is going to go is very helpful.

Spin over what you plan to do and identify any things that will go wrong. Then when you do it with learners, let the things go wrong and recover with your learners. Knowing how to get of trouble is one of the most valuable programming skills.

I remember on my first gig in Orkney taking wee Arduino robots in to classrooms I really painted my self into a corner and it had nothing to do with programming. I asked the question: “So you can use decimals for your time delay between instruction if you want. Have you all done decimals?”. They replied:“no” I then proceeded to give a very sketch off the cuff description of what decimals are and how they could be used for my robots. In an ideal world I should have known this before I went in to the class room. Though spotting the situation and backing out rather than giving a ill-prepared description of a topic that is carefully covered over a long period of time would have been fine. (Closed questions that can be handled with a yes or know are also not good, much better to invite a explanation or description of what X is and leave enough time for someone to speak up)

Every educator has experience that painful moment when you are on superb form, flowing eloquently through the nuance and complexity of your topic and you energetic delivery is met by growing numbers of blank gazes. Being prepared knowing your audience and engaging them with open questions (can any  one tell me what a decimal is?) and giving them space to reflect on their understanding will help ensure the pace of the learning experience matches the pace of the learners.

(2) The Expert Novice Match Mis Match:

It seems logical and quite sensible to learn from an expert this can present some problems. One of the biggest challenges in teaching is to put yourself in the shoes of the learner.You need to be able to unpack tacit knowledge you take for granted and really peal back the layers to expose this knowledge. Being able to zoom in on a what is to you a simple concept and find a variety of way of building up to understanding is valuable skill.

A variable is a great example. Its one of the fundamental building block of programming how would you introduce it to a learner? When there is no supporting knowledge around the concept you are trying to teach it become a bit like trying to describe a flavour without referring to other flavours (or difficult!) The closer you look the more subtle and nuanced it becomes. Most common analogies begin to break down and that is fine as long as there limitations re known. Giving the learner the amount of detail they need and are motivated to receive is a tricky balance to strike.

(3) Humility

Education is a subtle complex dance of communication and shared discovery and is inherently error prone. You will at some point not know something, get it wrong or have to back up a bit and take a different tack on your current line of attack. Humility and accepting and showing (to your learners) when things go wrong is the first step to fixing them. Programming is inherently error prone too and getting young learners to see that is important. Preparation can help control when things go wrong, but presenting a polished error free programming experience i selling them a half truth. A fair amount of my day job involves figuring out why stuff isn’t working rather than writing new stuff. The educator is guide not gate keeper, fallible and requires the courage to recover from mistakes publicly. I still remember a teacher whose pride forced them to argue tooth and nail that balsa wood was a hard wood to save face.

(4) Ceilidh or Disco: Structure vs Freedom

This is all about structure and the rules of engagement. As with most of these points its about balance and judgment, not  a is bette than b. Ceilidh’s (I would argue) are generally less intimidating to the novice dancer as the dance moves are well defined and often ran through by the band prior to the commencement of the dance. At the other end of the spectrum in a disco there is music and total creative freedom which is great if you know what you are doing but intimidating if not. The same is true for a learning experience. If a topic is new to learners it probably wise to err on the side of well structured and well defined tasks. As the ability and competence increases less structure and more creative freedom will be required to continue engagement.

(5) Inspire & Underpinning

I recon we under use the inspiration in engineering in general. Its no good looking at fantastically complex systems that a learner has no chance of getting anyway near to building. There is merit in understanding where the thing we are doing has come from, I bet you can name 5 famous physicist quicker than you can computer scientists or software engineers.

It is however possible use inspiration to drive motivation and in turn learning. One of computing best kept secrets is the capacity for complexity to grow or emerge out of simple algorithms. When you follow these simple steps look what happens. Light following robots are a good example of this. I have a hunch that particles systems in Processing may provide a similarly complex behaviour that could provoke a learner to peel back the layers and work through the processes to achieve the complex behaviours. A superb route to learn about arrays and objects.

(6) Small Deliverable Goals

This is good practice in commercial dev as much as it is in a learning situation. The investment and reward cycle needs to be quite tight. It is often banded about that in an undergraduate lecture students are switched on for around the first 25 minutes and the last five minutes of a lecture. The best approach to avoid this is to structure you sessions around relatively small time blocks. With a shift in delivery modality or small disruptive activity between each chunk. In robot dance the target was for a time to first task of 10 minutes. We were able to get from hello my name is … through a bit of back story and to making the robot move in 10 minutes. The works flow form then on had a similar time frame. Code a bit, upload, test repeat. In the same fashion that small deliverables allow commercial dev to be agile and shift focus as needed, small deliverables in an education setting giving the learner constant feed back in progress and allows the educator to be flexible in their delivery. If you find your self with an extra 10 minutes there may be something additional you can pull in.

(7) Books and Movies: Expectations and Reality

This is the final point and a good one to finish on. When ever we invest time in any creative act we build our own perception of it and how it will play out and what will be. This fails to acknowledge that when the plan is enacted there is a bunch of random put into the mix in the form of your learners. What felt like a splendid concept chain in planning may fall on its face when tried out. On the flip side you may be surprised that a relatively benign section of your plan played out to be really interesting. In every case the reality of any plan in action will differ from your perception of how it was in your head. The important thing is to be comfortable with failure. Not cavalier, reflect on where things went wrong and tweak and improve as you move forward but remember if you think everything is going perfectly you probably aren’t looking hard enough, or stretching yourself. There are no codebases with no bugs, just code bases with undiscovered bugs.

“don’t apologise, learn” (~Justin the knight)

Posted in Uncategorized | Leave a comment

Code a Kilt for you…..

It was a year ago pretty much to the day that I put together Code a Kilt as workshop for the inaugural Edinburgh Mini Maker Faire. After delivery at a range of events and various tweaking its now ready to be out in the wild (I think!). You will need to download processing from the processing website and download the two wee helper apps (the clickable docs and the colour picker from my drop box). Below is a really ruff ‘one take’ video tutorial that walks you through what to do once you have them up and running on your system. happy kilt coding!

 

Posted in Uncategorized | Leave a comment

Aye Make, therefore I am…

dundeeDev.001

[1] This is essentially the main argument of the talk, we are immersed in tech and should give everyone the best possible chance of engaging and learning about it. Its not about making every one programmer it is rather ensuring they have a credible taste of the creativity and empowerment programming skills can give them.

dundeeDev.002 

[2] this was a wee make for gathering the attention of an audience in the absence of a wine glass. 

dundeeDev.003

[3]  I’m a PhD student and this is visual representation of what a PhD is: a journey to the bounds of a very specific area of human knowledge with a little contribution of knowledge at the end. [The Illustrated Guide to a PhD]

dundeeDev.004

[4]  This is my contribution, a model intended to aid the design and critical evaluation of programming learning experiences. Broadly put it considers learning to programming “in the round” considering the learners, attributes of what they are making and the impact of where they make it.

dundeeDev.005

[5]  A significant challenge for programming education is that we find our selfs in a paradoxical situation: technology is every where but not that cool anymore. Our relationship of aw and wonder at tech has shifted to that of a more demanding consumer (and rightly so). I can take a picture on my cycle to work, share it with my personal network and receive comments before my cycle is finished. This connected ness is the new normal. We are no longer excited when we can get good mobile network more over hacked of when we can’t.dundeeDev.006

[6]  I propose we take an approach to enabling learning that leverages Making as a vehicle to learning about not just code but all sorts of interrelated things. Ideas are good, prototypes are better.

dundeeDev.007

[7]   The maker movement at the moment is vast and energetic, which is superb. It is however broader than 3D printing, cheap single board PC’s and micro controllers. If we look back at what making means we begin to unlock to the power. Massimo’s ted talk in Edinburgh represents this well. https://www.youtube.com/watch?v=eFCk3qWmCoo

dundeeDev.008

[8]  The roots of my hunger to Make are not particularly hard to find. My dad has always fixed thing, cars, washing machine etc. If I go back to my grandfather and 1944, we can see. He was an electrical engineer by trade and worked for a large insurance firm perfuming inspections. Back in 1944 he was faced with the challenge just as pertinent today, the family holiday. Converting a van to motor home back in 1944 was not as typical as it is today, and neither was a canvas baffled rise and fall roof to offer mobility, but head room when on site. The bigger van demonstrates another innovation, it was huge and based on a bedford van. To get a vehicle at this scale would result in a heavy industrial lorry not really whats needed for a family holiday. The solution was to get two lighter vehicles and insert a section of one into the other to extend the chassis and retain the light weight running gear. I think this is lovely illustration of making something that fits your needs be it budgets or simply stuff you just can’t get off the peg. It also highlights the  responsibility and risk that goes hand in hand with making large scale projects. You can’t go and sue Bedford if your van falls in half.

dundeeDev.009

[9]  The first study to explore making in my PhD revolved around small Arduino robots and making them dance. This study demonstrate a small significant learning effect as a result of short robot dance workshop. The interesting bit which was followed up by further study was the way in which some learners were engaging in the tasks. Using external notation, demonstration of good collaborative reasoning (paired programming) and a tight relationship between understanding the effect the code was having on the robot (debugging). I wanted to look at bigger more open and ownable (by the learner) projects….

dundeeDev.010

[10]  As part of Nesta’s one day digital event I ran a series of four Arduino workshops with learners aged 15-17. The structure for the day was based around a morning of learning fundamental electronics and programming and an afternoon of applying this to the construction of a #physicalApp. These two activities were disrupted with various design activities to encourage learners to think about possible build ideas and explore them as sequence of interaction (in storyboards). The group above made a homework monitor, one button to add items one to remove. They wanted a physical dial (which uses a servo) and an RGB LED, They had some problems getting the LED and the Servo working on the same Arduino so decided to use serial communication (one Arduino for the servo and one for the LED) between the two Arduino’s which was rather neat. This went somewhat beyond the stuff I demonstrating.

dundeeDev.011

[11]  This chap was very quite and keen to work on his won, given time developed a physical app that simulated taking accelerometer data from his gran knitting needles and fed that it into an servo drawing machine. The response from his peers when they shared their builds at the end was superb (“~audible gasp~….. thats cool.”).

dundeeDev.012

[12]  If we now step forward to undergraduate learners and 12 weeks of learning, the opertunty to make really cool and complex stuff get better and better. At the end of the Physical Computing module students are given a brief to make a data appliance that makes a bit of the web physical. This group made a home energy use monitor particularly tailored for Older adults. They found a source on the web of live power consumption in some ones house and identified that the two most important piece of information are how much power am I using now? and whats my running total for the month? This was all rapped up in a rather nice photo frame. I believe some of the major energy providers are doing  similar things now (this was 4 years ago).dundeeDev.013

[13]  Last year one of the most interesting assemblages off tech, design and engineering was a brail printer. This data appliance scraped the BBC’s environmental headline and then printed it in brail. This is superb example of many technologies, skill and learning opportunities coming together. This group were particularly driven by an ambitious concept.dundeeDev.014

[14]  This fell out of twitter recently and is a superb illustration of what a professional developer is getting up to with this kind of kit. A had crafted parking sensor.

dundeeDev.015

[15]  One of the interesting contextual factor of programming learning that I have not been able to explore in my PhD is what I have termed as asymmetric collaborations. This is a situation where you have a selection of different domain experts or learners pulling together on a common pan discipline problem. Ira’s visit to dundee seeded a meeting of teachers, scientists, programmers artists and product designers that embodies this. A morning of inspiring different talks seeded and afternoon off collaborative hacking around in Processing with different but equally cool results.dundeeDev.016

[16]  These kind of events stand or fall on the contents of the room on the day and we ended up in great shape. At the right  of the image above we had undergrad students from three different contents working together, at the other end of the room a highly varied mix of individual got behind a common problem or challenge.

dundeeDev.017

[17]  In Primitive Streak Digital the plan was to build on a highly successfully Art Science collaboration between Kate and Hellen Story. In Primitive Streak the first thousand hours of life had be released and descried through series of dress’. The idea of Janice Aitken was to explore how this work could relate to young learners.  My role was to facility some programming with the participants and the result were superb. The girls above made a limb development animation which used the mouse position in the x axis to control progression (rather than buttons, time or scroll bars) and the boys in the back ground made a fertilisation game where you had to navigate a sperm past hostile mucus to fertilise the egg. It was exciting to see learners building resources that are potentially useful to others and learning about programming, biological and design concepts they may not have otherwise come across.

dundeeDev.018

[18]  The intro to object used in primitive streak has become a go to strategy for me when talking about object in computer programming. Particle systems are a great example of computing’s best kept secrets that complexity often emerges from simple origins. The example above can support conversation about circle geometry, opacity, colour and nuanced interaction design (the blobs acceleration to the mouse is non linear and kind of magnetic).http://www.openprocessing.org/sketch/106385

dundeeDev.019

[19]  Here are some supporting diagrams for collision detection and proportionate acceleration. When working on this as part of a Nesta event for teachers, I was struck and pleased that the maths teacher wasn’t excited just about a way of making maths more visable. He had picked up on the niceness of the interaction. Its like inertial scrolling on you mobile device its not a deal breaker but it just adds a little something to the experience and as consumers (rightly so) demand not just functioning items but ones that are pleasant, it really valuable for educators to be able to have a conversation like this. Not just less abstract maths or physics but the maths and physics that you carry about in your pocket and use daily.

dundeeDev.020

[20] Visual output from code is another area I have been exploring. As a result of hand in from an undergrad charged with creating a computational image to demonstrate understanding of sequence, iteration and structure. The produce very credible tartan and code a kilt was born. dundeeDev.021

[21]  Maths and computation is superb at patterns and visual output from a bit of computer code can be quite interesting. This workshop was designed in layers so depending on the learners location on the journey of learning to program they can get something out it. If you journey with programming is just beginning it is about choosing colours and exploring the effect of ordering of the instructions. As you get more advance you can talk about coordinate systems and get a bit more control over your tartan. Further still and we can talk about parameters and then get into the bowels of the functions that actually draw the lines. The neat thing is that the output will not change much depending on where you are on the trip. Running this with Schools recently one teacher proposed the learners design a school tartan based schools colours, this worked really well.

dundeeDev.022

[22] For a final study in my PhD I wanted to explore some purely physical computing and designed a workshop called Wee Beasties. In collaboration with Mike Shorter a circuit design for a post card sized pari of flashing eyes was screen printed in bare condictive. What the one, two or three eyed Beastie looked like was up to the learner.dundeeDev.023

[24]  Conversations again depend on who the learner is, for the youngest it is fine motor control of positioning components, possibly talking about electricity and polarity. For older learners we can begin to unpack the idea of a physical decision or if statement. Depending on where the paperclip patch cable is different output can be whiteness. Running this workshop as a drop in event we also saw huge variety of illustrations with flashing bits.

dundeeDev.024[24]  Pulling this all together excellent learning experiences involve engaging learners fully. Its not always possible and I know in the examples given it is easy to be existing for 45 minutes or a day (hared for 12 wks in the undergrad :). The Model of Programming Experience serves as  framework  in which to make informed and important choices about how to tailor activities to specific learners and specific learning material. All of this is about improving motivation and establishing relevance for the learner. Adam Savage talks about “making the thing can’t not make” and the philosophy of this research to inspire this kind of hunger to create and solve (their own) problems in young learners.

Posted in Uncategorized | Leave a comment

One Day Digital: teachers

photoThis weekend I was in the lovely Edinburgh informatics building off george square. Working with teachers interested in digital making. The event was conceived and brought together by Nesta Scotland and brought together a ensemble of digital makers. There was 3D printing with MakLab, Web making with Mozilla, CodeDojo and RunRev were also offering some hands on making.

I delivered a session on Arduino (materials here) and Processing (materials here). My interest in these technologies is driven by what they offer the learner (and teacher for that matter). They are both open source projects driven by a vast community with different interest, abilities and motives. I believe this offers a superb environment to nurture and motivate aspiring digital makers. In short there is no shortage of simple examples, BUT also things to  be inspired by and to run at .

The sessions were both two hours with small groups. I had anticipated breaking half way through but there was no let up, or natural pause presented so we danced through quite a bit of the material. In both sessions the interest built as we move past static hard coded examples and introduce some interactivity. Its not surprising; we learn instinctively  through exploring cause and effect. By creating simple playful interactions both physical and screen based we had people working well.

Arduino is very much in the consciousness  of teachers in  Scotland. The previous week I was at a CPD day which had an Arduino taster on the bill. Processing seems to be a far better kept secret. Taking both these technologies forward to support a range of teachers deliver Curriculum for Excellence and cross subject learning experiences, presents fabulous opportunities and some challenges.

For Arduino to happen in school we need to convince people that the investment in kit is a valuable necessary resource for teaching the challenging task of computer programming. As I walked into a crisp new school last week I looked into music rooms with class sets of mandolins, violins, electric pianos etc (and smiled). Traditionally we needed computers to teach computing but as the domain changes we must respond. More than this it isn’t just programming: its electronics, logic, physics, aesthetics, design and many more subjects. The aspect of a given build that a teacher chooses to focus on and have a conversation about is up to them. One object could be touched upon in several subject areas (pop-goes-the-weasle staff notation, ultrasonic ranging, CDT, project planing, stage craft 🙂 ).

Processing doesn’t have the advantage of people knowing what it is, so there is some work to be done. The largest things I have worked on have been written in java. It took me a wee while for the penny to drop with Processing, as most of what I was doing I could do in java. I realised on a train journey ( heading home and tired ) where I found my self hacking around with Processing, that this is what makes it work. It is light, provisional and enables speculation and creativity with a very tight investment and reward cycle. There is an efficiency in this, as most of my effort goes into the task in hand not the underpinning. I appreciate industry doesn’t want people that hack and lack knowledge of software engineering principles an practice. But I recon in the same way Jooles Holland was drawn to Piano playing by an unquenchable passion for playing what he loved we too should look to inspire and ignite interest in our learners. When his lack of theoretical underpinning became a barrier to progression he understood the value of the knowledge he needed, and acquired it.

There are many fantastic opportunities to support the teaching of a range of  subjects with processing and Arduino. We live in the age of data and physical computing, and  need people that can use this as a resource to generate insight, understanding and improve our relationship with technology.

(DataVis processing from chris martin on Vimeo)

Posted in Uncategorized | Tagged , , | Leave a comment

You reap what you sow

bigstock-The-Tractor-Modern-Farm-Equi-44692394

I often open talks to the public with “computing under pins everything we do”. A touch melodramatic but hey when you focus on a typical day, most of us interact with computers. Some times directly such as phones, laptops and tablets. Sometime less directly: automatic doors, clever kitchen appliances. Ithink there are even toothbrushes which claim to be digital. It seems there is no end to what can be digitised. As such you would appreciate its not often I’m surprised when technology is being used in a novel situation. When we were staying with my big sister up in Aberdeen and went out to visit the farm one of her friends owns a large farm I was really surprised with the tech in use and the connectedness of it all.

After meeting the cows who had been brought in for the winter and were rather jumpy in a large shed we went into the grain barn to see the tractor. These are impressive pieces of kit. A massive gleaming John Deer, with a bewildering array of mechanical linkages sticking out the back. It wasn’t the well designed cock-pit which placed the array of features at your fingertips that caught my attention. It was the GPS dome on the front. It looked similar to the GPS you see on small boats and I could tell from the pulsing blue light that this was a fairly modern addition. I assumed that this would be used to improve the accuracy when sowing seed, spraying etc and indeed this is one role. Like any business person  farmers will not invest in kit if there isn’t a return to be made, and the efficiencies of using this GPS system stack up. It reduces operator fatigue (you can watch Top Gear and let the tractor do the work), and makes significant reductions in how much overlap there is when spraying and sowing seed. This was cool to see but not really surprising, sat nav has been leading the technogullible into canals for quite some time and comes as standard on even low end smart phones.

The interesting bit was when the term “soil mapping” was mentioned and we went to have a look at the Combine. Another staggeringly big (close up) piece of kit with the now familiar pulsing blue dome. But this is where it got interesting. The combine is instrumented to automatically record characteristics of the crop it is harvesting: weight of head, height of stock etc which is good data to have. This along with its geotag is used to build a soil map of the fertility of the field and the crop yield to the square foot. Which is pretty cool on its own, but this is then fed back to the tractor the following year so fertiliser can be used proportionately. I don’t know if the model factors in the weather throughout the growing period and other data but I was really impressed to see such a refined seamless service in operation.

Its a great example of identifying legitimate gains to be had by implementing some tech and also a design and dev cycle that has clearly understood the way the farmers operate in its entirety. As aposed to focusing on a temporally small snap shot it considers the multiple years and long game that farming is. This made me think about the service model in operation. The different machines have tech on board that talks to each other, presumably using GSM. If this is a subscription service then its likely there is a big database full of lots of this data. A national or global picture of crop yield at this granularity would be incredibly interesting to create and no doubt of value. which be an untapped resource and by product of the current business model in place.

Posted in Uncategorized | Leave a comment

Hack n Chat dundee 2013 #mozparty

Dundee Contemporary Arts (DCA) is a major cultural hub in the Dundee city centre, which makes it the perfect place for artists, biologists and computer scientist to congregate, share their experiences and make things together. So that’s just what we did at our Mozilla #makerparty on 30th July 2013.

photo copy 4

We started off with a talk from Processing guru @IraGreenberg, who described his relationship and journey with programming. With a background in traditional Fine Art, his approach to computation was exploratory and motivated by desire to create expressive interactive pieces. Interestingly he described a desire to subvert the norm of digital perfection, using elements of randomness to perturb and provide unique and imperfect output. Ira talked about his recent work teaching creative coding to students of both Art and Computer Science, and the fantastic results they achieved. An interesting conversation emerged around our relationship with computers and creativity: is code a medium or tool?

Next up was @DJCAD’s @alinapier describing how, as a musician and linguist, he has been drawn in to the digital-making space. He illustrated the staggering rate of advances in technology in his lifetime by contrasting his young children’s immersion in the digital world against his own time of seeing the computer become ubiquitous and connected. His work involves assisting an array of students and academics in realising their digital ideas.

He daily uses #processing and other technology as digital ‘plumbing’, largely driven by function over form, chaining multiple technologies to solve problems. He described working with Professor Nigel Johnson to create “AESOP”, an installation which aggregates news feeds, and presents them on 9 1-metre-ong LED displays, forming a cluster of motorised signposts that point in the direction of the news.

4

His last piece was a visualisation of the International Space Station passing over the world in a perfect sin wave, which sparked debate about the relationship between live data and deterministic process. This quick hack, made for NASA in less than an hour, illustrates the power of open technology to enable the rapid realisation of creative ideas.

Next up was @drchriscole talking about a long standing project visualising the human genome for public engagement. What started as little project for an open-doors day has grown into substantial piece of work. Pushing the boundaries of processing Christian and his collaborator @nickschurch produced work that was invited to a digital arts festival in Singapore. Wonderfully and humbly reflective, they talk about the various challenges they faced throughout the project – from testing code on massive screen on another continent to balancing their work with the interesting challenge of public engagement. They note this often throws up interesting biological findings and described various ways they would like to see this project grow.

Moving on to the School of Computing’s @AndyCobley, a geek hacker who took his first computing steps trying (and succeeding) to make music by picking up the electromagnetic noise of a microcontroller with a transistor radio. He is now working it the topical space of Big Data. Having architected a unique taught MSc in data science and another in business intelligence, he is well placed to offer a much-needed definition of what exactly Big Data is. He Identified the limits of an arbitrary link between size and Big Data, as this a is a rapidly-changing factor – instead one needs to think about volume, variety and velocity. He illustrated this with several examples: some typical – data generated in scientific experimentation and e commerce; and some less typical – such as sensing cows’ behaviours and relating them to mating.Describing a host of new NoSQL database systems springing up to meet the needs of this new data challenge sparked interesting debate about the volumes of data being generated in commerce and science and the very real challenges of not only storing it but moving it around.

Finally @sspog (me) talked about the new wind of interest in programming in the UK and around the world, as we strive for our kids to be makers of the technology amongst which they live –  not just in terms of the transferability of problems-solving skills, but also the pervasive nature of code across so many disciplines. Talking about my undergraduate teaching of Processing I described the exciting results we get when Design and Computer Science students collaborate. I talked about the varied outreach work I do with Processing – from “Code-a-Kilt” to the more recent work enabling students to produce interactive education resources inspired by Primitive Streak and the first 1000 hours of life.

ilu

I closed by talking about a personal project “n x 42 ways to say ‘I love you’” – a creative distraction and antidote to the scientific rigour of writing up my thesis. By producing a range of visualisations seeded by the string ‘I love you’, I illustrate how processing enables me to explore creativity and visual aesthetic. The flipside being that these compact (42 lines or less) programs could form the basis of educational resources to support students motivated by the desire to create aesthetic screen-based things with code (not too far off the thesis after all!).

photo copy

Following pizza kindly provided by the School of Computing the 25-or-so attendees formed organically into small groups with the challenge of producing something Processing-shaped in less than two hours. Interestingly (though not surprisingly) the student contingent migrated to one end of the room. Quite nice to see students from three continents brought together to create something at one table. At the other end of the room the mix of biologists, animators, academics, product designers, computing teachers and a jeweller got to the task in hand.

photo copy 2

The outputs were as broad as they were interesting. One group produced a range of optical illusions with different arrangements of colours and shapes to trick the eye. Another group pulled a track from Spotify and produced a orbiting particle-system visualisation which reacted dynamically to the audio. We had animated scenes, interactive genes, a dynamic 3D model of chromosome 21. Roy (who had to leave early) mailed in a random potato generator. Last but not least we managed to sneak in a little #arduino with a visualisation seeded – literally – by (conductive) paint drying, being sure to note the massive anomaly where a wiring defect was fixed. This served as a lovely nod to the original point made by Ira about his love of the imperfection and unexpected outcome of working with traditional mediums.

These events absolutely depend upon who ends up in the room on the day. A great diversity of speakers and tremendous mix of backgrounds, abilities and energies in the room led to a fantastic day.

Thanks to the School of Computing at Dundee University for providing much-needed pizza: the Visual Research Centre at DCA for use of the space: our speakers for setting the scene and to our makers for getting hands-on.

I look forward to the next #hacknchat #makerparty at #dundee

some of the hacks can be found here on openprocessing.org

Posted in Uncategorized | Leave a comment

What is a hack and why the chat?

[event flyer]

To hack is an ambiguous computing term. Back in the day it referred to gaining unlawful access to someones computer system (now regarded as cracking). In education terms it refers to a novice programmer changing stuff almost at random in the hope they get towards a working solution. But in terms of our event it has far more positive and exciting connotations. A hack is an event, normally relatively short in time. A single day or at most a week where a bunch of people come out of there normal daily routine, congregate in a public space and focus there combined efforts to solve a specific task. It is energising to see what can be achieved when focused on one thing away from the distraction of a typical day at the desk. Typically you will be working with in a theme, but the crux of what you are making is up to you. Couple this with the opportunity to work with new people who’s interest has lead them to the same event as you and you get the picture. Interesting people working together indulging in a monetary lapse of distraction and getting a chance to produce something they care about.

This hack is a little different as we are hoping to bring together a wide range of people with different expertise and experience to bring to the table. The theme is  the tech we are working with, the Processing language. We are lucky enough to have Ira Greenberg to share his work with Processing to get us inspired and motivated for some code making. So the chat is two fold we will be having some speakers talking in a fairly relaxed fashion about their work. But the chat between you and your collaborators is just as important and valuable as what ends up in code. Collaboration is a the heart of this day not code.

Collaborations between art, science and engineering can all to often be a bit transactional, with a shallow understanding of each other. To genuinely collaborate takes courage, humility, respect and an open mind.  One minute you may be the expert sharing your domain expertise in an accessible fashion and relating it to the task in hand. The next minute you may be totally out of your comfort zone trying to follow some one from a different discipline describing how some there wisdom can be brought to bare on the task. Different disciplines have their own culture and vocabulary which can take time time to understand. One of the joys of my role is working with different people. I can be explaining how to interpreted data from accelerometers one minute then being schooled on how a hammer is used in a jewellery context as all I have swung at is a nail. This is not easy so why collaborate?

Ken Robinson talks very well on the defining human characteristics of imagination and creativity, whether we solve our problems in steel & concrete, porcelain clay, code or precious metal we are united by an ability to see a problem and strive for a solution. Great things will happen when we all pull in the same direction and value all the voices at the table.

 

 

Posted in Uncategorized | Leave a comment

Student-led assessment in computing: encouraging reflective practice

(not terribly short or dishevelled this time)

Assessment of computer programming tends to be based upon product rather than process: a student’s competence in programming is commonly measured via the final code produced. However it is also important to encourage students to reflect on the software development process and hone the skills they need whilst producing code. Particularly it is important to teach the act of programming and avoid dependency on any one given language: throughout their careers, computing professionals need the ability to learn new and emerging languages. For students to be autonomous in their learning, they need to be equipped with self-reflection and analysis skills and encouraged to take a deep approach to their learning. This paper discusses two techniques used in an introductory computing course to develop students’ reflective practice: (i) triadic assessment (Gale et al, 2002) of weekly deliverables via group work and (ii) a student generated multiple-choice class test. The design and evaluation of each technique is described and discussed.

Triadic assessment of group work
Group work is a common component in many undergraduate modules in computing as well as in other disciplines. There are sound practical and pedagogical reasons for creating this learning experience (Thorley & Gregory, 1994). However, assessing group work can be challenging, particularly in a situation where different group members assume different roles and responsibilities within a group. For instance, what is an equal share of work? How do you weigh up design input against technical contributions? One technique to encourage students to address these questions and to take a lead role is peer assessment. Its benefits include a rich engagement and understanding of the assessment process (McDermott et al, 2000). The learner is also encouraged to engage in higher cognitive skills (Fallows and Chandramohan, 2001) and critical evaluation (Anderson et al, 2001).

Motivation for Group Work
Professional software developers commonly work in teams, whether employed in fledgling start-ups or in multinational companies. The stereotype of the lone ‘geek’ absorbed in the act of programming, with little input from others, is a misconception. For this reason. the skills associated with working in a team are vital to a successful career in software development. Team projects are therefore commonplace among undergraduate computing degree programmes, but they can be problematic. The social skills required to manage workload distribution, to schedule team meetings and to deal with different levels of ability can be challenging to students.
In the context of computing, it is likely that a team project will involve the development of a specified piece of software in response to a brief or consultation with a client. With this approach, team working skills are placed in a motivating context. However this can present a challenge to academic staff assessing the resultant coursework. Assessing the products against the learning objectives identified is straightforward; allocating a mark for each of the team members for the process performed can be contentious.

One approach is to treat the team as a whole and give the same mark to each team member. This places pressure on the team to function: if one member fails to deliver, the whole team suffers. Unfortunately it also presents the opportunity for students to ‘hide’ from individual assessment. There is a risk that weak performances by students may be identified only by individual summative assessment and may not by on-going formative assessment. Providing each student with an individual mark that reflects their contribution to the project would appear to be the fairest approach. Defining contribution then becomes important. Over the course of many weeks of creative thinking, designing, implementing, crafting and refining, the key questions remain – who did what? What was it worth? What grade should each person get?

Peer assessment benefits and issues
The practice of students taking an active role in their assessment has shifted from the “enthusiastic innovators” to wider practice (Raadt et al, 2007). Topping et al (2000) define peer learning to be: “an arrangement of peers to consider the level, value, worth, quality or successfulness of the products or outcomes of learning of others of similar status”. Peer assessment has been applied widely in areas including: educational psychology (Topping et al, 2000), teacher training (Sluijsmans et al, 2002), electrical engineering (McDermott et al, 2000), and computer science (Sitthiworachart and Joy, 2004; Hamer et al, 2009).

Peer assessment can be used formatively or summatively for individual or group work. Kennedy (2005) described the application of a peer assessment process when distributing a ‘group mark’ between group members, highlighting a number of issues including: the ability of students to objectively assess team members’ contributions, marginalisation of weaker students, and the tension generated by peer review. Kennedy reported large standard deviations in peer assessed marks indicating there was little consensus among students on what criteria are being assessed. He also asserted: “the task of assessment is the responsibility of the instructor. Students ought not to be placed in a position where they can influence their own grades or those of their peers” (Kennedy, 2005). This presents a fairly strong opinion about the role of the student with respect to assessment.
Within the School of Computing in the University of Dundee, one style of peer review process adopted involves each team member anonymously submitting a review form to award a mark to each of their team members. This enables a weighting and distribution of the ‘group mark’ to each of the individuals; the effect of the review process is capped at one grade to manage extreme reviews. This process suffers from some of the problems identified by Kennedy (2006) but has value in identifying problems with teams and disproportionate contributions. The benefits of peer assessment include the ability to reflect and critically appraise work similar to that which the reviewer is producing (Sitthiworachart and Joy, 2004). Nonetheless two associated issues to be resolved when using peer assessment relate to depth and influence. Firstly, there can be a problem with the summative reflection about contributions to a substantial piece of coursework if the assessment criteria are too shallow. Secondly, social standing in groups has been observed to have an impact on peer assessment, such as when a group marks up a weakly-performing classmate. The next section describes an approach to enhancing peer assessment designed to address the shallowness issue and the social standing issue whilst retaining the value of reflection.

Peer assessment in the ‘Data Visualisation’ module
Data Visualisation is an introductory undergraduate module that draws together a number of key curriculum areas. Human Computer Interaction Design comprises a set of skills and knowledge that enable students to build interactive computer systems that fit the needs of users. Consideration of social, legal and ethical issues are essential when working with users and developing technology that may have an impact on wider society. These are learned in the context of 2D graphics and data visualisation project work. By pulling these together with an appropriate scenario, students can learn in an environment in which they are applying their emerging skills to tell stories with data and communicate information to specific people with specific needs.

This module runs in semester one and for many students it may be their first experience of computer programming. Learning to program is problematic for many and hence a tight feedback cycle is desirable. For this reason in 2011 the Data Visualisation module was designed with a weekly piece of coursework, to enrich the learning experience. The weekly coursework activity is triadically assessed (Gale et al, 2002). This involves three distinct complementary phases. (i) self-reflection: the learner is encouraged to reflect on the item of course work. (ii) peer review: the learner is required to critically appraise the work of their peers offering constructive feedback. (iii) tutor feedback: is the last stage of the process. The tutor is in able to consolidate the assessment process by offering feedback and endorsing a final grade. Taken together, these offer opportunities for rich and varied feedback.

Assessment begins with the issue of a team assignment and the allocation of review groups (Thursdays). This takes place following a two hour block of teaching in the morning and precedes the afternoon lab session. In the lab the teams have some protected time to work together on the assignment. Students are supported by the module tutor and lab tutors (students who studied the module the year before). Following the lab, time is allocated for individual contributions and refinement prior to submission at 12 noon the following Tuesday. Coursework is submitted to an online community website (www.openprocessing.org). This website allows the viewing of ‘sketches’1 submitted and comments to be left below a ‘sketch’. At the point of submission, each team member is required to comment on what they have contributed and what they have learned in undertaking the piece of coursework. This is the first part of the triadic assessment: self-reflection. Each person is also required to view and comment on the work uploaded by the other teams in their review group.

The assessment process is then pulled together in the Thursday review session. For the last 30 minutes of the teaching block the class arrange themselves into review groups each comprising three teams (depicted as triangles in Figure 2). Each team’s work is briefly presented and discussed by the review group before the group arrives at a mark and provides some qualitative feedback, which is recorded on paper form. At the end of this review session, each review group reports back briefly to the entire class, sharing the highlights of what has been discussed, including exceptional work and lessons learned. This is the second part of the triadic assessment: peer review. The final stage each week is for the tutor to review mark sheets completed by the review group against the sketch submitted and award a mark and comment for the coursework. This is the third part of the triadic suite: tutor feedback.

groups

Figure 1 – Arrangement of teams and review groups
The module requires a lot of preparation, presenting and group discussion of peers’ work. At the outset, clear guidelines are given on the expectations of students participating in these activities. When commenting on peers’ work, they are encouraged to adopt a “two stars and a wish” structure to the feedback: identify two strengths and one thing that could be improved. Asking questions and giving comments are highlighted as indications of interest and engagement in ideas being presented. Constructive criticism indicates that a reviewer has thought about the work sufficiently to form an opinion and to identify areas for extension. Learning to take criticism as a compliment is an important skill. This encourages students comments criticism and peer grading to be less based on social standing in the gorup and more grounded in the work being reviewed.

Evaluation of triadic assessment
At the beginning of the following semester, feedback was obtained from students about the module as a whole. Students were given 18 statements each with a 40 millimetre line next to it to graphically depict a spectrum from strong agreement (0) to strong disagreement (40). There were 36 responses. The following three statements were relevant to assessment:
“I found the weekly discussions about coursework with other groups interesting.”
The mode response was 5 (out of 40), indicating strong agreement. In more detail, 66% of students agreed, 5% were neutral and 20% disagreed.

“I found it motivating to have a say in my peers’ coursework marks through weekly discussions.”
The mode response was 20, indicating neutrality. In more detail, 56% of students agreed, 25% were neutral and 20% disagreed.

“I don’t believe it is within my role as a student to be involved in assessing coursework.”
The mode response was 35, indicating disagreement. In more detail, 17% of students agreed, 14% were neutral and 69% of students disagreed.

These responses are generally positive, with students broadly agreeing that it is within their role to take an active part in assessment, and more than half feeling benefit from the weekly discussion. Although the most frequent response to motivation from influence over a peer’s mark was neutrality, over half the class were in broad agreement with this statement. As a complement to the visual analogue scale questionnaire, there was an opportunity to give free text comments via post-it notes in response to one further question: “if you only had a week to do the module again, what should we keep (green post-it) and what should we lose (red post-it)?”
A sample of responses relevant to the assessment methods is given next:

[green] “Group work: love all the working in groups. Learn so much better. Good fun, much more effective. Loved the course!”
[green] “Assessing other people’s work because it gave a chance to discuss their sketch with others.”
[green] “Group work – good to have other people on your group that can help you, but that is only if your group was a good one.”

[red] GROUP MARKING
[red] Not much time to complete assignments

Reflections on triadic assessment
Considering the evaluation data and observation throughout the semester, there is evidence to suggest a triadic approach to assessment has been successful in the context of this introductory computing module. On reflection, the most successful part of the process was the 30 minute face-to-face review session. Listening to the various discussions that took place throughout the semester, it was encouraging to hear students critically appraise and defend their work. In the majority of cases when the tutor amended marks, it was to provide a higher mark than that suggested by the peer review group.
One aspect of the process engaged with to a lesser extent was the online discourse through comment threads. In several cases. there was a good degree of engagement with conversations about work posted. However the majority of the cohort quickly realised that there was little consequence for not engaging in this part of the process and failed to comment regularly. It may be that this virtual engagement is less important when there is a regular face-to-face session, or it may be that the absence of direct effect on grades resulted in it being perceived as a low priority activity. With a favourable response from students in this activity the following year we sought to engage the students further in the assessment process.

2 Student-generated assessment
The majority of the Data Visualisation module’s assessment is via practical group work. Nonetheless there is a need for an element of individual assessment to ensure students have adequately engaged in the module materials and are equipped to build on their learning as they progress through their chosen degree path. End of module exam conditions and summative assessments are typical and often involve a huge amount of work to create, evaluate and assure quality. In the 2013 Data Visualisation module, we were keen to meet the same objectives but with as great a degree of flexibility as possible, preferably engaging the students in the process of exam setting as much as possible. There are significant risks and benefits to this type of strategy and is important to stress that this was ‘breaking new ground’: work remains to be done in subsequent years.
One technique was used to punctuate long teaching blocks and to encourage students into a ‘review’ state of mind: the use of the one-minute paper (Angelo & Cross, 1993). In this, the tutor asks the students a small number of questions at the conclusion of the class to identify the key things learned and any areas of uncertainty. Deriving assessments from these student-generated questions essentially means that their reflections on their own learning lead the assessment process.

Student-generated class test
As adopted in the Data Visualisation module, five questions relating to the material being taught were posed at the end of teaching various key concepts. Students were given a few minutes to write their responses on an answer sheet. They were then given several more minutes to discuss their answers with their neighbours. Finally the questions were discussed by the group as a whole and answers offered by the students. Answer sheets were also collected for brief review by the module tutor, who gained a sense of what understanding the class had at that stage. The main purpose of the activity is to get people thinking and resolve any ambiguities about key points of the session.

This change of activity proved to give a valuable disruption at several points throughout a three-hour block of teaching. To create an authentic individual assessment for the end of the module, we adapted this approach further. Initially it was made an out-of-class activity to assist students in their revision. Students had to write and submit their own revision questions and produce their own answers. The number of questions submitted in this form was disappointing so next we moved it to take place during each teaching block. As the semester progressed, we increased this to several times throughout the teaching block: at various points students were required to generate a multiple choice question that they felt was relevant to the current topic being discussed. To create a question is more demanding than just to provide an answer and this encouraged a similar review state to the minute paper techniques used previously.
The actual implementation of this student-led assessment relied on paper forms that students filled out in class. They were required to provide their recommended answers in addition to the questions. One technical platform that would potentially provide the functionality required is PeerWise (Denny et al, 2008) this will be explored in future years. The decision not to take a computer based solution (which would massively speed things up) was rejected for the following reasons. Over the past five years there has been a massive increase in the number of laptops and smart phones in the lecture theatre. Indeed we can be confident that when assembling review groups (3 groups of 3 students) there will be at least one laptop, allowing the group to browse the internet. Requiring all students to have internet access in a lecture does risk marginalising some students. There is also a degree of simplicity and clarity from a simple pen and paper activity. There are also advantages to a tangible collection of questions. However as the semester progressed we collated an ever-enlarging folder of questions visible in the undergraduate labs that contained all the questions created so far. This allowed students to get a feel for what their peers were asking and what the class test may look like.
Finally, all questions and answers were verified by module tutors and a class test produced from this set of student-generated questions, comprising 60 multiple-choice questions. The module covers 6 broad topic areas and a sample of 10 questions from each topic was picked.

Evaluation
The number of questions received varied form topic to topic. The greatest number of responses (43) was from the first topic covered: ‘Introduction to Processing’. The smallest number of responses (12) was from a topic in mid semester: ‘Interaction and Transformation’. The mean response was 21 questions per week which from a class of 70 leaves room for improvement. Increasing engagement and improving response rates from students is an area requiring further attention. There is potential to increase the amount of feedback students are receiving with regard to their questions as the current model is not very responsive. In practice this resulted in around 20% of the questions in the final test not being generated by the students. In future years the previous year’s bank of questions will be used to meet any shortfalls. The cohort presented with a wide range of abilities and this is reflected in the questions offered: this allowed for a good range of difficulties in the final paper.
The test was well received by students and resulted in a mean test score of 66%. An evaluation took place at the end of the course using Visual Analogue Scales (VAS) (Cowley & Youngblood, 2009) to discern agreement or disagreement with a number of statements relating to the class generated test the results are in table 1.
evalTable
Table 1 – Evaluation of class test results (all values are percentages) n=50
It is very encouraging that 82% of respondents felt the class test reflected the course content. One of the key motivations for this approach to a summative end of module assessment was to ensure authenticity. It is also encouraging to see broad agreement with statements relating to assessment being within the role of the students. 60% of students found the act of writing questions helpful in assisting their understanding.
The low level of response and open admission to this in the evaluation remain problematic. With large class sizes and little resource to support these activities, an approach of incentivisation must be taken. The current model gives students a good chance that they will be presented with one of their own questions in the test. This may be further enhanced by a greater level of feedback throughout the process. The difficulty of the test is also an interesting challenge. This should in theory be self managing, since students provide questions at a level that challenges them. In practice the survey responses indicate the test did not present sufficient challenge. It is important to interpret results as student perceptions. The class test was externally moderated to insure appropriate level but perceived to less challenging. The importance of the final result may also be balanced against the degree of engagement the students have had. With this model of assessment the final test and resultant grade is only a part of the process. The process of question generation serves to enhance the learning opportunity offered significantly.
Reflections on student-generated assessment
This student-generated assessment system worked well and resulted in a genuine final summative assessment that reflected the learning students had engaged in. Reviewing the final paper against the module specification, the questions generated did fit well with the intended learning outcomes. The potential benefits of an electronic system are great and this will be explored in future. One of the biggest issues with the paper-based system was the inability to readily give quick feedback if a question was poorly formed or presented with an incorrect answer. In several cases, the only way to achieve this was when speaking to the class as a group. An online system would also offer the ability for students to review and comment on questions, making attaining this degree of engagement from students difficult.
Conclusion
Assessment is a crucial part of learning. Students often see this as an intimidating, external mechanism designed to match their abilities to a number which ranks them in the class. This can be one purpose of assessment but only a small part of what it can achieve. Bringing the student to the heart of assessment has the potential to improve a broad range of skills, and ensures they understand and are empowered to take ownership of their learning. The peer review process described in this paper supports the process with a number of levels of engagement, from online commenting to face-to-face discussion. It has been a positive experience that has given our students the opportunity to obtain feedback (input and reflection) from assessors closer to their level of expertise and who have faced similar challenges. Placing an end-of-module summative assessment in the hands of the student cohort has also been valuable. There was no evidence of students gaming the system: the questions they produced reflected well on their interpretation of the teaching materials and clearly resonated with the groups. It has encouraged students to produce a valuable self-reflective perspective on their own work.

References
Anderson, L W, Krathwohl, D R, Airasian, P W, Cruikshank, K A, Mayer, R E & Pintrich, P, R (2001) A Taxonomy for Learning, Teaching and Assessing. A Revision of Bloom’s Taxonomy of Educational Objectives. Theory Into Practice, Volume 41, Number 4Addison Wesley Longman, Inc.
Angelo, T A & Cross, K P (1993) Classroom Assessment Techniques, 2nd ed., Jossey-Bass, San Francisco
Cowley, J A, & Youngblood, H (2009) Subjective response differences between visual analogue, ordinal and hybrid response scales, Proceedings of the Human Factors and Ergonomics Society Annual Meeting, Sage Publications
Denny, P, Hamer, J, Luxton-Reilly, A & Purchase, H (2008) PeerWise, In Proceedings of the 8th International Conference on Computing Education Research (Koli ’08). ACM
Fallows, S & Chandramohan, B (2001) Multiple Approaches to Assessment: reflections on use of tutor, peer and self-assessment, Teaching in Higher Education, vol 6 no 2, pp 229-246
Gale, K, Martin, K & McQueen, G (2002) Triadic Assessment, Assessment & Evaluation in Higher Education, Taylor & Francis Ltd, Vol. 27, no. 6, pp 557-567
Hamer, J, Purchase, H C, Denny, P, and Luxton-Reily, A (2009) Quality of Peer Assessment in CS1, 5th International Workshop on Computing Education Research, 10-11 Aug 2009, Berkeley, CA, USA
Kennedy, G J (2005) Peer-assessment in Group Projects: Is it worth it?, Seventh Australasian Computing Education Conference (ACE2005), Newcastle, Australia
McDermott, K J, Nafalski, A & Gol, O (2000) Active Learning in the University of South Australia, 30th Annual Frontiers in Education Conference (FIE 2000), 18-21 October 2000, Kansas city, Missouri
Raadt, M D, Lai, D & Watson, R (2007) An evaluation of electronic individual peer assessment in an introductory programming course, In Proceedings of the 8th International Conference on Computing Education Research (Koli ’08). ACM
Sitthiworachart, J & Joy, M S (2004) Effective Peer Assessment for Learning Computer Programming, 9th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE 2004), 28-30 June 2004, Leeds, UK
Sluijsmans, D, Brand-Gruwel, S & Merrienboer, J (2002) Peer Assessment Training in Teacher Education: Effects on performance and perceptions, Assessment and Evaluation in Higher Education, vol 27 no 5, pp 443-454
Thorley, L & Gregory, R (1994) Using Group-based Learning in Higher Education, Kogan Page
Topping, K J, Smith, E F, Swanson, I and Elliot, A, (2000) Formative peer assessment of academic writing between postgraduate students, Assessment and Evaluation in Higher Education, vol 25 no 2, pp 149-169

Posted in Uncategorized | Leave a comment

Q: How do you code a kilt?

tartan collage

The inaugural Edinburgh mini maker faire  was one of the most diverse collections of making I have seen; badge making, arduino hacking, soap making, laser cutting, lino printing and 3D printing. (which in my opinion no need for the mini pre fix!) This was where I road tested my new “code a kilt” workshop. Computation used to generate a pattern then printed on to a post card for the participant to take home and to build a big collage throughout the day. I thought some of you may be interested in the back story and doing something similar.

When you develop an outreach workshop for delivery in schools and in drop in sessions at science festivals there are a few important things to remember. This should be interesting, engaging, fun and educational. In a short space of time the learning must be very focused and to ensure you get a good return for you time investment a high degree of flexibility is also relay important, this will allow you to deliver to a range of people in different settings. To ensure credibility you must strike a good balance between educating and stage craft. It’s no good being really excited and learning nothing (that’s a different type of gig) and likewise if there is the potential to learn lots but it is difficult to stay awake, we are also in trouble. Chances are people are engaging in this activity in there own time or as a supporting part of their studies. So in short enjoyment is really important but achieved through a delicate balance of aforementioned ingredients. Following a great presenter and having those light-bulb moment as they explain and unravel a complex piece of knowledge can be very exciting even if they don’t set anything on fire. Attaining that engagement by sensing the pace of audience is a real skill.
One of the best parts of teaching is the inventive solutions students come up with. For me the “light-bulb” moment of understanding lies in the shadow of the moment when a student not only understands something but self identifies an interesting way to apply this understanding to do something they care about. Watching a big class respond to a relatively open brief is incredibly interesting. I always make an effort to ensure coursework gives the opportunity to demonstrate what is being assessed but has freedom to make it there own. One of the early Data Visualisation deliverables is basically demonstrate you knowledge of 2D primitives and control structures by generating a pattern. Often this is a case of hacking around with different loops, primitives and colours until something pleasing comes out. There are occasionally group that approach this form the other end and set out trying to recreate a pattern they have found. Last year one group made a rather convincing tartan and this got me thinking.

Depending on how you package this it can be a matter of a few lines of code or you can peel back the layers and expose nested loops the required spacing to get nice interference patterns and even have a conversation about the arising artefacts that appear on the screen but not in print but not with the higher resolution print out. As this was running as a drop in session at an event where I had little idea of who would rock up I built in a few layers.

In the simplest case and this may be a 6 year old that can drive a computer with a little bit of assistance from a parent, for them this is a workshop all about choosing colours and layering different grids on top of each other in a 2D space to make something that looks nice. Just using a mouse and performing minor edits to the text are likely to be tricky (but possible). If you move forward a little you can have a conversation about functions and parameters. We can change how this grid looks by changing these numbers when we use this function call the program jumps down here and does this stuff. Forward a bit more and we can talk about the stuff in the function, loops and lines. Moving further still if you want to produce a produce a pattern that has columns or rows as well as grids well we need to write our own loop to do this. Age is a pretty poor indicator of ability in this space, we had a Jedi eight year old who was probing for details about the syntax for a for loop in processing asking is this just java cause I know how to do this in Java. We had young couples competing to see who could make the best tartans. There were older gentlemen who had a good idea of what they wanted the output to look like.
A real diversity of participants and by the end of the day we had 57 new tartans and lots of smiling participants. We had a run of participants taking there tartan next door to be turned into a badge (with zoe and Ped). Like all good ideas this is just a tiny snap shot of where this could go with the right collaboration who knows maybe we could make a kilt in day?

This is a link to the processing code we used, a colour picker I wrote and I have a pdf crib sheet also.We printed directly onto A6 300gsm card blanks (with an Epson PD50) and trimmed the edges which worked well.

Posted in Uncategorized | 2 Comments