RE: Intuitiveness of programming languages/paradigms

2009-11-30 Thread Lindsay Marshall
The people who don't learn are not motivated and not enthusiastic

That is an incredibly complacent attitude, pedagogically. I'm not suprised
to hear it, I'm afraid.

*sigh* You aren't listening are you? 

L.



Re: Intuitiveness of programming languages/paradigms

2009-11-30 Thread R Bartlett


- Original Message - 
From: R Bartlett ra.bartl...@ntlworld.com

To: S.A.Fincher s.a.finc...@kent.ac.uk
Sent: Monday, November 30, 2009 4:42 PM
Subject: Re: Intuitiveness of programming languages/paradigms



You may be interested to see some of the portfolios generated by
chalk face academics teaching introductory programming every day.
I think they speak eloquently of the quality of care educators pour
into their teaching.

http://www.cs.kent.ac.uk/people/staff/saf/dc/portfolios.html



Thanks for that. Some interesting stuff in the portfolios. There are
lecturers and departments that are obviously recognising the difficulties,
and trying hard to come up with a good pedagogy.  And it's good to see the
Schon view of professionalism prevailing over the Illich one!

However, despite all those good intentions, there does not seem to be a 
move
away from the presentation of programming in stages to large groups as a 
predefined

curriculum, lumbered with baggage such as pesudo code, log books, and all
the accompanying tests and assessment as-you-go, based on more or less 
elborate

marking schemes, and so forth. That's how it seemed to me on a brief
inspection of some of those portfolios.

I think if you believe in the 'breakthrough' model of learning, all that is
not necessary. Perhaps if one believes that a drip-drip exposure somehow
works, then the approach is more justified?

Richard.



Re: Intuitiveness of programming languages/paradigms

2009-11-29 Thread William Billingsley


This sounds like an interesting problem around the role of university  
education.


Traditionally / (in olden times?), one of the differentiators  
between school and university was that at university students were  
considered to take full responsibility for their own learning.  As a  
student I was told employers valued this -- when they were hiring  
graduates, they wanted to see that their potential employee did not  
need constant hand-holding and spoon-feeding, but that if you put him/ 
her in an environment where help is available on request, suitable  
resource material and experts to ask are abundant, and say here's  
your goal; now go for it that potential employee would not flounder  
but would be able to identify the resources they need, learn what they  
need, and get it done.  Of course that is a very traditional/old- 
fashioned view of universities that asks very few pedagogical skills  
of the lecturers.  It places all the blame on the students.


The more recent consideration is for universities to be seen as  
education suppliers, and students are their customers.  The  
relationship between the university and the student is a business  
relationship (the student really is paying for some of it now), and  
value-for-money is a genuine and reasonable concern.  Is the pedagogy  
of the lecturer good enough?  If the customer has paid to learn this  
material, and they haven't done so, what should the lecturers have  
done better to give full satisfaction to their customer?


I guess the second half of the question is how much hand-holding is  
best for programmers in the long-run?  Is programming a threshold  
concept whereby once you've got it it all becomes much easier  
thenceforth, so if we can just hand-hold students til they get over  
the threshold they will be fine after they graduate?  Or is it a  
continuous incline of learning -- and if you hand-hold the student all  
the way to graduation, will they feel like they've fallen off a cliff  
when they go out and get employment only to find that all those  
careful pedagogical plans stop at the university exit gate?


I don't mean any rhetoric by this, but it sounds like an interesting  
problem.


William


On 30 Nov 2009, at 10:15, R Bartlett wrote:


Let me chime in with an echo of what Lindsay said, and put it to you
that CS students who are, quote, not very good at programming, are
the kinds of students I expect a competent system to sharpen up, or
grind out.  I don't expect it to find a way to make them good  
programmers
in spite of themselves, if those very students lack sufficient  
drive and

aptitude to conquer the material at hand under their own steam.


Well this discussion all boils down to the role of education. THere  
are two attitudes


1) We'll take your money, but really you shouldn't be on this course  
- we would like people who can already  program so that we don't  
have to teach anything.

or
2) We'll take your money, and do the best we can with you.

- Original Message - From: Frank Wales fr...@limov.com
To: Ppig-Discuss-List@open.ac.uk
Cc: R Bartlett ra.bartl...@ntlworld.com
Sent: Sunday, November 29, 2009 11:31 PM
Subject: Re: Intuitiveness of programming languages/paradigms



