Instead of deciding between Python or Lisp for a programming intro course...What about an intro course that uses *BOTH*? Good idea?

Rustom Mody rustompmody at gmail.com
Tue May 12 05:16:16 EDT 2015


On Tuesday, May 12, 2015 at 12:27:44 PM UTC+5:30, Chris Angelico wrote:
> On Tue, May 12, 2015 at 4:42 PM, Rustom Mody  wrote:
> > And related to that (and one reason a pure functional language is good for
> > pedagogy): NO PRINT statement
> > It may seem trivial but beginning students have a real hard writing clean
> > structured code.  Tabooing prints helps get there faster
> > And working in the interpreter makes a print-taboo a viable option
> 
> I firmly disagree.

Yes we know that!

As it happens you also disagree with ACM's latest CS curriculum:
https://www.acm.org/education/CS2013-final-report.pdf [pg 158]
Absolute basics of CS include functional programming; among which first point 
is 'effect-free programming'
[Note there is no mention or commitment to fancy functional programming 
*languages*, just the principles]

> Interactive work is well and good, but print (or
> equivalent - console.log, log.info, werror, etc etc) is extremely
> useful for learning about a larger application.

You are talking phd level (or maybe graduate level)
I am talking kindergarten

> You can play with things at the terminal,

Very important to play before you grow up

> but how can you find out exactly what happens
> when you click this button? Ensuring that your application can be
> imported, executed, and manipulated interactively, all without
> breaking its primary purpose, is a LOT of extra work, and not
> something I'd recommend to beginners. So learn about print, learn
> about how to get info out of a running program. You'll be the better
> programmer for it.

Maybe you should read up on Bloom's taxonomy
[ACM curriculum follows this but simplified from 5 to 3 levels -- familiarity,
usage, assessment]

In particular wrt print: You are not distinguishing
- learning the 'what' of print (familiarity)
from
- learning the how (usage)
and most important the "when not" (assessment)




More information about the Python-list mailing list