I, on the other hand, am at the level of "Ooo, look! Mathematicians and computer programmers both use the word 'function'. So do biologists and event organisers. Maybe we should organise a function whose function would be to investigate all these different uses.'
Even a perfunctory analysis should indicate that the attendees would be likely to come away disfunctional. :)
The best that I could think of was that program functions have a 'hidden' input: the fact that they have been called. So a function defined on the empty set corresponds to a function that can never be called.
Can anyone help me straighten this out?
That's easy: just have them visualize a function as a list of its values at the points in its domain enumerated in some fixed order. Programmers can easily see how many lists of length n there are for any given size of codomain of the function (e.g. lists of bits as functions to {0,1}). The empty list should hold no terrors for programmers: in particular they should know it exists, and they should know why there aren't two empty lists. Vaughan Pratt