[comp.software-eng] Course in functional programming

sjt@ukc.ac.uk (S.J.Thompson) (11/15/89)

         IINNTTRROODDUUCCTTIIOONN  TTOO  FFUUNNCCTTIIOONNAALL PPRROOGGRRAAMMMMIINNGG  IINN  MMIIRRAANNDDAA





Functional programming offers an alternative,  higher-level,  method  of
programming.   Functional  programs  are descriptive rather than impera-
tive, so they are

-  closer to their specifications,
- more concise and readable, and,
- more amenable to formal techniques of program derivation and verification.


Users in industry find functional languages suitable for the rapid  pro-
totyping  of  systems  as well as adopting them for general-purpose pro-
gramming. Academically, an increasingly  large  proportion  of  computer
science  departments  are teaching functional languages  in their intro-
ductory programming courses.

Miranda is a functional programming language designed by Professor David
Turner  of  the  University  of  Kent,  and  distributed commercially by
Research Software Ltd.  Miranda is a higher-order,  lazy,  purely  func-
tional  language, with polymorphic strong typing and a simple yet power-
ful module system.  The Miranda system is running at over 300 sites, and
is  acknowledged  to be one of the standard vehicles for functional pro-
gramming.

        For further details please contact

        Mrs J. Farmer
        Computing Laboratory
        University of Kent
        Canterbury
        Kent, CT2 7NF

        Telephone 0227-764000 ext 7695 and
        Email jcf@uk.ac.ukc (within UK) or
        jcf@ukc.ac.uk (outside the UK).


The Course is aimed at systems analysts, software engineers and program-
mers as well as at academic teaching and research staff and postgraduate
students.  There are no formal prerequisites for the course.

The Course will involve a mixture of presentations and supervised  exer-
cise  sessions.  These will provide practical experience of constructing
functional programs and of using the Miranda system to execute them.












CCoouurrssee OOuuttlliinnee

The first day of the course will explore the basics of  functional  pro-
gramming.   We start with the central notions of expressions, values and
evaluation, and types.  A major strength of the language is its general-
ity,  shown  by  its  ability both to express functions which themselves
operate over other functions ('higher-order' functions), and also gener-
ically to define 'polymorphic' functions which can be used over any of a
class of types.  The remainder of the  day  will  explore  these  ideas,
using the built-in type of lists as well as the basic types.

On the second day we shall look again at lists, before  showing  how  we
can  prove  the  correctness of functions. This is much simpler and more
direct than for imperative languages.  The  'lazy'  evaluation  strategy
which  Miranda  uses  is  then discussed, and after looking at the novel
programming techniques which  this  encourages,  we  explore  how  user-
defined  types  are introduced.  We conclude the course with a review of
the material covered and of the prospects for functional programming.

The course team consists of  Professor  David  Turner,  Allan   Grimley,
Richard  Jones  and Dr. Simon Thompson, who are all experienced teachers
of functional programming,  as  well  as  having  considerable  research
expertise.

The Venue is the Computing Laboratory  at  the  University  of  Kent  at
Canterbury.   The Computing Laboratory is housed in a modern building on
a 300 acre campus a mile north of and overlooking the cathedral city  of
Canterbury.

The Dates of the course will be
              Thursday 4 January -- Friday 5 January 1990

and the times will be 9 o'clock to 5 o'clock each day.

The cost will be 250 pounds per person, with reduced rates of 150 pounds
for salaried academic staff and 100 pounds for students.

The course fee includes the cost of lunches but excludes  accommodation,
breakfast and evening meals.

Bed and  breakfast accommodation can be provided in  single  study  bed-
rooms on campus as an optional extra at 14.25 pounds per night.  Evening
meals may be purchased separately.







BBOOOOKKIINNGG IINNSSTTRRUUCCTTIIOONNSS AANNDD CCOONNDDIITTIIOONNSS


Please complete the booking form below with  your  booking  and  payment










details before returning to:

        Mrs J. Farmer
        Computing Laboratory
        University of Kent
        Canterbury
        Kent, CT2 7NF


The number of places available will be limited, and places will be allo-
cated  in the order that bookings are received. Substitution of partici-
pants may be made at any time.  In  the  event  of  cancellation  a  #30
administration fee will be charged.

In the event of circumstances beyond our control, the University of Kent
reserves  the  right  to cancel or reschedule the course.  All fees paid
will be refunded.















































FFUUNNCCTTIIOONNAALL PPRROOGGRRAAMMMMIINNGG IINN MMIIRRAANNDDAA

        4-5 January 1990
        Computing Laboratory
        University of Kent at Canterbury


BBOOOOKKIINNGG FFOORRMM

        Please reserve one place on the above course for:


        Name:


        Position:


        Company:


        Address:








        Tel No.:        Email:


Dates on which overnight accommodation is required at 14 pounds 25 pence  
per  night
(delete as appropriate)

3 January / 4 January / 5 January
I enclose either
(a) A cheque payable to UNIKENT for #
(the course fee) plus #
for accommodation, or,
(b) An official order form from my organisation for the items listed under (a).