phone: 07800 739 557
electronic mail: j a c k (at) c a m p i n (d0t) m e (d0t) u k
Feb 1993 - Feb 1995 (Heriot-Watt): Research assistant (under Howard Williams) on the Formalization and Optimization of Active Rules project, constructing formal models of active database functionality, mainly in the Object-Z specification language; this included reviews of the project's programming language design and surveys of existing active database systems and formal specification techniques.
Oct 1989 - Feb 1993 (Glasgow): Research assistant (under David Harper) on ESPRIT Project COMANDOS (Construction and Management of Distributed Systems). Designed and implemented a prototype compiler for the projectÕs object-oriented language OSCAR, designed and supervised the implementation of two versions of the Type Manager (a database for type information), was involved in the design and of the ODMS (Object Database Management System, an object-oriented database) and decisions on its implementation strategy, liased with the other project sites (12 institutions throughout Europe) on operating system kernel issues relating to the ODMS, prepared technical documentation on the ODMS and Type Manager, wrote sections on these for the final report to the European Commission, and translated some documentation on the OS kernel from French.
Oct 1984 - Oct 1989 (Glasgow): Research assistant at the PISA Project, Computing Science Department, University of Glasgow, Glasgow G12 8QQ. While on this project I wrote a graphics driver for a colour plotter (in PS-algol), a disk garbage collector/statistics gathering program (in C) for the PS-algol CPOMS persistent store manager, managed the project's network of ICL Perqs (5 Perq 1s and 6 Perq 2s running Unix and the Newcastle Connection), managed an ICL 3930 machine running VME, did some preliminary language design of bulk data types, designed a tense logic for formal specification of software systems that use transaction constructs, designed some language constructs for programming with distributed persistent stores, supervised a student writing a structure editor generator in PS-algol, gave a few lectures to the staff and postgraduate students (on category theory and on temporal logic), lectured on category theory and lambda calculus as part of an industrial course (for ICL) on knowledge-based systems, worked on the Department's curriculum development committee for formal methods and discrete mathematics, specified a number of student projects at advanced undergraduate an masters level, and supervised a third year student group project developing an interactive geometry teaching package in Lightspeed Pascal on the Macintosh.
Feb 1980 - Sep 1983 (Edinburgh): Paid worker for Edinburgh Books Collective. Duties involved training volunteer rota workers and managing the rota, selling to public and institutional libraries, preparing text and artwork for publicity material, ordering and stock control, accounts, setting up filing systems, liaising with the bank, etc.
Jun 1976 - Feb 1980 (Edinburgh): Unemployed, heavily involved in setting up the First of May Bookshop as a member of Edinburgh Books Collective Ltd. (a workersÕ cooperative).
Sep 1974 - May 1976 (part-time) (USA): Teaching fellow for the Philosophy Department, University of Pittsburgh, Pittsburgh, PA 15260, USA. Taught introductory formal logic, ethics, and seventeenth-century philosophy.
Feb - May 1974 (Australia): Tutor (high school and beginning undergraduate maths and physics) for the Newcombe Study Centre, Bondi, Sydney.
1972 (part-time) (New Zealand): Tutor (logic and introductory philosophy) for the Philosophy Department, University of Auckland.
1971 (part-time) (New Zealand): Exercise and paper grader (logic and introductory philosophy) for the Philosophy Department, University of Auckland; also Tutor (third-year linear algebra) for the Mathematics Department, University of Auckland.
1969 (part-time) (New Zealand): Tutor (2nd-year statistics) for Mathematics Dept, University of Auckland.
1968 (part-time) (New Zealand): Tutor (introductory abstract algebra and calculus) for Mathematics Dept, University of Auckland.
1967 - 1968 vacation (New Zealand): Laboratory assistant at the Department of Scientific and Industrial Research, Plant Physiology Division, Palmerston North, New Zealand. As part of this I wrote some numerical code in FORTRAN II for an IBM 1620.
Sep 1974 - May 1976: University of Pittsburgh, Pittsburgh PA 15260, USA. Studying for Ph.D. in philosophy; took courses in modal logic, recursion theory, Montague grammar, foundations of mathematics, philosophy of language, philosophy of space and time, philosophy of mind, and history of philosophy. Dropped out through illness.
Oct 1980 - May 1982: University of Edinburgh, George Square, Edinburgh, Scotland. Took Turkish I and II part-time, not for a degree - got a First Class Certificate of Merit in both.
Sep 1983 - Jun 1984: University of Glasgow, Glasgow G12 8QQ, Scotland. Studying for Postgraduate Diploma in Computing Science, microprocessor technology option - languages covered were Pascal, Ada, and Motorola 68000 assembler. My project was a runtime library for Motorola EXORmacs Pascal to enable it to run on a 68000-based single board computer. Gained Postgraduate Diploma in Computing Science with Distinction.
S. Blott and J. Campin: Lgen, Pgen and Sgen: language development tools for a persistent programming environment, Persistent Programming Research Report 52, Universities of Glasgow and St.Andrews, 1988.
J. Campin: Tense logic and nested transactions, Persistent Programming Research Report 60, Universities of Glasgow and St.Andrews, 1988.
J. Campin: Language constructs for distributed persistent programming, Persistent Programming Research Report 61, Universities of Glasgow and St. Andrews, 1988.
ESPRIT deliverables for the Comandos Project, including chapters on the Type Manager and the Object Data Management System in the final report.
J. Campin: An overview of the Comandos architecture, in Proceedings of the 1990 Glasgow Database Workshop, Technical Report CSC/90/R16, Dept. of Computing Science, University of Glasgow, 1990
J. Campin, R. Cooper and F. Wai: Type Management in a Heterogeneous System, in D.J. Harper and M.C. Norrie (eds) The Glasgow Collection of Comandos Papers, Research Report CSC/91/R16, Dept. of Computing Science, University of Glasgow, September 1991.
J. Campin: Database Language Design and Extensions to the BROOM Data Model, in D.J. Harper and M.C. Norrie (eds), The Glasgow Collection of Comandos Papers, Research Report CSC/91/R16, Dept. of Computing Science, University of Glasgow, September 1991.
J. Campin: Using the Comandos Data Model for Type Management, in D.J. Harper and M.C. Norrie (eds), The Glasgow Collection of Comandos Papers, Research Report CSC/91/R16, Dept. of Computing Science, University of Glasgow, September 1991.
J. Campin, N.W. Paton and M.H. Williams: A structured specification of an active database system, Information and Software Technology, 37 (1), 1995.
N.W. Paton, O. Diaz, M.H. Williams, J. Campin, A. Dinn and A. Jaime: Dimensions of Active Behaviour, Proc. 1st International Workshop on Rules in Database Systems, Springer-Verlag, 1994.
J. Campin, N.W. Paton and M.H. Williams: Specifying active database systems in an object-oriented framework, to appear.
ACATT (Action Committee against the Tortures In Turkey): From The Torture Cells of Turkey, Edinburgh, 1981 (co-editor and co-translator of a compilation of human rights documents).
Turkey Solidarity Campaign: 12 September and After - a Dossier on the Junta in Turkey, report to the Council of Europe, (co-editor).
Reading knowledge of French (enough to read technical documentation).
Familiarity with a wide range of software: word processors (Microsoft Word and Write Now for Macintosh, occasional use of several others); text editors (emacs and vi on Unix, BBEdit and other text editors on the Mac, old line editors on Unix and ICL VME); document formatters (troff, LaTeX, and associated tools); graphics editors (MacDraw and Adobe Photoshop on the Mac, psfig on Unix); WWW software (several HTML editors on the Mac, web browsers including Unix xmosaic, MacWeb and Netscape for Windows); spreadsheets (Excel and occasional use of others); several Unix, Mac and Windows-based email and Usenet news readers and message transfer agents; system maintenance tools for Unix and the Mac.
Programming experience in addition to that described above includes Unix shells and associated languages (sed, awk, ...), ICL SCL, Forth, and some exposure to ML, lazy functional languages, Scheme, Prolog and Smalltalk.
Jack Campin's Home Page