Now three insights on teaching computer programming

Allen Tucker allen at
Wed Jan 4 10:24:58 EST 2006

Ken, I think your suggestion of UML is a good one.  It's simple, 
graphical, and really not too object oriented.  To support the latter 
assertion, you could mention the presence of both sequence diagrams 
(which support the OO approach) and activity diagrams (which support 
the procedural approach, and which are an extension of the 
old-fashioned flow charts -- Gries calls them "flaw charts" :-).

The main weakness of UML, in my view, lies in the mathematical 
imprecision of its Object Constraint Language (OCL).  While OCL tries 
to provide some support for mathematical formalism, it has no formal 
semantics and therefore is not useful for correctness-types of 
activities during software modeling.  A better choice is the Java 
Modeling Language (JML), since it is fully integrated with Java 
semantics.  However, choosing JML for formal modeling ties you to Java, 
which is offensive to some folks.  Spark/Ada has a similar handicap.  
In the long run, maybe OCL could be strengthened so that it is 
operationally something like JML but language-independent.  If this 
could happen (and pigs could fly), then UML would become a really ideal 
tool for describing program behavior, both formally and graphically.

> I think I could successfully challenge anyone that thinks the UML it 
> object oriented (early on, this may have been the case).  So my 
> question is:
> Does anyone else think that the UML relates adequately to the 
> mathematical,
> and graphical formalism in Computer Science and Software Engineering?  
> If
> not, why so?
> ----------------------------------------------
> Ken Lloyd
> Sr. Software Architect
> Watt Systems Technologies Inc.
>> -----Original Message-----
>> From: math-thinking-l-bounces at
>> [mailto:math-thinking-l-bounces at] On Behalf Of
>> Henderson Peter
>> Sent: Tuesday, January 03, 2006 12:54 PM
>> To: Peter Van Roy
>> Cc: math-thinking at
>> Subject: Re: Two insights on teaching computer programming
>> Another key factor impacting the students views of, and
>> reactions to, a course is the individual instructor.  To be
>> considered a succes a model for a course should be taught
>> effectively by a wide varietly of instructors at different
>> institutions for the intended student audience.
>> Matthias model has passed this test and Peter's model is
>> making good progress.  However, the student audiences are
>> different - novice vs second year college.  It ould be very
>> interesting to study the impact of the sequencing these two
>> approaches.
>> Thanks for this interesting thread.  Good way to end one year
>> and start the next.
>> Pete
>> On Sun, 25 Dec 2005, Peter Van Roy wrote:
>>> David Klappholz wrote:
>>>>> (...) Not a single student out of 300 has complained to me that I
>>>>> should be teaching them Java.  On the contrary, feedback
>> about the
>>>>> course is mostly positive.  (I first taught using this
>> arrangement
>>>>> in 2004, and this lack of complaints caught me much by surprise.
>>>>> Especially since my students are not especially docile:
>> they don't
>>>>> hesitate to ask me questions about technical issues.
>> This lack of
>>>>> complaints doesn't seem to be the same in US universities.
>>>> You may very well be wrong in your conjectures about the Europe-US
>>>> difference.
>>> I agree with you, the dividing line might not be US/Europe but
>>> something else, such as how the institution is funded
>>> (direct/indirect) or the historical traditions at the
>> institution.  I
>>> have not done a serious study of what makes the difference in
>>> attitude.  All I know is that UCL and our department seem
>> to be more
>>> enlightened than many others I know of in both Europe and
>> the US, in
>>> letting me teach the course the way I want to teach it, and
>> I am grateful to them.
>>> Peter
>>> _______________________________________________
>>> Math-thinking-l mailing list  -  Math-thinking-l at
>> _______________________________________________
>> Math-thinking-l mailing list  -  Math-thinking-l at
> _______________________________________________
> Math-thinking-l mailing list  -  Math-thinking-l at

More information about the Math-thinking-l mailing list