[Bluej-discuss] bluej-discuss Digest, Vol 52, Issue 12

Aryeh M. Friedman aryeh.friedman at gmail.com
Sun Oct 14 14:44:40 BST 2007


Stephen Bloch wrote:
> Aryeh M. Friedman" <aryeh.friedman at gmail.com> writes:
>
>   
>> 1. Java is likely already too complex for a true beginners language but
>> since qbasic is not around any more it is the best we have
>>     
>
> A number of the people on this list agree: Java is too complex to 
> teach as a first programming language, no matter how good the IDE. 
> Many of us use Scheme as a first language
>   

What is worse too much semantic overhead or the syntax from hell??!?!?!?
the best compermise I have found between the two from a teaching stand
point is Mozart (www.mozart.org)... at one level it is a very
semantically/syntactical clean lang but at a deeper level incorporates
some features *I WISH* java did like real data flow variables vs. this
hard to visualize mutex stuff.... an other advantage is if taught right
(see Peter VonRoy's book [don't have an URL]) it introduces each concept
at exactly the right time... the only problem is the conceptual
metaphore the VonRoy (and Mozart to some extent) is not well geared for
undergrads (just a matter of clearer writing I think)
>> 2. Control flow is the single most confusing part of learning
>> programming for most students.... 3. Almost all beginners have a 
>> very hard time mentally visualizing  how there  program is executed. 
>> What I mean by this is they often get then and else clauses mixed up 
>> and such or complex statements completely baffle them.
>>     
>
> Some would respond to these problems by using the jGrasp IDE, with 
> its automatic code annotations for control flow.  However, those 
> annotations don't say anything about the content of a Boolean 
> expression, only which code will be executed when.  Another approach 
> is to use a functional, rather than an imperative/sequential, 
> approach in which the control flow and the execution model are 
> typically much simpler and more transparent.
>   
Mozart is functional and it is clearer ***BUT*** almost all functional
langs are too dynamic for easy debugging and it is almost not to
introduce some very non-mainstream concepts like monad's.
>   
>>    Specifically how to construct
>> logically correct conditions (I was amazed when I found not a single one
>> of my class mates or tutoring students [about 150 total] had ever heard
>> of DeMorgan's Law).
>>     
>
> That should be remedied in a Discrete Math course that all 
> programming students take in the first year; a programming course 
> shouldn't need to teach this, only to give concrete examples of it. 
> Coordinate with your Discrete Math instructor.
>   

I guess if my CC wasn't so dysfunctional and I wasn't the lowest person
on the food chain I would look into this.... politically it would be
impossible to do so



More information about the bluej-discuss mailing list