RE: Choice of introductory programming language to a freshman class

2009-04-07 Thread Russel Winder
Enda,

On Tue, 2009-04-07 at 09:15 +0100, Enda Dunican wrote:
 I was under the impression that the idea behind a discussion list
 was to allow people to express their opinions. I simply expressed an
 opinion. One could accuse your email of attempting to stifle freedom
 of expression, but I'd never agree with such an accusation!

I am clearly feeling grumpy this morning, and the pain killers are not
working which just makes things worse.  Sorry.

-- 
Russel.

Dr Russel Winder  t: +44 20 7585 2200  voip:  
sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077  xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: http://www.russel.org.uk/


signature.asc
Description: This is a digitally signed message part


Models of Parallelism

2011-02-16 Thread Russel Winder
Prompted by various discussions elsewhere, I am on the search for recent
experimental results and/or people doing or about to do experiments.
The questions all relate to the models of parallel software:
shared-memory multithreading, Actor Model, Dataflow Model, Communicating
Sequential Processes (CSP), data parallelism.

Question 1 is:  is synchronous message passing easier for programmers to
work with than asynchronous message passing.

Question 2 is:  are the case classes of Actor Model easier for
programmers to work with than the select statement of Dataflow Model and
CSP.

There are more but those are the two biggies.

There is a lot of people who know precious little about psychology using
advocacy research out there building up various known facts about what
is and is not better from a cognitive perspective.  Some of them base
this on observed anecdotal evidence which gives it some legitimacy, some
of them are peddling their own beliefs.

So real experimental evidence from people who know what they are doing
would be most welcome.

Thanks.
 
-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part

-- 
The Open University is incorporated by Royal Charter (RC 000391), an exempt 
charity in England  Wales and a charity registered in Scotland (SC 038302).


RE: Call for advice, and possible case study?

2011-06-10 Thread Russel Winder
On Fri, 2011-06-10 at 19:47 +0100, Stasha Lauria wrote:
 I fully agree on both:
 
 1-  Don't teach Java.
 
 2-  before learning _Java_, it pays to learn something about _programming_, 
 and that's definitely easier using Python than using Java.
 
 This is based on my personal experience of teaching programming to First year 
 undergraduate students. 

Graham Roberts at UCL is using Groovy and Sarah Mount at Wolverhampton
and James Shuttleworth at Coventry are using Python to great effect.
The folk at Leeds are using Python also I believe.

The big problem though is the the issue of type.   Believers in static
strong typing will object to the use of languages that work with dynamic
typing even though learners seem to find it easier to do things without
having to worry about types in the first instance.  I guess someone
somewhere needs to do some experimentation rather than there just be
anecdotal evidence and advocacy research?

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part

-- 
The Open University is incorporated by Royal Charter (RC 000391), an exempt 
charity in England  Wales and a charity registered in Scotland (SC 038302).


Re: Call for advice, and possible case study?

2011-06-13 Thread Russel Winder
On Mon, 2011-06-13 at 14:47 +1200, Peter Gutmann wrote:
 Richard O'Keefe o...@cs.otago.ac.nz writes:
 
 Well in that case, perhaps the language to start with should be Haskell...
 
 Teaching programming by starting people on Haskell is like teaching ESOL
 (English for non-English speakers) by starting them on Klingon [0].

We tried using Miranda (a precursor to Haskell) followed by C++ in the
late 1980s at UCL.  In many ways it was very successful but as will not
surprise anyone here, I think this was mainly due to the energy and
enthusiasm of the teaching.

In long distance hindsight, the main problems were the emphasis on
mathematically related problems, and the REPL.  I remain totally
unconvinced by the emphasis on using REPLs in even the most recent books
on teaching programming languages, cf. Haskell, Scala, and some Python
books.  File editor + execution systems, such as Python's IDLE or
Groovy's GroovyConsole seem to me to be far better tools for teaching --
Emacs doesn't count as lightweight, and IDEs such as Eclipse and
IntelliJ IDEA certainly do not.  I am not sure what has happened to
BlueJ recently.  

If I were still involved in introductory programming teaching (as
opposed to training/education of programming professionals which I do
quite a lot of now), I would be thinking of replacing Java with either
Scala or Groovy depending on whether static typing or dynamic typing was
the approach the rest of the people involved in the teaching preferred.

The Java Platform is a multi language platform, Java, Scala, and Groovy
being the main languages with Clojure in a group on its own following,
with Jython, JRuby, BeanShell, etc. in a third group following that.
The libraries that come as standard, and that which can be obtained from
the Maven repository are the true powerhouse of the Java Platform, not
Java per se.  Using Groovy or Scala to teach how to use the Java
Platform seems entirely natural to me since both remove all the ceremony
that the Java programming language continues to suffer.  And Java 7 will
not fix that.  Nor will Java 8.

And in the modern era concurrency and parallelism should not be a
specialist final year option, it should simply crop up naturally as
integral part of introducing people to programming.  Groovy+GPars and
Scala allow for this, Java does not.

 Peter.
 
 [0] For those unfamiliar with it, it's been specifically designed to be unlike
 any other language spoken on earth.
 

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part

-- 
The Open University is incorporated by Royal Charter (RC 000391), an exempt 
charity in England  Wales and a charity registered in Scotland (SC 038302).