[plt-scheme] HTDP: Testing programs

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Aug 27 17:28:12 EDT 2008

In principle, I agree with you. Sadly I suspect it's beyond  
beginners. -- Matthias





On Aug 27, 2008, at 4:51 PM, Jos Koot wrote:

>
> ----- Original Message ----- From: "Matthias Felleisen"  
> <matthias at ccs.neu.edu>
> To: "Shriram Krishnamurthi" <sk at cs.brown.edu>
> Cc: "PLT List" <plt-scheme at list.cs.brown.edu>
> Sent: Wednesday, August 27, 2008 3:18 PM
> Subject: Re: [plt-scheme] HTDP: Testing programs
>
>
>>
>> Shriram's saying that the design recipe demands the creation of   
>> examples *before* you create the function. The idea is that this   
>> scales up to larger development efforts, too.
>>
>> In principle, a design looks like this:
>>
>> ;; f->c : Number -> Number
>> ;; convert a fahrenheit temperature to a celsius temperature
>
> Nitting a little bit I say that in most systems of dimensional  
> units a temperature is not a number. It is a number times a unit of  
> temperature relative to an offset temperature.
> f -> c : Real Number -> Real Number
> convert real number f to real number c such that f degrees  
> Farhenheit = c degrees Celcius,
> where "=" is exact when f is exact and "=" is approximative when f  
> is inexact.
>
> I say this because I am a little bit concerned about the many  
> examples in books about mathematics and programming that do not  
> consistently apply the theory of dimensions.
> Imho it is wrong to say that the surface of a square with side 10  
> is 100. This can only be correct in a system of units in which  
> lengths have no dimensional unit, but I never have seen such a  
> system (on the contrary, the *simplest* system of units I know of,  
> has one dimensional unit, namely for length)
>
> This is important for progarammers too. We may *represent* a  
> temperature by a number with respect to a chosen scale of units but  
> while programming we should be aware of the fact that the  
> representation is not the same as the represented quantity.
> Jos
>
>
>>
>> (check-expect (f->c 32) 0)
>> (check-expect (f->c 212) 100)
>>
>> (define (f->c f-temp)
>>  (cond
>>    [(= f-temp 32) 0]
>>    [(= f-temp 212) 100]
>>    [else f-temp]))
>>
>> ;; ---
>>
>> Over the years, HtDP and drscheme have gotten a bit out of hand.  
>> One  day we'll catch up. -- Matthias
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Aug 27, 2008, at 7:19 AM, Shriram Krishnamurthi wrote:
>>
>>> The intent is that you write test cases *before* you
>>> write your functions.  If you had done this, and your
>>> test cases covered your program, DrScheme would
>>> not complain at you.  Bad boy! (-:
>>>
>>> Shriram
>>>
>>> On Tue, Aug 26, 2008 at 11:39 PM, Grant Rettke <grettke at acm.org>   
>>> wrote:
>>>> Hi folks,
>>>>
>>>> In HTDP beginner language on problem 2.2.1, when I evaluate it,
>>>> DrScheme complains that "This program should be tested".
>>>>
>>>> is the intention that students start testing immediately, or we ill
>>>> add tests later on?
>>>>
>>>> I used check-expect for now.
>>>>
>>>> Best wishes,
>>>>
>>>> Grant
>>>> _________________________________________________
>>>>  For list-related administrative tasks:
>>>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>>
>>> _________________________________________________
>>>   For list-related administrative tasks:
>>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>



Posted on the users mailing list.