To back up Matthias, a rough measure:
Danny Yoo rewrote the Google Android platform's lunar lander program
in world. Though not identical (our Android support is obviously not
yet as complete), the difference was roughly 150 lines (Scheme) vs
1058 lines (Java).
Of course, that makes the Java program much more impressive to family
and friends, so it is clearly superior. (-:
Shriram
On Thu, Feb 5, 2009 at 2:09 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>>> It's not only possible, it is an order-of-magnitude easier in HtDP than in
> any Java text. Our "hello world" program is a rocket lifting off, and it all
> follows from the design recipe and images as values, plus 7th grade math. --
> Matthias
>>>>>>> On Feb 5, 2009, at 2:01 PM, Arthur Nunes-Harwit wrote:
>>> Hi,
>>>> I see a lot of projects that are video games. Such projects ultimately
>> rely input and output, or side effects (perhaps disguised via monads). The
>> coding style for much of HtDP is purely functional. What is the pedagogical
>> impact? Do the students notice? (As a student, I didn't notice right away
>> that read was different from square.) Is there any discussion of "special"
>> functions or objects?
>>>> What is the impact of other languages such as Java where the assumption
>> [built into the language libraries] is that everything is done using side
>> effects? To what extent is it still possible to take a mostly functional
>> approach?
>>>> Thanks.
>>>> -Arthur
>>>>>>> In any case, can anyone share any specific ideas for a "large" project
>>>>>>>> that worked well in your courses?
>>>>>> (Wrong mailing list probably, but here we go)
>>>>>> Freshman games only:
>>> single machine games:
>>> -- 'space war' (neu)
>>> -- 'airplane fire fighting' (wpi)
>>> -- 'worm' (neu)
>>> -- 'little tetris' (neu)
>>> distributed games:
>>> -- 'hangman' (neu)
>>> -- 'chat noir' (chicago)
>>>>>> All of them can be done as described:
>>> -- plain recursive functions (lists + structs)
>>> -- revise to criticism
>>> -- higher-order function revision (looks like applicative class-based
>>> programming, if done properly)
>>> -- state-based revisions (looks like imperative class-based programming,
>>> if done properly)
>>>>>> You can, if you so wish, re-assign the same problem in Java in the second
>>> semester. It is an eye-popping experience for most of them to see the DR
>>> work out perfectly for a Java-based world.
>>>>>> -- Matthias
>>>>>>>>>>>> _________________________________________________
>>> For list-related administrative tasks:
>>>http://list.cs.brown.edu/mailman/listinfo/plt-scheme>> _________________________________________________
> PLT Educators mailing list
>plt-edu at list.cs.brown.edu>http://list.cs.brown.edu/mailman/listinfo/plt-edu>