WIP-PPIG

(Belated in organisation, but now done.) 

The WIP-PPIG is a workshop for students and established researchers to present ongoing work in the psychology of programming and will be at the University of Sussex on 21-22 February 2008. The call for papers for the PPIG Work-in-Progress Workshop 2008 is now online.  Submission of extended abstracts (1 to 2 pages) is due by 14th January 2008.

"A feature of the PPIG workshops has been their openness to a wide spectrum of concerns related to programming and software engineering, from the design of programming languages to communication issues in software teams, and from computing education to high-performance professional practice. Similarly, PPIG entertains a broad spectrum of research approaches, from theoretical perspectives drawing on psychological theory to empirical perspectives grounded in real-world experience."

More information available from the workshop website.

PPIG 2007 - When PPIG met Wagner

I was luckily funded (after winning the draw at WIP-PPIG 07) to attend the Psychology of Programming Workshop 2007 in Joensuu in the Lake District area of Finland on 2-6 July 2007.  The programme was the most ambitious yet; featuring keynote talks through technical papers, a doctorial consortium, tutorials, and a wide range of evening activities.  I have written a full review for the PPIG Newsletter but here are some of my highlights:

The workshop opened quietly on the Monday with the Doctoral Consortium, allowing us early-days researchers the chance to chat about our research and build up our confidence for the main conference.  Discussions were focussed on research methods and approaches and detailed and interesting questions were asked after each presentation.  Most importantly we were reminded to never start with a research method, but instead a theory or question that needs to be evaluated: What’s my question?  What evidence will satisfy?  How will I collect the evidence?  And the interesting questions: What do people say they do?  What do they actually do?  We also received good advice on how to read research papers, some ideas I intend to share with the Research Methods class.

There were two great tutorial sessions I attended:

  • An informal tutorial on eye-tracking and potential application when researching programming.  We were taught about visual attention and Fovea cones, the history of eye-tracking systems from 1898 through to modern eye-tracking systems, and potentials and challenges for such systems in the context of studies of programming.  The main focus of the tutorial was a hands-on experience using an eye-tracking system to conduct research. 
  • A tutorial introducing phenomenography (about which I knew nothing) and grounded theory.  We were given real data we could use to practice the two types of analysis, and I was extremely comforted to find that  I seemed to have a high level of inter-rater agreement with the original researchers using both approaches.  This gave me significantly more confidence that I have it in me to complete my own research. 

Tuesday-Thursday were dedicated to paper presentations:

  • On the Wednesday I enjoyed hearing about follower and gatherer roles in role based programming, particularly entertained by the speculative language presented which was called ROTFL (Role-Oriented Titillating but Fictional Language). 
  • The ‘Experiential Report on the Limitations of Experimentation as a Means of Empirical Investigation’ advised us not to rush empirical studies with software organisations, and to remember that the controlled experiment route is not always optimal.  We were encouraged to consider how such data can still be rigorous and potentially useful. 
  • On the Thursday I was intrigued by two of the closing presentations. Sue Jones' research showing that more experienced students have higher mental rotation ability - she wondered whether mental rotation could be improved. 
  • Stuart Wray presented an analysis of SQ and EQ (Systemizing and Emotional Quotients) correlated against programmer aptitude.

On the Wednesday was the interesting discussion on ‘Children's mental/operational models of programming—Do children's programming tools miss something?’  We discussed the activities performed by children, mostly on the internet, which involve programming activity without being explicitly recognised as such; parameter tweaking, optimisation, variation and composition of components (e.g. skins), and the creation of simulations, animations and games.  A variety of questions were approached:  Is it programming if it is fun, simple, socially-led?  Are there generational differences in the mental models being developed?  Do these ‘play’ experiences generalise or lead to correct abstractions for developing programming skills?  Where does algorithmic theory fit in these experiences?  If there is a difference what does it look like and what are the implications?  Should more formal programming be taught earlier in the curriculum?

The trip to the Orthodox Monastery of New Valamo provided us with an interesting tour of the attractive monastery grounds and learned of the history of the monks who live there.  The Byzantine conference dinner was a lovely affair and I admit to being very taken by the Valamo-made berry wines, which were delicious.  I just wish I could buy it in Brighton...