R Bartlett wrote:
I think if you ask CS undergraduates who are not very good at  
programming whether they want to program, the answer will change  
from yes to no after a couple of months.


Let me chime in with an echo of what Lindsay said, and put it to you
that CS students who are, quote, not very good at programming, are
the kinds of students I expect a competent system to sharpen up, or
grind out.  I don't expect it to find a way to make them good  
programmers
in spite of themselves, if those very students lack sufficient  
drive and

aptitude to conquer the material at hand under their own steam.

How much they have paid for the course, or how high their hopes have
been piled, doesn't matter for CS students any more than it matters
for music students or medical students or Latin students.

And I have no vested interest in defending the current teaching  
situation;
rather I'm a walking, talking data-point from both sides of the  
student body.
I was rightly ground out of medicine, due to lack of interest; I  
got distinction
passes in computing and molecular biology, despite copious non- 
academic

stresses, due to compelling interest.

In both cases, the teaching staff helped, but I saw it as my job to
fail or succeed. I managed to do both, in different fields,  
according to

my drive and aptitude, and I wouldn't expect higher education to be
any other way.
--
Frank Wales [fr...@limov.com]






Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Raoul Duke
On Tue, Nov 24, 2009 at 12:35 AM, Derek M Jones de...@knosof.co.uk wrote:
 approach easier, and some of whom find another.  From a teaching
 point of view, would it be possible to offer two introductory
 streams, one functional and one imperative, and let students
 choose and/or transfer early?

 How could students tell the difference between having problems
 programming and having problems using a particular kind of
 language?  Perhaps this distinction is not important, they
 could simply try another approach and see if it makes any
 difference.

i believe that this train of thought should really be more widely
applied. the way i best learn algebra is perhaps not the same best way
the student next to be might learn it. yet our academics do little or
nothing to consider how best to engage with a student.

sincerely.



Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Raoul Duke
On Tue, Nov 24, 2009 at 1:35 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:
 I wonder if the question of intuitiveness could be studied
 at the level of arithmetic rather than programming as a whole.
 For example, Smalltalk counts as OO-imperative, but has
 bignum and ratio arithmetic built in and standard:  6/4 gives
 the answer 3/2, not 1.5.  Java _has_ bignum arithmetic, but
 doesn't let you use ordinary notation with it.  And so on.

seems like there is a range of essential vs. inessential mental
complexities that one has to grok to really grok a given programming
language, this whole how close to Real Math does it come being an
example.

so maybe we can study intuitiveness of a programming language in
terms of the things which are general problem-solving issues vs.
issues about a particular concrete implementation. (in reality i think
as jef raskin used to say that 'intuitive' is b.s. and is more just
another word for 'familiar'.)

e.g. a particular paradigm (e.g. imperative) makes sense to a given
individual, but then they get totally tripped up by the horribly
non-standard vs. math details (cf. limits on ranges of values).

sincerely.



Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Raoul Duke
On Tue, Nov 24, 2009 at 1:58 PM, Lindsay Marshall
lindsay.marsh...@newcastle.ac.uk wrote:
 I think this is a complete red herring. But there again so is the whole idea 
 of intuitiveness.

agreed :-)

my point (which might have been exactly the same as yours) was just
that if we are going to try to understand how an individual might best
be able to use a computer, we need to understand that it isn't just
the gross terms of e.g. imperative vs. functional.

sincerely.


Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread John Daughtry
Maybe it is time to rewrite K-12 math books to be in line with computational
processing.
It would be great. Imagine dad at the dining room table trying to explain to
little Johnny... 100 Cheerios are here, and if we add another, we have -100
Cheerios.
Sorry, I couldn't help myself.

With respect to such problems, I spent the usual amount of time in college
studying various complexities in arithmetic on computers. Yet, I have only
seen problems crop up three times over 10 years of full-time programming
experience. For 'most' programmers, the complexities of computational
arithmetic don't impact us on a daily basis. And, when these problems occur,
they often result in obviously wrong results (as opposed to believable
results).

Thus, if one were to study an aspect of this problem, I would think it would
be better to focus on a higher-impact issue (not that arithmetic doesn't
have worth).




