A human being should be able to change a diaper, plan an invasion, butcher a hog, con a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyse a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.— R.A Heinlein, Notebook of Lazarus Long
I retain an Honorary position. You can still email me at J.Hamer@cs.auckland.ac.nz, but I am not available for supervision.
Contributing-student pedagogies involves students authoring and sharing learning resources within and between courses. The learning environment is collaborative and cooperative, rather than competitive and individual.
Contributing Student Approach, in Eleventh Conference on Innovation and Technology in Computer Science Education, Bologna, Italy, June 2006, pp68–72
A long time ago, a solid grasp of the discipline's core knowledge was
both necessary and sufficient for a graduate's career. Today, such core
knowledge has become relatively less valuable: we typically measure the
half-live
of knowledge in small numbers of years or even months.
Society is now demanding graduates who are adaptable, reflective
thinkers capable of communicating and co-operating effectively.
Specific domain knowledge routinely comes well behind such
transferable skills in employer surveys.
The assignments and forms of assessment in common use today are largely a legacy from this bygone era. We persist in setting individual assignments that are (belatedly) marked by tutors (or, more often, senior students), providing little by way of useful, timely feedback. There is a clear need for novel forms of assessment better suited to the modern world
My contribution to this area is a web-based system, Aropä, for administering peer-reviewed assignments. Aropä provides several complementary mechanisms for evaluating the quality of the reviewing, and can be adapted to a wide variety of assessment contexts.
roguereviewers and minimises their influence (124kb PDF).
Aropä is written in PHP and runs on a MySQL database. Please contact me if you would like further information.
I was a member of the BRACE study, a group of fifteen researchers from eleven institutions (in New Zealand, Australia, England and Scotland) investigating predictors to success in introductory programming.
The ITiCSE 2004 working group investigated the ability of
introductory programming students to read (trace) and understand short
programs involving generic, iterative processes on arrays. Twelve
researchers from Australia, USA, Wales, New Zealand, Denmark, Sweden,
and Finland collected performance data, interview transcripts and
scratch paper doodles
from a 12 question multi-choice test.
We concluded that many students exhibit fragile knowledge in these core skills, a result that goes some way to explaining the poor problem solving ability studied by the 2001 ITiCSE working group and observed by lecturers worldwide.
Our report appeared in the December issue of the ACM SIGCSE BulletinA follow-up study, using a broader set of MCQs, is currently being conducted by a group of New Zealand researchers (the "BRACE-let study").
.LJV.java is tool for visualizing Java data structures, using Graphviz. It has been used to good effect in a CS1 and CS2-level data structures course. The software is available under the GNU General Public License. Documentation for the system is in preparation. Meanwhile, there are some examples, and a paper I wrote on the system for the ACE 2004 conference (slides), and another paper that appeared in the 3rd Program Visualization Workshop (Research Report 407, Department of Computer Science, University of Warwick, 2004).
If you find this tool helpful, please send me an email.
Kyle Gillette has put together some material for AP Computer Science teachers that should be useful to anyone wanting a gentle introduction to the tool.
A web-based panorama and virtual tour authoring system(2007)
Enhanced Source Control(2007)
Risk Alert Management System(2007)
Lecture clickers(2006)
An on-line dress sense feedback system(2006)
Pocket PC Football Referee Assistant(2006)
Massive multiple sequence alignment via grid computing and genetic algorithms(2005)
Architectures for building Smart Client software(2005)
A Java data structure visualiser for Eclipse(2005)
A study into the effects of Peer Assessment(2005)
Global Golf(2004)
A Peer Marking system(2004)
Soccer strategy planner(2004)
Reverse engineering and re-design of a report writer language(2003)
An evaluation of Object Prevaylance(2003)
Bridging the Gap between Design and Implementation(MSc, 2002)
From Dynamic Languages to Dynamic Architectures(MSc, 2000)
Performance Issues in Large Databases(MSc, 1999)
Debugging for Lazy Functional Languages(MSc, 1997)
A Modular Monadic Action Semantics(MSc, 1997)
Students thinking about taking a project or thesis are welcome to browse my list of research topics. to get an idea of the kinds of topics I am interested in supervising.
You might also like to read about the kind of grading criteria that may be used when marking theses and projects.
I have been associated with the Computer Science department since way back in 1983. The department had been in existence all of two years back then, so I can fairly claim to be one of its longest serving associates. I came to Auckland after studying for two years at Victoria University of Wellington, and completed my Victoria BSc during my first year at Auckland. I went on to enrol in a MSc, and then converted to a PhD in 1986. My PhD involved developing a declarative object-oriented language intended for applications in the building industry. The work was funded by the Building Research Association of New Zealand (BRANZ), and this enabled me to work as a Research Officer during 1988 and 1989. I completed my PhD in 1990 and became a lecturer in the department in December that year.
I have taught classes in Artificial Intelligence (07.363), Language
Design and Implementation (07.431, SOFTENG 701), Software Engineering
(07.230, SOFTENG 206), Logic and Functional Programming (415.360,
SOFTENG 325), Introductory Computing (07.111), Computer Systems
(415.210), Algorithms and Data Structures (415.105, 415.220, SOFTENG
250), Introductory Programming (COMPSCI 101), Formal Methods (SOFTENG
461/462), and Common Lisp (SOFTENG 701). I received a University of
Auckland Distinguished Teaching Award in 1997, and was voted Best
Lecturer in Software Engineering
in 2003 and again in 2004 by the
graduating year Software Engineering students. In 2007 I received
AaeE's
Programme that Enhances Excellence in Learning
award for my work
on Aropä.
I referee football (soccer), earning my NZ badge (#2139) in May
2008, and keep fit by running and cycling. I ran
the Auckland marathon
in 2006 and 2009, completed all six long races in the Leppin (now
Xterra) off-road run series
in 2007. In 2008 I swam, clambered and ran the "Full
Monty" North
Shore Coastal Challenge and ran the
magnificent Cape Brett
Challenge in the rain. I returned in 2009 to complete the Cape
Brett Challenge in blazing sunshine. While on sabbatical in 2008, I completed four races in
the Scottish Long Classics series:
Ben Rinnes
(profile),
Ochil 2000s,
Two Breweries, and
Pentland Skyline
(profile),
as well as the
Three Shires Hill Race
(profile)
in the Lake District. My slowest marathon
was
the 2010
Kaweka Challenge, in which I failed to break 9 hours (there were
some hills, mind you).
Slow
I go out to find whatever comes But the first fifteen minutes are for trying to breathe, the next fifteen are for using both legs without almost having to count cadence, and the second half hour for water, two cheeps of a bird, and the reassurance that important chemicals are now in the bloodstream ... the first hour is the hardest hour, but in the second hour something goes right without your knowing: a mixture of good motions, oxygen and a certain giving-up that permits you not to hurry and gives you back for every slow minute two that are behind you ...— Marvin Bell (1937–)