As ever the best bit of the workshop was the number of humorous awards awarded at the end.  These included:

  • ‘Most Desperate Attempt to Win a Prize with a Ridiculous Prize Suggestion’
  • ‘The ‘p-word Prize’ (For yet another paradigm)’
  • ‘Prize for the Largest Number of (Childhood) Stories’
  • ‘Philosophy of Methodology Prize’ (for articulating when grounded theory is grounded theory)
  • ‘Prize for ‘Running out of Time’ the Greatest Number of Times’
  • ‘Prize for Conducting a Discussion with Himself in Public’
  • ‘Prize for the Clearest Bottom Line’
  • ‘Best Look-Alike Prize’
  • ‘Most Stoical Scapegoat Prize’
  • ‘Prize for Well-Formed Questions’
  • ‘Most Invisible Session Chair Prize’

All in all PPIG 2007 was a wonderfully organised and varied workshop.  There was no shortage of interesting things planned, which helped to create an amazing environment.  I just wish my luggage hadn't been delayed in both directions...

My photos of this enjoyable trip to Finland are available here.

Coding Dojo 11

The eleventh Code Dojo (my, this is starting to look well established!) was on 26th March at the FP Offices.  We continued Kata Four (Data Munging) in Java - looking at the second part of the Kata. 

It was good to have some new people attending (PiersCawley, GrahamCarlyle and MakotoInoue) and they helped instigate a lot of interesting conversation at this session about ways to address problems, Test-Driven Development, Up-Front problem discussion (as opposed to solving), refactoring, the limitations of Java, and applications of Agile. 

I almost wish I had taken notes. 

(Thankfully the session was recorded so I can just watch the video again at another time should I choose.)

As Dom puts it: "I learned an enormous amount from the interaction this evening. [...] Chatting  afterwards made me realise how I tend to be very focussed on solving the problem at hand rather than stepping back and trying to create something beautiful."

Festival Dojo

We are almost ready to launch ticket sales for the upcoming Brighton Coding Dojo night which will be held at the Creativity Zone at Sussex on 10th May as part of the Brighton Fringe Festival.   Tickets will be £3/£2 and the night will be fully catered (a real bargain).  Public, students and professional programmers are all welcome (although some knowledge of programming constructs is preferred).

Further information will become available on http://www.brightoncodingdojo.co.uk/ within the next week or so.

My major question right now is whether I think people can learn a new language and the concepts of test driven development in one session…  Should we announce the language so that people all have the chance to level the field and then apply TDD?  Should we just emphasise the learning the language together and make it an exploratory night?

This question will impact strongly on how the coding dojo night will be organised – as we cannot guarantee skill level, language or knowledge.  So far it is proving quite difficult.

The lack of clarity of purpose has affected even our publicity:

Codingdojoevent  Dojo1


I fear people may expect some kind of performance-art martial-arts display on coding…

Dojos 9 and 10

19-02-2007 - Kata 4 Data Munging in Java

Enjoyable night where everyone left satisfied that they had successfully completed the first part of Kata 4 (Data Munging).  There was even time to look at some decent refactoring.  Once again there was an entertaining tension between those that believe in test-first at all times, test sometimes, and those that just don't see it at all.

---

07-03-2007 - Kata 4 Data Munging (Wednesday Ruby Session)

The interesting thing for me this night was that I actually understood what was going on to a significant level, which almost tempts me to play with Ruby.  Otherwise the session was, as Dom says, "Exactly the same as the last time, we only completed the first part of the kata."   That doesn't mean it wasn't enjoyable.

Coding Dojo 8

Coding Dojo Eight was last night.  We somewhat resurrected the number of attendees by finally appealing to a language other than Java, which I think constituted a good thing and was a refreshing change.  Dom ably led the session, and had put a lot of work into preparing slides and a starting point for addressing the soduku solving challenge for a second time.

This time the problems with finishing the challenge seemed lay more in the depth of the challenge to be explored, although there was again a divide between people who prefer using TDD and those who are not so familiar with it.  The age where the solver class sat empty will stick in my mind for some time, and will remind me of the power of well-timed tea-breaks to help the group along (and not to forego them in future).

My dojo energy is currently split between organising the weekly sessions and the exciting plans for the Fringe Festival Coding Dojo Night which will be held at the InQbate Creativity Zone at the University of Sussex on 10th May.  More details will become available on the event website soon.  It's enough to say that I am very excited about it.