On Tue, Nov 24, 2009 at 4:35 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:


 On Nov 24, 2009, at 9:35 PM, Derek M Jones wrote:

  Brad,

  like i said, i'm not sure intuition exists

 What's quite certain is that *claims* of intuitiveness exist.


 But do they only exist as a reason for justifying the use of
 one particular language?


 I don't think so.  For one thing, in the recent thread that got me
 started on this, other people were recommending a whole range of
 programming languages (Java, C#, Python, AWK, even PERL).  For
 another, when people try to justify one particular language, there
 are lots of other reasons they can and usually do oofer.

 I believe that when people say things like imperative programming
 is more intuitive than [whatever] they mean _at least_ the
 following things:
  1 I learned imperative programming with only a modest amount
   of trouble or no trouble at all.
  2 I was able to transfer what I learned to other imperative
   languages with little or no trouble.
  3 I find [whatever] much harder to understand.
  4 I know a lot of other people who feel the same.
  5 I do NOT know many people (or even any at all) who came from
   [whatever] to imperative programming and found it hard to
   understand.
  6 The experienced difficulty of [whatever] is not a defect in
   us or our education but a defect in [whatever].

 For the speakers, 1-5 are facts and 6 is felt to be justified by
 those facts.  The possibility of selection bias (people who would
 have been more comfortable learning Haskell or Miranda first
 very seldom get the chance, and leave the field, so we never get
 to hear their opinions about intuition and programming languages)
 is rarely considered.


  How could students tell the difference between having problems
 programming and having problems using a particular kind of
 language?  Perhaps this distinction is not important, they
 could simply try another approach and see if it makes any
 difference.


 That's indeed an operational way of telling the difference.

 That suggestion of mine was not just a half-baked idea, it was
 just set out in the sun for a minute or two.  It would not be
 easy to set up or administer.

 By the way, there's a service paper here for people who want to
 be surveyors.  It covers trigonometry, statistics, a couple of
 other topics, and some programming.  The surveying department
 insisted that the language taught be Visual Basic (more precisely,
 Visual Basic for Applications, inside the Excel spreadsheet).
 I was the only computer science lecturer willing to be involved
 with it.  I only have five one-hour lectures to teach the
 elements of programming.

 I *KNOW* the thing is impossible.

 I spend one lecture explaining that and why computer arithmetic
 does not behave the way they expect arithmetic to behave, for
 example that you can find a number X such that X + 1  X
 and numbers X, Y, Z such that X+(Y+Z) differs from (X+Y)+Z
 and numbers X Y both different from zero such that X*Y = 0.
 I spend half of another lecture telling them that they need to
 write down what their functions are supposed to do and to TEST
 their functions to make sure that they do.

 When you stop and think about it, computer arithmetic is
 *stunningly* unintuitive, IF your intution is based on the
 laws of whole numbers and fractions learned at school and the
 laws of the real and complex numbers learned in first year
 mathematics at university.

 I wonder if the question of intuitiveness could be studied
 at the level of arithmetic rather than programming as a whole.
 For example, Smalltalk counts as OO-imperative, but has
 bignum and ratio arithmetic built in and standard:  6/4 gives
 the answer 3/2, not 1.5.  Java _has_ bignum arithmetic, but
 doesn't let you use ordinary notation with it.  And so on.




Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Raoul Duke
 Derek M Jones writes:
 I'm sure Lindsay could design a language, but it might only be
 an imagined intuitive-to-him language.

apologies if i misunderstand, but if you are saying that the devil is
in the details, i fully agree, and that is what i mean by logic being
non-intuitive, and similarly programming. in other words, having a
DWIMNWIS language is not easy.

sincerely.


Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Derek M Jones

Raoul,


I'm sure Lindsay could design a language, but it might only be
an imagined intuitive-to-him language.


apologies if i misunderstand, but if you are saying that the devil is
in the details, i fully agree, and that is what i mean by logic being
non-intuitive, and similarly programming. in other words, having a
DWIMNWIS language is not easy.


What I am trying to say is that Lindsay might only design a language
that is intuitive to his declarative memory.  When he gets to
use it in practice he might not find it intuitive at all (ie, his
procedural memory might not get on with it at all).

--
Derek M. Jones tel: +44 (0) 1252 520 667
Knowledge Software Ltd mailto:de...@knosof.co.uk
Source code analysis   http://www.knosof.co.uk


Re: Intuitiveness of programming languages/paradigms

2009-11-24 Thread Raoul Duke
On Tue, Nov 24, 2009 at 5:08 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:
 a different syntax, and indeed Lisp-Flavored Erlang exists.

+1 for mentioning lfe; i wish somebody would do something similar for
ada some day.


Re: Intuitiveness of programming languages/paradigms (fwd)

2009-11-23 Thread Alan Blackwell
(forwarding my earlier direct reply to Richard)

[This is] A regularly recurring question, over the years of PPIG!

This has been the starting point for a number of PhDs, but a religious  
war seldom makes a good PhD. I'm not aware that the results have ever  
found anything very conclusive. Some of the students involved may  
still be on the list, and can tell you what they ultimately found.

It seems unlikely that the people shouting on your list would respond  
to any common sense, but here are the questions I tend to ask new PhD  
students:

1) What is the measure of 'intuitive' that you propose to use?

