Now three insights on teaching computer programming
Kenneth A Lloyd
kalloyd at wattsys.com
Wed Jan 4 21:29:47 EST 2006
Don't like OCL, eh? Well, I am not OVERLY enamored with it either. I'm
certain Jos Warmer or Anneke Kleppe would believe otherwise. There are a
couple of points that should be considered: 1) I believe that OCL's
formalism is stronger than that of the "formalism" of natural language (and
here many people would disagree with me). 2) UML treats ANY constraint
routine as a primitive String, therefore any language that can be encoded
within a String object may be parsed by your "parser du jour". There is
another string to specify what constraint language the routine is in. This
opens things up a bit, to JML, MathML, Mathematica, Haskell, <insert your
formal language here>.
By the way, these can run these in the background, as can the generation of
digraphs from the UML models. One can simulate (and measure) many of the
good and bad things that can happen. Relatively recent advancements in
graph theory have produced algorithms that have reduced the time complexity
so 40 - 60K node (or even larger) digraphs are not as problematic as they
were, and graphics GPU's are more powerful than CPU's for shear number
crunching of matrix and scalar math. There's a lot of information in those
Finally, I think it is important to view software engineering and
development as a dynamic system, rather than the static structure / behavior
paradigm. I read Valerie Harvey's posting re: database design as well as
software design - and I ache. Hopefully, the tools (math & apps) and our
ability to use them will allow us to encapsulate ourselves from the tedium
and minutiae in these complex systems (we can always learn about them in one
of Pete Henderson's CSSE courses! - kidding, of course).
Sr. Software Architect
Watt Systems Technologies Inc.
> -----Original Message-----
> From: allen at bowdoin.edu [mailto:allen at bowdoin.edu]
> Sent: Wednesday, January 04, 2006 10:25 AM
> To: Kenneth A Lloyd
> Cc: math-thinking-l at geneseo.edu
> Subject: Re: Now three insights on teaching computer programming
> 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
> > TOO 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.
> > www.wattsys.com
> >> -----Original Message-----
> >> From: math-thinking-l-bounces at geneseo.edu
> >> [mailto:math-thinking-l-bounces at geneseo.edu] On Behalf Of
> >> Peter
> >> Sent: Tuesday, January 03, 2006 12:54 PM
> >> To: Peter Van Roy
> >> Cc: math-thinking at cs.geneseo.edu
> >> 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
> >>>> 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 geneseo.edu
> >>> http://mail.geneseo.edu/mailman/listinfo/math-thinking-l
> >> _______________________________________________
> >> Math-thinking-l mailing list - Math-thinking-l at geneseo.edu
> >> http://mail.geneseo.edu/mailman/listinfo/math-thinking-l
> > _______________________________________________
> > Math-thinking-l mailing list - Math-thinking-l at geneseo.edu
> > http://mail.geneseo.edu/mailman/listinfo/math-thinking-l
More information about the Math-thinking-l