Also, I have finally changed the FP dojo wiki from friki to vqwiki - affording me the option to actually make it look nice down the road.  The data is all transferred and the wiki is ready to be used.

Coding Dojo 7

Coding Dojo Thoughts..

Session 7 (22-01-2007):
This session focussed on Sudoku Solving.  Although the group never really came close to exploring the algorithms for solving sudoku they did work hard and representing the board.  Again, this was a case where perhaps something should have been created in advance, for example an example board.  It should be interesting to see how the code they created can be continued to another session.  The new layout based on the recommendations from the previous group seemed to work well.  Now all we need is less deadly chairs...  (As ever Jez is much more reflective about the session.)

Fringe Festival:
A group of us are currently toying with the idea of running a large dojo session as part of the Brighton Fringe Festival in the exciting Cetl in Creativity space.  If the idea carries off it will be impressive.  Contact me if you are interesting in volunteering your time or support to this project.

Coding Dojo 6

Dojo 6 was again a quiet affair - looking at Kata 6: Anagrams.   The small-group dojo is consistently more fun and more productive, and this was generally agreed in the call I put out to the group about how we should run it in the future. 

The main things which came up this week was not interactional but organisational, which made a nice change.   I think we may be mostly settling into a rhythm for pairing.

I just need to think about this issue with layout for the next session:

Dojo6
(drawn by an attendee)

Dojo 5 - Return to basics

Hmm, so this week's coding dojo session was a very small one.  I'm hoping that the reduced numbers has been due to general illness and the desire to stay indoors in the warm and dry, that generally comes upon us all at this time of year, rather than anything else.

It was good to look at the binary chop kata at last.  Four implementations were managed out of five, although more were discussed.  I really wish we had had more time to actively discuss and reflect on the goals of the kata:

  1. As you’re coding each algorithm, keep a note of the kinds of error you encounter. A binary search is a ripe breeding ground for "off by one" and fencepost errors. As you progress through the week, see if the frequency of these errors decreases (that is, do you learn from experience in one technique when it comes to coding with a different technique?).
  2. What can you say about the relative merits of the various techniques you’ve chosen? Which is the most likely to make it in to production code? Which was the most fun to write? Which was the hardest to get working? And for all these questions, ask yourself "why?".
  3. It’s fairly hard to come up with five unique approaches to a binary chop. How did you go about coming up with approaches four and five? What techniques did you use to fire those "off the wall" neurons?

It was interesting that having a pre-written test helped the group greatly to pull in the same direction, but not to produce efficient code.

I must sort out my knowledge of java for the next session - I keep feeling like this is a game I want to play rather than just watch.

Coding Dojo Revisited

So on Wednesday we held our one-off Coding Dojo session.  I was exhausted post-XPDay but thoroughly enjoyed myself.

It will probably be the last time we try to hold it on a Wednesday.

It was a slight failure in terms of attendance (dropping from 12 to 5, due to a general inability to make Wednesday sessions or confusion over date), but it ended up being great fun.

The group revised the code from the previous session.  Once again the aim was to create a text adventure game in Java, with elements specified (a tribute to 24 Hours of Inform).

This time, due to more cohesion in approach (reduced numbers led to increased turns and increased agreement, amongst other elements) the group succeeded.

It was also nice to see the spontaneous introduction of storycards by Jez (who describes the interesting features from the session much better than I can).

Dojo Game

The dojo ran again last night, and seemed to go well.  This time we started to explore representing a text adventure game.  The elements* I gave were never implemented (or even considered beyond the first 5 minutes).

I think there is starting to be an interesting tension between methodologies here.  Those that are used to development driven through TDD methods vs. those that are used to traditional methods.  Both these groups seem to be being subverted by the time constraints, as people leap in to do the one thing in the problem space that they can immediately see in their 5 minute slot, and so neither methodology leads as each individual pairing over-rules any systematicity.  The result is, simply-put, something of a mess.  Fascinating.

I am starting to think I should get people to sign ethics forms so that I can properly look at the data for how this is working.  It looks like it could produce some beautiful work.  Shame this is social and not for my PhD.

---

Interesting Thoughts from Dojo Session 1: Tom, Dom, Jez, James, Joh

Very Interesting thoughts from Dojo Session 2: Tom, Jez 

Flickr Photos: CodingDojo

---