2) Do you believe that all people are the same? If not, who are you  
trying to help?

3) What do you want people to be able to do with a programming language?

Depending on their answers, I might do something like refer them to  
John Pane's work with Brad Myers on 'Natural Programming' (which was  
focused on understanding childhood models), or just tell them the old  
joke that I saw posted during a religious war on a Python list that  
'ML is the language they use to mop up the excess brain capacity of  
first year Cambridge students' (or same joke, for MIT students using  
Scheme).

I'm not answering you from the email account that has the list  
subscription - feel free to forward if you like.

Alan

On 23 Nov 2009, at 04:23, Richard O'Keefe wrote:

 Does anyone know whether there's any empirical evidence either way
 for the hypothesis
   programmers find a programming language or paradigm
   intuitive to the degree that it resembles what they
   learned first
 ?

 Another mailing list I'm on just had a bunch of people shouting
 that imperative programming was obviously more intuitive than
 functional or logic programming.  Since they didn't seem to be
 familiar with the fairly wide gap between a typical first-year
 model of how an imperative language and what _really_ happens
 (e.g., apparently non-interfering loads and stores can be
 reordered both by the compiler and the hardware, loads from main
 memory can be 100 times slower than loads from L1 cache, c),
 I found myself wondering if what they _really_ meant is I learned
 a simple model early on and find anything else different.

 There's evidence that people find languages like Scheme and Erlang
 (and even Prolog) easier if they haven't done conventional
 imperative or OO programming before, but that's not to say that
 they wouldn't have found those approaches easier still.



- --
Alan Blackwell
Reader in Interdisciplinary Design, University of Cambridge
Further details from www.cl.cam.ac.uk/~afb21/






--- End of Forwarded Message


-- 
Alan Blackwell
Reader in Interdisciplinary Design, University of Cambridge
Further details from www.cl.cam.ac.uk/~afb21/



Re: Intuitiveness of programming languages/paradigms

2009-11-23 Thread Richard O'Keefe


On Nov 24, 2009, at 3:18 AM, keith gallagher wrote:

like i said, i'm not sure intuition exists


What's quite certain is that *claims* of intuitiveness exist.

I think it's possible to operationalise the concept.
Given languages of similar syntactic complexity,
which of several paradigms is easier to learn to a specified criterion?

William Billingsley's anecdote suggests (what we should by now
expect): a heterogeneous population, some of whom find one
approach easier, and some of whom find another.  From a teaching
point of view, would it be possible to offer two introductory
streams, one functional and one imperative, and let students
choose and/or transfer early?



Intuitiveness of programming languages/paradigms

2009-11-22 Thread Richard O'Keefe

Does anyone know whether there's any empirical evidence either way
for the hypothesis
programmers find a programming language or paradigm
intuitive to the degree that it resembles what they
learned first
?

Another mailing list I'm on just had a bunch of people shouting
that imperative programming was obviously more intuitive than
functional or logic programming.  Since they didn't seem to be
familiar with the fairly wide gap between a typical first-year
model of how an imperative language and what _really_ happens
(e.g., apparently non-interfering loads and stores can be
reordered both by the compiler and the hardware, loads from main
memory can be 100 times slower than loads from L1 cache, c),
I found myself wondering if what they _really_ meant is I learned
a simple model early on and find anything else different.

There's evidence that people find languages like Scheme and Erlang
(and even Prolog) easier if they haven't done conventional
imperative or OO programming before, but that's not to say that
they wouldn't have found those approaches easier still.