Simon Thompson is Professor of Logic and Computation in the Computing
Laboratory of the University of Kent, where he has taught computing at
undergraduate and postgraduate levels for the past twenty five years,
and where he has been department head for the last six.

His
research work has centered on functional programming: program
verification, type systems, and most recently development of software
tools for functional programming languages. His team has built the HaRe
tool for refactoring Haskell programs, and is currently developing
Wrangler to do the same for Erlang. His research has been funded by
various agencies including EPSRC and the European Framework programme.
His training is as a mathematician: he has an MA in Mathematics from
Cambridge and a D.Phil. in mathematical logic from Oxford.

He has
written four books in his field of interest; Type Theory and Functional
Programming published in 1991; Miranda: The Craft of Functional
Programming (1995), Haskell: The Craft of Functional Programming (2nd
ed. 1999) and Erlang Programming (with Francesco Cesarini, 2009). Apart
from the last, which is published by O'Reilly, these are all published
by Addison Wesley.

Getting the right module structure: finding and fixing problems in your projects

Low coupling between modules and high cohesion inside each module are
the key features of good software architecture. Systems written in
modern programming languages generally start with some reasonably
well-designed module structure, however with continuous feature
additions, modifications and bug fixes, software modularity gradually
deteriorates. So, there is a need for incrementally improving modularity
to avoid the situation when the structure of the system becomes too
complex to maintain.

We demonstrate how Wrangler, a
general-purpose refactoring tool for Erlang, can be used to maintain and
improve the modularity of programs written in Erlang without
dramatically changing the existing module structure. We show how we
identify a set of "modularity smells" and then demonstrate how they are
detected by Wrangler and removed by way of a variety of refactorings
implemented in Wrangler.

Target Audience: Software DevelopersPrerequisites: Good programming skills in another languageObjectives:• Understanding of the basics of Erlang.• Read/Write/Design Erlang Programs.• Good knowledge of the development environment and tools.• Provides basics needed to attend the Advanced Erlang/OTP courseGoal: Attend the Advanced Erlang/OTP course and eventually pass the Erlang certification exam.Duration: Three days.Registration: 08:30 on 21st March 2011. Venue: Hilton San Francisco Airport Hotel.Description:
The course contains all the Erlang basics such as sequential and
concurrent programming, along side error handling. The Erlang
development environment is presented, with a special emphasis on the
Erlang mode for Emacs alongside the major debugging tools. Good and bad
programming practices are discussed, as are tools used to profile the
system. OTP design principles and concepts are sneaked into the
material as well as the exercises.