Wednesday, December 30, 2009

Teaching category theory to undergraduates

Recently in the Categories mailing list there has been some discussion about whether it is yet time to teach category theory to undergraduates. Some, for example John Baez, expressed the idea that it was still too early - we must wait until there are sufficient teachers who understand category theory etc, etc.

I have been teaching category theory to undergraduates now for twenty years. The first time was in 1989 when I taught a course on categories and computer science to third year undergraduates of mathematics and computer science, a course which lead to my book Categories and Computer Science (Carslaw Publications 1991, Cambridge University Press 1992).

There are many others who have taught category theory at an undergraduate level, some mentioned on the list. One in particular was Gordon Preston who taught a course in Melbourne in the early seventies (reported by Kirill Mackenzie). Another famous course was that taught by Bill Lawvere and Steve Schanuel, which resulted in the book Conceptual Mathematics: A First Introduction to Categories (with Stephen H. Schanuel), Cambridge Uni. Press, 1997 ISBN 0-521-47817-0.

Rather than premature the undergraduate teaching of category theory is overdue.

Update: Mike Shulman has written to me saying that perhaps I have misrepresented John Baez. What John Baez wrote was:

I think it's premature to introduce category theory in the undergrad curriculum. Why? Merely because there aren't enough professors who'd see how to teach the subject at that level.

I suppose I have always hoped that professors at university level were not so governed by such things as curricula.

Labels: ,

Saturday, December 19, 2009

Algebra of automata versus Process algebra

The work I have been pursuing for some years with Nicoletta Sabadini and collaborators (Piergiulio Katis, Luisa de Francesco Albasini) has been the study of distributed and concurrent systems using algebras of automata, with the main operations being sequential and communicating-parallel composition.

This is in contrast with the mainstream of concurrency which studies process algebras.

Why our contrary attitude? I would like to explain the point of view.

In a nutshell our view is that semantics should come before syntax. Process algebra takes the opposite point of view, syntax before sematics.

Let's take an analogous development in mathematics, the study of numbers.
Numbers come first. Then, after a long time, operations on numbers. Then a language for talking about numbers and their operations - polynomials. Finally, equations between polynomials.

We believe the same sequence should occur in the theory of systems. Discrete systems have states and transitions, that is, are graphs. They have interfaces and sequential and (communicating) parallel operations (including feedbacks). The languages for describing systems are the free algebras. Finally equations in the algebra (recursion) may be used to specify systems.

Process algebras take the opposite point of view. Beginning with a vague intuition about systems, processes are defined to be solutions of equations of a free algebra. The danger of this sudden jump to the language before a careful mathematical analysis of systems and their operations is that the wrong algebra with the wrong operations may be taken. Milner's CCS does not have a sequential composite of systems (only that a process may be preceded by a transition). Union is used instead of disjoint union in the other sequential operation. The communicating parallel operation is based on a vague broadcast idea.

Of course, in the end of a development as proposed by us, free algebras and recursion arise, but only when the correct operations have been identified. At this stage also other semantics may be identified (in the example of numbers, real numbers, complex numbers, rings of functions, ...). If the algebra of systems has been developed correctly, at least a part should have continuous systems as models, thus allowing the confrontation between discrete and continuous.

Some years ago we produced a process algebra based on our idea of parallel. Recently Pawel Sobocinski is developing a process algebra based on our idea of communicating parallel (but not our view of sequential).

Labels: , ,

Friday, December 11, 2009

Honesty in Science

Andre Joyal just sent a mail to the Category Theory list with a reference to an article of Richard Feynman linked here. The main point is that in science, as opposed to advertising, one should try one's hardest to expose the weakness of one's position, as well as its strengths.

I must keep that in mind when I write my next paper.


Tuesday, December 01, 2009


We went to Colmar for the weekend driving via the San Gottardo tunnel. We had a delightful time there staying in Turckheim and visiting villages near Colmar, as well as visiting the city itself.

Unfortunately, on our return to Italy we were caught in a snow storm before the San Gottardo tunnel, and spent 7 hours blocked on the highway. We eventually managed, with the help of Italians also blocked, to get off the highway, follow a parallel road to a later entry point and arrive home after a trip of 12 hours. Usual time for the trip is 5 hours. Others who did not manage to exit from the highway (A2) spent 12 hours unable to move.

A new experience for me. Born in Brisbane I was 20 before I saw snow.