[Bluej-discuss] first languages

Lon Levy lxl at oregon.k12.wi.us
Mon Oct 15 13:45:13 BST 2007


Hi Davin,

"I think the original statement was correct; functions are invoked using 
a syntax rule. The semantics of that rule imply a function call."

Correct.  You are also correct about the nature of Scheme syntax.  My students find it a brief challenge to wrap their brains around prefix notation.  Some continue to stumble a little with it, but I'm teaching high school freshmen.  I further agree with your assessment of C++ ... what a terrible beginners' language.

"A question to other list members, do students get confused when 
transitioning from Scheme to Java about the change from prefix to infix 
notation?"

That part of the transition is fairly easy.  Most of my students find the infix notation of Java trivial.  They have more confusion with dot notation (we spend a lot of time on that) and remembering when something is a class and when it is an object (which BlueJ helps considerably).

Regards,

Lon.


Lon Levy, MS-CSEd
Computer Science Teacher
Volunteer Computer Club Advisor
Oregon High School
608-835-1316
LXL at oregon.k12.wi.us
cs at levytree.net

non somnos requiem

>>> Davin McCall <davmac at bluej.org> 10/14/07 8:49 PM >>>
I worry that this is whole thread is going to turn into a flame-war, but:

Aryeh M. Friedman wrote:
>> Syntax from hell?  All functions, whether built-in or user-defined, 
>> are invoked using the exact same syntax rule. 
>>     
> That is semantics not syntax.... I am sure one can call APL or the
> sendmail config file semantically clean but try to read it!
>
>   

I think the original statement was correct; functions are invoked using 
a syntax rule. The semantics of that rule imply a function call.

 From what I've seen of it - which admittedly isn't much - Scheme syntax 
is quite straightforward. There are two things that I don't like about 
it: too many brackets, and the prefix notation - but in both cases it's 
probably more a matter of what I'm used to. The prefix notation, while 
not being familiar for mathematical operations like +,-,* etc, is at 
least consistent with the idea that these operators are really functions 
just like any other function, and it also removes the problem of 
precedence which I suspect beginning students stumble on quite a bit 
(though more often with the logical operators than the arithmetic ones, 
perhaps).

So, I don't think Scheme has the "syntax from hell". C++ on the other 
hand... :-)

A question to other list members, do students get confused when 
transitioning from Scheme to Java about the change from prefix to infix 
notation?

> If a lang needs an ide just to be writable (parens in LISP) it is not a
> beginners lang ;-)
>   
I think you can avoid nesting too many brackets in various ways, so that 
it's visually clear without an IDE. You can also use indentation to make 
things clearer even with Scheme and Lisp.

(I should make it clear: I don't *like* Scheme. I would never choose to 
write in it myself. But, as a language to illustrate some basic 
programming concepts, I'm not convinced it's a bad choice. Also, I'm not 
a CS teacher. I have been a CS student.).

Davin.




More information about the bluej-discuss mailing list