Senior Lecturer / Lab Archivist / UG Director of Studies (QA)
I belong to the following research groups:
All things parallel. More specifically my research interests centre around the CSP model of parallel processing, encapsulated by the occam-pi multiprocessing language. This is a message-passing based model of concurrency, but I am also interested in the others (e.g. shared variable, including lock-free and wait-free algorithms, join calculus based abstractions, etc.). I'm also interested in parallel computing across clusters and on GPUs. Other interests include programming language design and implementation, operating systems and embedded systems. In other activities I'm responsible for organising and running the School of Computing's Open Day activities and their schools' outreach activities.
Outside of work (though being an academic makes the work/life distinction blurry sometimes!) I enjoy bell-ringing (campanology), rock-climbing, kung-fu and beer.
I teach on (or am otherwise involved with) the following modules:
- CO527 Operating Systems and Architecture
(15 level-I credits, spring term, module catalogue,
This module teaches some of the low-level issues surrounding computer architecture (how the CPU/etc. work) and operating systems (structure, memory-management, scheduling, multiprocessors, filing-systems, etc.). For the 2013/2014 academic year, we're introducing some AVR assembly programming on the Arduino Uno.
- CO545 Functional and Concurrent Programming
(15 level-I credits, spring term, module catalogue,
This module teaches some fundamental things in functional an concurrent programming (as every good CS'er should know about such stuff!). We're using Erlang as the language taught, as it's functional enough to cover that aspect, and has a decent implementation of process-based concurrency.
- CO890 Concurrency and Parallelism
(15 level-M credits, spring term, module catalogue).
This module covers a wide range of topics surrounding concurrent and parallel programming, including methodologies, programming techniques/tactics and the hardware support provided.
- CO600,CO620 final-year group and research projects (30 level H credits, both terms).
This year I'm supervising just one CO600 group project.
- CO646 Computing in the Classroom
(15 level-H credits, spring term, module catalogue).
I'm not teaching or convening this module but I am involved in the selection and examination of students. Essentially this is the module where students go into local schools to teach (in varied capacities) computing and related subjects; everything from ICT and year 7/8 up to computer-science or computing A-levels in years 12/13.
- CO510 Software Engineering
(30 level-I credits, both terms, module catalogue).
This is the software engineering module for our undergraduate students; I "facilitate" (supervise) two of the group-project groups, comprising most of my stage-2 tutees. This year's project is some sort of HR management system.
Here are some of the projects I'm currently involved with:
(currently broken whilst our website undergoes some updates)
Here are some teaching-related things, that also count as research interests:
- A mini operating-system simulator (MOSS), written in Java and used as the basis for some of the CO501 coursework (2004/2005).
- An occam tutorial.
- A Java glossary.
- A list of projects, aimed at the general area of 3rd/4th-year projects. Along with that, a list of PhD projects. Also the SSE research projects page.
- Javadoc output for MOSS
- My (GPG) public key for `F.R.M.Barnes@kent.ac.uk' (formerly `firstname.lastname@example.org'). Key fingerprint is 5421 5D16 CEB7 90F3 A750 6BB2 2167 8C61 B53F D4E5. This is also available from key-servers at wwwkeys.pgp.net and subkeys.pgp.net.
- UCAS day stuff, slides, code and links from the UCAS day demonstrations.
- colortest.pdf, for test-driving a data-projector's colour capability.
- Decoding scribbles that I've left on your scripts/dissertations/theses.
- Research group Wiki (editable version, authenticated users only)
- Schools-liaison Wiki
- Material/resources for summer-school taster sessions
- KRoC occam-pi system - distribution and installation instructions.
- JCSP - CSP library for java
- home-page - my home page
- publications - publications on my home page (with other documents/presentations/etc.)
- Programming Languages and Systems research group events web-page
- Various project mailing lists
- pi-cluster usage
- why choose a career in computing / computer-science?
- Professional bodies I am a member of: ACM, BCS, IET, HE-Academy, UCU.
- I was curious to know how much spam vs. mail I get, so I graphed it (and a good excuse to play around with rrdtool): How much spam..?
- If you're a student looking for an internship with me, please see this page.
For Office365 Outlook Web App (OWA) Users
Some people can't read the digitally signed emails I sent out with OWA (it just refuses to view the message and whinces about S/MIME). Try:
- Double-clicking the message to open it in a new window (if that works).
- This workaround (from U-Texas) that turns off "conversations" (presumably they [Microsoft] really mean message threading here).
- Get a GMail account and forward your University email to it.
The support-ish forum thread our local IS team pointed me at (http://community.office365.com/en-us/forums/158/t/18272.aspx) does nothing to suggest a fix is on the way nor why it's broken in the first place (specifically for just showing the regular plain-text part of a digitally signed message, other than some repeated redundant explanation about how good the other anti-stuff features are — relevant? sigh). The more formal response from the Microsoft Office folk just suggests to go and use another email client. Sigh. Unfortunately if you're at Kent, you get given Office365's OWA by default and changing to something less broken isn't always straight-forward.