Version 1.1 of acs/ac-00197.txt

Unformatted version of acs/ac-00197.txt version 1.1
Other versions for file acs/ac-00197.txt

!standard 1.1.1(1)          10-10-21 AC95-00197/01
!class confirmation 10-10-21
!status received no action 10-10-21
!status received 10-03-26
!subject Teaching profiles
!summary
!appendix

From: Georg Bauhaus
Sent: Friday, March 26, 2010  7:40 AM

A recent workshop at DIN has considered properties and effects of
programming languages used in teaching.   Ada was well known to most
participants.  However, mentioning Ada and also teaching 17 year olds (for
example) made many of them laugh.

One reason among others may be that the language is considered too big.
True or not, here is my question:  Given Ada's restricting profiles such as
Ravenscar, is it at all possible to define one or more "teaching profiles" like
is done in [2]?  Is it feasible?

The idea is to address issues as mentioned in [1]. In particular, Ada
translators respecting a teaching profile would work within its confines and
issue diagnostic messages meaningful WRT the subset; a "not supported" message
is more meaningful, for example, than one that requires knowledge of full Ada in
order to understand the message.


[1] Seven Deadly Sins of Introductory Programming Language Design
      by McIver, L & Conway, D.M. (1996)
     http://www.csse.monash.edu.au/~damian/papers/PDF/
SevenDeadlySins.pdf

[2] DrScheme's PLT Teaching Languages (subsets of Scheme),
     http://docs.plt-scheme.org/drscheme/htdp-langs.html

****************************************************************

From: Jean-Pierre Rosen
Sent: Friday, March 26, 2010  9:12 AM

> A recent workshop at DIN has considered properties and effects of
> programming languages used in teaching.   Ada was well known to most
> participants.  However, mentioning Ada and also teaching 17 year olds
> (for example) made many of them laugh.

They shouldn't. Many 17 year olds are better programmers than industry
programmers (granted, they are not beginners).

> One reason among others may be that the language is considered too big.
> True or not, here is my question:  Given Ada's restricting profiles
> such as Ravenscar, is it at all possible to define one or more
> "teaching profiles" like is done in [2]?  Is it feasible?

From a lawyers point of view, it is perfectly acceptable for a compiler to
provide pragma Profile (Beginner_Student), and apply any restrictions deemed
appropriate.

There is a consistent subset of Ada which is roughly "Pascal with packages". If
supported by some helpers packages (simpler IOs, etc.), it makes quite an
acceptable language for introduction to programming.

> The idea is to address issues as mentioned in [1]. In particular, Ada
> translators respecting a teaching profile would work within its
> confines and issue diagnostic messages meaningful WRT the subset; a
> "not supported" message is more meaningful, for example, than one that
> requires knowledge of full Ada in order to understand the message.

A very good paper indeed. Note that there are very few citations of Ada from the
"sins" side, although the author clearly studied it. And his wishes about error
messages are certainly fulfilled by Gnat.

Note: in a previous life, I have been teaching introduction to programming to
students for about 10 years, using Fortran, Pascal, and C. I am quite in favour
of Pascal, but I think the same can be achieved with an appropriate subset of
Ada, with the additional benefit that Ada allows teaching encapsulation and
modularity right from the start - which I think is a good thing.

****************************************************************

From: Jeffrey R. Carter
Sent: Friday, March 26, 2010  12:20 PM

> Note: in a previous life, I have been teaching introduction to
> programming to students for about 10 years, using Fortran, Pascal, and
> C. I am quite in favour of Pascal, but I think the same can be
> achieved with an appropriate subset of Ada, with the additional
> benefit that Ada allows teaching encapsulation and modularity right
> from the start - which I think is a good thing.

The US Military Academy (West Point) did a controlled experiment in the 1980s
that found that Ada was a better language for their introduction-to-programming
course than Pascal. I think this was reported in /Ada Letters/.

****************************************************************

From: Robert C. Leif
Sent: Friday, March 26, 2010  4:39 PM

An Ada first year course could start with SPARK subset of Ada without tasking
and an incomplete use of assertions. The inclusion of generics would be useful.

It might be of some interest that The XML Schema Definition Language (XSDL)
(http://www.w3.org/XML/Schema) version 1.1 is quite similar to Ada type
definitions. Schemas can be looked at as the type declaration part of Ada
specifications. XSDL 1.1 even includes assertions. XSDL includes range checking,
which is foreign to the Java programmers with whom I am working on the
development of Digital Imaging and Communications in Medicine (DICOM)
supplements.

****************************************************************

Questions? Ask the ACAA Technical Agent