One thing which I think we need to explore at the start of the next session is the purpose for the dojo. 

  • Are people coming to explore a problem space, experiment with agile, learn from other people, show off their programming skills, etc? 
  • What do people see the purpose of the dojo as: art, practice, learning, teaching, exploring, communicating, socialising?
  • Should we be aiming to be 'completing' a task in the time period, or just exploring the start and space?

This should be to open up discussions that have already been happening in the tea-breaks and certainly not to change or formalise anything.  At the moment I think there is a very good balance in the various interests and desires of everyone involved.  A stated purpose would be limiting and restrictive.

---

* A House, A Cat, A Blue Necktie, A Nodding Dog Ornament, Something Orange, and a Lift.

Dojo Checkout

ProjectedpaperThe first Coding Dojo session seemed to go very well.  There was a good mix of skill-levels and some interesting approaches to the problem of representing supermarket purchases in Java (Kata 1).   One thing I found interesting was the  notable difference in speed, interaction and achievement between pairs who had prior experience of working together.  I honestly had not expected it to be so marked.

(Tom's photos are here, here, here and here.  His account of the session is here.)


Next time we need:

  • A better projector screen (although our makeshift piece of paper functioned well enough, it was not ideal).
  • Some clearer rules of engagement
  • Forfeits, etc
  • Filter coffee (so I can have some, darn that allergy)
  • A better way for me to keep time
  • A better microphone
  • Unit testing from the beginning!

Type Club

Thanks to the generous support and enthusiasm of Tom at Future Platforms, my idle desire to set up a coding dojo in Brighton has now been realised.

Further details are available on the wiki.

I am very excited by this.  The approach potentially has so many applications for teaching programming, group work and communication skills, while also being good fun. 

I'm very much looking forward to the first night.

Programmer in need of Dojo

One main learning outcome for the coming term is to shore up my programming skills into something semi-useful in an industrial context.

I can program, for sure.  Just nothing useful.

Lets see...

I never quite mastered C.  I loathed the 'stack' of the obscure Pop-11 (sorry Ben).  I was fabulous at Prolog, which remains a special language.  I've used Perl and PHP as needed for web stuff.  I wrote an abysmal text adventure game using Inform - but loved the OOness.  I conquered MATLAB, bent it to my will, and used it to create a full speech recognition teaching program (self-organising neural network powered) which, if you ignored the very ugly gui I created, was theoretically able to teach you to pronounce Norwegian vowels correctly.

Now comes the big change.  A useful language.  Or, at least, one that is useful to me...

I have the book and permission to sit in on the course.  Should be easily done I'd guess.  Practice makes perfect.

I just wish there was a Coders Dojo in Brighton to make my task a bit more fun.  I need to get my code kata on.

Hmm, if only I had the time to set one up...  Perhaps I should find a willing undergraduate...

Archives

Upcoming

Keywords

  • Communication Empirical Agile "Narrative Analysis" Narrative Psychology of Programming Qualitative Software Engineering Storytelling Systems Development Information Systems Discourse Conversation Folklore Programmers Programming Computer Science Urban Legend Water Cooler Photocopier Metaphor Tacit Knowledge Communities of Practice Conversational Storytelling

Gifting

Feed a Student

Tip Jar

Twitter Updates

    follow me on Twitter

    • www.flickr.com
      This is a Flickr badge showing public photos from Bluejoh. Make your own badge here.
    • 'None; but a gulf of ruin, swallowing gold, Not making.  Ruin'd! ruin'd! the sea roars. Ruin: a fearful night!' - 'Sea Dreams' by Alfred Lord Tennyson (The West Pier in Brighton)


      'While strange creepy creatures came out of their dens, And watched them with wondering eyes.' - 'The Hunting of the Snark' by Lewis Carroll (Statue Beyond the Border)


      'In me thou seest the twilight of such day, As after sunset fadeth in the west, Which by and by black night doth take away, Death's second self, that seals up all in rest.' - 'Sonnet LXXIII' by William Shakespeare (Cabin in Norway)


      'Then: ''No one farther goes, souls sanctified, If first the fire bite not; within it enter, And be not deaf unto the song beyond.'' ' - 'The Divine Comedy' by Dante Alighieri (Fire in Lewes)

    Badges

    • Agile Alliance



      Brighton Coding Dojo

      Brighton Bloggers

      GHC 2007

      Sussex Digital - focusing on the Sussex digital community

      View Johanna Hunt's profile on LinkedIn


      Creative Commons License