Friday, 25 May 2012

Cargo-Bot - Programming game for iPad

I should probably stop surfing the net today, but I keep finding cool things. This is Cargo-Bot, a game that encourages the player to think like a programmer should. The player is given a stack of blocks, a grabber arm and a image of how the blocks should be stacked. 
The player then needs to drag and drop a series of commands that when executed, controls the arm so it stacks the blocks to match the image given. This is a perfect representation of Papert's constructionist ideas of learning theory.

I want to get this but I dont have an iPad :(

On a separate but just as interesting note, this is the first ever app to be made entirely on an iPad. Done with an app called Codea.

Floating Orb Interface

I'm a sucker for interfaces like these.

A programming book for bed-time stories

Imagine reading lines of code to a child every night while in bed? That would certainly send them to sleep, I dont think it would teach them much about programming.

Luckily, a real book has the same goal (teaching programming, not making kids fall asleep), but with a different approach. Lauren Ipsum is a story book aimed at young kids that embeds logical programming scenarios into children's stories. The stories seem cute, and the pictures look awesome. I've just bought one.

The book uses metaphors within a fairytale story to convey concepts that would be encountered in a programming environment, and is actually written by one of Facebook's engineers responsible for maintaining the programs which runs on their servers. He wife does the illustrations.

With each copy bought, the creators will donate a copy to a library or school.

Meeting 24/5

Who was there:
Tom Page

Topics covered:
  • Google's plans to back Raspberry Pi
  • Videos - How did they go?
  • Methodology for choosing prototyping systems
  • What does the BA require? what is the purpose of the prototype? - we need focus
  • Comparison of Brunel's and Lboro's curriculums

Google has plans to fund teachers to work in schools around the UK along with resources such as Arduino and Raspberry Pi. East Midlands named as an area that will receive support.
  • Which schools around this area are going to get the support?
  • How can we find out? Talk to Nigel Zanker
  • A good idea to speak to the schools, contact the teachers, find out how they are teaching
  • Collaboration?
Videos with Peter Simcoe

In the last few days, Peter and myself have been conducting video interviews with 3rd year undergraduate students in the last stages of their FYDP. This was primarily for videos to go on the IDATER conference website to describe the kind of work students do at Loughborough and to get some insite into how they used electrical prototyping in them. I took the opportunity to get some information about experiences students were having with electrical prototyping.  The following questions were asked:
  1. Tell us your name and briefly describe your project. 
  2. What stage are you at in terms of product development? 
  3. What do you hope to achieve with the prototype when its finished? What will you be using it for? 
  4. What aspects of the project involve electronic prototyping? 
  5. What proportion of it has been spent on that? 
  6. What kind of systems and software are you using to make your electronics? 
  7. What has been the biggest challenge during prototyping so far? 
  8. What sacrifices have you had to make in order to get the prototype working? 
  9. When you first thought about / considered / approached the task of prototyping the electronics, how did you feel about it? Were you keen? Was it daunting? 
  10. In comparison, how do you feel about it now? 
  11. If you could have anything to make this process easier, what would it be? 
  12. Prior to university, how much experience have you had with electronic prototyping?
The videos have not been reviewed or transcribed yet, but one of the points I came away with was that a lot of the students (7 interviewed in total) mentioned that time was spent and wasted at the start of the project by not selecting the right components to do the job. This meant only later on they realised their mistake and switched to a new system or approach, either by their own realisation or by the guidance of a lecturer.

Prototyping Methodology

Possible solution: create a methodology to help with the process of choosing systems.
  • A handout given at the start of FYDP (October)
  • Consists of a guide / flowchart / grid that the student follows inorder to choose the best system for their project
  • Outcome based upon desired complexity, control elements, inputs, outputs, wireless systems, etc
  • Includes list of recommended suppliers / websites / books / guides / code libraries which are more likely to work together.
  • If one of these are made over the summer, it could be used as a handout for next years FYDP students.
Possibility of crowd sourcing information? Take experiences from previous years, good sources students have used, systems that work well, components that are reliable / cheap. Would require vetting and selection system.

What does the BA require in terms of prototyping?

As stated in the previous meeting, the prototype represents and showcases many disciplines that the student has gained during their time on the course. Therefore, it cannot purely be made for user testing purposes as that would neglect other skills that need to been demonstrated. However, how far can we expect a student to go during the prototyping stage, and how much does this really influence the final mark?

Case in point:

Mark is making an mp3 player that reacts to movements of the user (tapping, nodding, etc) and changes the music to suit the perceived mood. He cannot create the computer system that calculates the type of song required as this would need a very complex system, instead he decides to create a system that mimiks the interface. It involves a screen, an Arduino, 3 buttons and an SD card reader. Originally he wanted the mp3s to be stored on the SD card and to be processed through the Arduino, but he struggled to make that work, so now he has taken an mp3 player apart and plans to use the buttons to turn on sounds with the mp3 player as well as navigate a menu on-screen. He has spent a long time trying to get it all working and thus far, has got the screen to display characters. Much time was wasted trying to get the mp3 player working within the Arduino, not yet sure if he has managed to include the bought-in player to the system.

Ben has made a Beehive that you can monitor the bees with a wireless camera. Along with the camera feed, the temperare of the hive is also displayed on a monitor. He looked into making this using Arduino and components bought off Sparkfun. But instead, he bought a wireless webcam off eBay, a thermometer with a digital readout and set it up so the web cam was pointed inside the hive with the readout in-shot. The image streamed to a computer screen.

Both these students are BA. One decided to take the long and hard route and has resulted in something not much more better than if he just put a cheap mp3 player in it. The other saved time, bought all the fully working components in and got nearly the same as he would have if he prototyped it.
What I am interested in is how much is Mark's work going to pay off? When it comes to marking, how much more will be given for the work done with the electronics? Is it going to be worth the time spent working on systems that never worked, and worth the time neglected on other parts? Especially since the areas neglected are more likely going to be considered more typical concerns for a BA student. 

I need to talk to various members of staff to get their views on how something as subjective as FYDP marking works. Talk to:
  • Mark - BA FYDP coordinator
  • Ian
  • Karl
  • John
  • Richard
  • Darren
Lectures who are ex-students, worth getting their opinion:
  • Steve
  • Rhoda
Get the FYDP marking scheme. However, this will not explain all the decisions because it does not take into account the subjectivity of each lecturer.

Lboro / Brunel curriculum comparisons

Brunel's courses being considered the course closest in setup to Loughborough's, to help visualise where each course overlaps it might be worth setting up a matrix to compare the areas which they cover.
Might be worth speaking to Nick Schneider, who seemed opinionated when it came to the differences between the two courses.

Tuesday, 22 May 2012

Technology Will Save Us - Interview

Ever since I got my Lumiphone Kit, I have been really interested in the work of Technology Will Save Us, a small group of guys who set up communal workshops usually in empty shop spaces, aimed at members of the public who want to learn more about electronics and making things themselves.

The above video is an interview with Daniel Hirshmann, one of the Cofounders of the company, where he talks about the reasons for setting up the project as well as how well its doing.

He starts by talking about how he wanted to start a company that did not only make a profit, but also gave back to society with more than just more products that will later end up in a landfill. Their goal was to create some kits that encourage people to learn more about technology, learn to be more creative technology and learn to produce it, not only consume it.

He says with the increased complexity of technology, along with the recession, there is a growing public interest in becoming more hands-on and learning new skills that save money and help people become more self dependent.

So now they set up workshops that help teach people how to put the kits together, as well as creating a fun, inclusive, communal atmosphere. Whats interesting is how he talks about the huge cross-section of people that come to the workshops; he mentions that not once have there been no women in a workshop session, yet there has been sessions with no men.

He talks about how their work can influence larger corporate companies by showing them that there are ways of producing while also giving back to the community and engaging with your customers. TWSU are selling a product that a customer buys, but also gets taught new skills and knowledge that they can take away to help improve their lives.

He then touches on open source communities online and the vast resources available to anyone who wants to take on something like electronic prototyping, but makes a good point by saying that many people struggle to pick that up when it is a list of steps or lessons online, but find it easier when it is booked out as a fixed time and place where the learning takes place. That is where the workshops come in.

People Shouldn't Learn To Code

A debate has come about recently, spawned firstly from a tweet by the major of New York City, Mike Bloomberg, and then a response by a guy called Jeff Atwood. The original tweet is below:

Great, the guy wants to learn code, lets leave it at that. But Jeff Atwood thinks not. Jeff is a bit of a superstar in the coding community, and on his blog he posted a piece called Please Don't Learn to Code.

His points seem to mainly revolve around his dislike for inexperienced programmers being employed and messing it up for the rest of them.

True, its not good to dilute the skill level of a workforce by flooding the sector with unqualified workers, but that might be more a problem with employers not hiring the right staff. Or if it is about there being too many under-qualified coders, surely that will mean there will be an increase in perfectly good coders who will no doubt float to the top.  Jeff seems to be inferring that if more people learn to code casually, everyone will want to be a professional coder.

Some people in the comments of this article can see his point and attributes this to the Dunning-Kruger effect, whereby incompetent people have a tendency to overestimate the level of their skill, and fail to realise where they fall short. This could well be true, but I digress.

What Jeff only touches on however, is the move to push programming into the forefront of education, and making it as an important as Maths, English and Science, something that Papert would advocate. Jeff says this wrong, as well as 'learning to code for the sake of learning how to code'.

As the writer of this post points out, learning to code is does not mean seeking to become a professional programmer, but is about gaining a better understanding of the technology that we use, and by gaining a whole host of transferrable skills that are applicable to thinking and solving all sorts of problems and as a way of approaching learning itself.

So, while I highly doubt Mike Bloomberg is really ever going to learn how to code, the question is should he? Yes, I think he should. I think many of us could do with understanding more of the basics of what makes the things we hold in our hands, the displays we read off every day, work (and also not work).

esmoove puts it well:
Learning new skills opens up new perceptual avenues and cognitive spaces. I'm learning to sew right now, not because the world needs another tailor but because I want to be able to recognize quality in clothing and create pieces that I can't find. Novice coders feel the same way about their digital goods and should be encouraged to continue. Learn to program.

Thursday, 10 May 2012

Meeting 10/5

Topics covered:

  • IDATER content
  • Learning, teaching and the 2 decades of technology darkness 
  • The focus and purpose of prototyping for FYDP
  • Resource and Prototype matrices
  • Curriculum summary report
IDATER content:
Interviews happening next week, Wednesday. Prepare questions for then, run them past Tom.

Podcast - Not compulsory because not many people use them, but a good idea to encourage people to submit various types of media. Peter talking about recording it, really it can be done in our own time because of the basic technology that it needs. 
- Best done with two people discussing the subject and covering key points? Casual, very much like a friendly discussion, ad hoc.

Paper to be submitted to be my final year report. 

Trip to Limerick for the main event. Instead of a conference booklet, hand out CD's memory sticks. Alternatively, create an app (iOS, Android) that mimics the website, presents all the content inc. videos, picture galleries, etc.  No point creating it ourselves, can you get app templates? Similar to Wordpress templates but in app form? We pick a theme then add the content. Maybe several apps/volumes based on the subject area; reduces size and download time of each app.

Learning and teaching electronics- Discussion with Nigel:
Much of electronic teaching in design starts with learning the components first and then building up to the systems. Much of what Arduino and Sparkfun is about is only providing small subsystems that go together - no need to teach the individual component part.

Looking at it from a top down approach rather than bottom up. Grounded Theory.
Teach systems first > identify the system > what subsystems are required > what components make that subsystem.

Upside it is more efficient - more time is spent learning the system that is required for the project.
Downside is that the systems are understood but how they work is not.

2 Decades of Darkness:

During the 80's programming was taught on BBC computers, programming, creating games, devising problems. Papert, LOGO.
Then the 90's and 00's brought Microsoft based computers going into schools with word processing and spreadsheet programs - The idea of computing became to write reports and organise data. 
Only now with the introduction of Arduino and Raspberry Pi into schools are people realising what computing really is. Chance to properly implement Papert's ideas?
-Nigel is writing a paper on this.

Investigate Deep and Surface learning
- Link to that paper by that guy pulling apart PBL stating that it only works surface/shallow memory.

The purpose of prototyping in FYDP:
Shouldn't students be focusing their prototypes on delivering relevant user data, rather than focusing on making it at close to the proposed design as possible?

The FYDP prototype fulfils many roles:
Aesthetic, representative & showcasing lboro design
User testing
Representative of its functions
Demonstration of what has been learnt from many modules and disciplines.

A student might get more marks creating a prototype that has embedded electronics but still offers good potential for user testing, rather than a prototype that 'cuts corners' in regards to embedded technology but still has good potential for high quality user testing results.

Prototyping can't be reduced down to be purely user testing focused, but more focus can go on to user testing. More consideration at the start of each project the purpose of the prototype, embedded system based upon that while other criteria still met?

Resource and Prototype matrices:
Two matrices proposed:
  1. Resources Matrix - a subjective representation of the relations between resources suitable for classroom teaching of electronics, prototyping and interace design. Ordered by skill level / ability.
  2. Prototype Matrix - a graph used to mark the efficiency of any given prototype based upon the fidelity (overall finish, inc. cost and time spent on it) vs. the quality of the data drawn from user testing. 

Prototype matrix looks effective, could possibly be used in FYDP or form a basis of a paper. 
Resources matrix is a fine way of putting resources in context of one another. Subjective and some explanation for the boundary choices may be required.

Curriculum Summary Report:
Report to be written up summarising the collected curriculums from the selected universities and also from the FE subjects identified. This will make a portion of the final year report.

Jon Rogers contacted for module information, possibly visiting lboro soon, worth sitting down and discussing some of this.

Tuesday, 8 May 2012

An X Prize For Education

The X Prize founder, Peter Diamandis is set to announce a prize for improving education in the US. Tall order, especially because he has no idea what challenge he is going to set. However, previous prizes have greatly influenced other industries such as public space travel and medical industries, can it have the same effect here?

In the video below (5:15 in) he talks about it being like a 'Khan Academy on steroids'.
"Add artificial intelligence, and add the ability for anyone of us to have the best teacher in the world who knows what your passionate about, what you care about, what you know and then move you on the educational path forward. Everything is personalised, customised [...] and it teaches you exactly the way you want"
Interestingly, the interviewer then asks where random discovery (constructionist, self directed learning) comes into play in all this. Peter responds:
"Its there, random discovery is now really the juice [of education], its socialisation, its experimentation, but its not sitting in [the] front of a classroom listening to one sage on the stage. Lets change that part, then take everything else you do in school and make it fun and interactive"

Meeting with Steve Gill, Cardiff Met

Last Friday, the 4th May, I visited Professor Steve Gill at Cardiff Metropolitan University's Product Design Research (PDR) Centre. Steve heads the Programme for Advanced Interactive Prototype Research (PAIPR, pronounced 'paper') group which develops quick prototyping technologies and techniques for designing devices that involve physical-to-virtual interfaces such as mobile phones, remote controls, medical technology or anything that involves screens and other outputs reacting to buttons.

The key aim of the resulting work is to initiate the design of a product's user interface as early on in the product development process as possible. This involves lots of user testing on prototypes of increasing fidelity to assess the overall functionality and to ensure the final product is functional and easy to use.

But the problem with this has always been a case of the proverbial chicken and its egg. Product development of electronic interfaces have typically been tackled from a 'bottom up' approach, whereby the inner workings of the device is developed first, then tested, and then case and interface built around it. That is partly because in the past very little could be tested until something usable was made; how can someone fully test how easy a mobile phone is to use without a working mobile phone?

The problem with this bottom up approach is that even once the electronics is all working and being tested by a focus group of 'end users', it becomes very difficult and expensive to then alter all those electronic parts and functionality once it's found that none of the users can use it. So sacrifices are made, and more often than not its the usability that suffers.

The alternative method is from a 'top down' approach, where the design, usability and interface are all but defined at the start and then the technology built in afterwards. The work Steve and PAIPR are doing provides the tools that allow this approach to work.

Several tools and systems have come out of the work at Cardiff. One of them is called the IE4 (pictured above). This is a small, battery powered device, which on its own is no bigger than a small pack of matches. As the name suggests, the IE4 is in its forth generation after nearly 10 years of development. It contains a Bluetooth module and has a 20-pin connection at the back along with a breakout-board to make it easier to work with in the early stages of prototyping.

The IE4 interface Prototyping tool
The device works by simply connecting to a computer via Bluetooth and acting as a control device, such as a mouse or keyboard. The inputs can be added to the pins of the IE4 in the form of buttons, sliders, joysticks, sensors or other input components. These can then be arranged on the surface of a to scale appearance model with the IE4 neatly tucked inside of it out of the way. 

The computer reads the inputs as mouse movements or keyboard presses, and these can be configured to trigger on-screen actions such as menu systems, animations or control dragable objects. In theory anything can be controlled, and the complexity and difficulty of the virtual mock-up is determined only by how far you want to take the simulation and what program you use to do it. You can make something quite complex in Adobe Flash, or save time but still get a decent result in something such as Microsoft PowerPoint.

Photo from 
The IE4 allows you to create devices that are meant to control virtual interfaces wirelessly from a distance, or just use the computer screen as an effective example of how a screen built into the device would respond - all while being able to quickly build and test mock-ups that effectively trial interface designs of a product.

The facilities for user-centred design testing and analysis at Cardiff are very good. They even have a room which contains 4 HD cameras focused at one desk in the middle of the room. Scenes and scenarios can be set up and users or focus groups can test products and prototypes while being monitored remotely from a room elsewhere in the building. As well as simply recording the actions visually onto tape, data can be collected indicating things like the number of time certain controls were used, or time the user spent reading each menu screen. This gives designers and clients a very detailed analysis of the performance of any one interface.


The work done at Cardiff is very applicable to my work and I can learn much from it. It has made me think much about the kind of prototyping I am trying to teach with my resources. A prototype can come in many forms, not just a polished, fully to scale, working model that fully represents the finished product, but it can also be an off-cut of polystyrene foam formed roughly to fit in a human hand. And from a usability perspective, there is no reason why as much can be learned from the latter as the former.

Questions arise over the real purpose of a prototype, and what information we as designers need to get from them. Does the test user even have to control the device themselves? What if they only think they are controlling the device, and actually someone else is manipulating the prototype like a puppet, reacting to what the user does. This technique, dubbed the 'Wizard of Oz' method, is very powerful because the 'puppeteer' can control the system in real time, react to the user and simulate as many different scenarios as he or she likes without stopping the simulation to alter the prototype. They can throw in bugs, alternate routes navigation or different functions very quickly without the test subject knowing any different.

Shouldn't we be teaching designers the most effective ways of prototyping for designing and then support it with the necessary electronics and interface design skills? Rather than teach them that the polished end product is really the only real kind of prototype, when really its just the one that would matter in a sales meeting.

Thursday, 3 May 2012

Knowledge Is Like A Room Full Of People

This excerpt from Papert's Mindstorms really stood out to me as a good analogy of my studies, but also of the role teachers have the process of learning any new skill or field, and the importance of learning how to learn.
"Getting to know a domain of knowledge is much like coming into a new community of people. Sometimes one is initially overwhelmed by a bewildering array of undifferentiated faces. Only gradually do the individuals begin to stand out. On other occasions one is fortunate in quickly getting to know a person or two with whom an important relationship can develop. Such good luck may come from an intuitive sense for picking out the "interesting" people, or it may come from having good introductions.
Similarly, when one enters a new domain of knowledge, one initially encounters a crowd of new ideas. Good learners are able to pick out those who are powerful and congenial. Others who are less skillful need help from teachers and friends. But we must not forget that while good teachers play the role of mutual friends who can provide good introductions, the actual job of getting to know an idea or a person cannot be done by a third party. Everyone must acquire skill at getting to know and a personal style for doing it."