* Teaching bottomline, part 2: what went right.
@ 2007-05-22 22:10 David Teller
2007-05-23 7:44 ` [Caml-list] " Hendrik Tews
0 siblings, 1 reply; 3+ messages in thread
From: David Teller @ 2007-05-22 22:10 UTC (permalink / raw)
To: OCaml
A number of things went well, sometimes impressively.
* A number of students seem to get the hang of functional programming
(programming without side effects, returning closures, functions as
first-class citizens, recursive loops...)
* Modules seem generally rather well understood.
* The students enjoyed Graphics immensely.
* When asking students to write a specific function, it's much easier to
show examples with OCaml than with, say, Java. Consequently, exercices
are generally better understood.
* Some of the students have started answering some mathematical
questions with OCaml programs.
* One of my students did manage to write a function with type 'a -> 'b
without using Obj or Marshal. Others managed to explain me (almost)
correctly why this shouldn't be possible.
* The students seem to have understood exceptions, as well as file
management. Two things they just couldn't do at all in Java.
* Most students seem to have no problems using references when they need
them.
* I believe that students actually understand better Java now that they
have seen something a bit more abstract. Plus they had much more fun.
* #trace is good. Very good.
--
David Teller ------------------------------------------
Security of Distributed Systems -----------------------
-- http://www.univ-orleans.fr/lifo/Members/David.Teller
----- Laboratoire d'Informatique Fondamentale d'Orleans
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Teaching bottomline, part 2: what went right.
2007-05-22 22:10 Teaching bottomline, part 2: what went right David Teller
@ 2007-05-23 7:44 ` Hendrik Tews
2007-05-23 12:54 ` David Teller
0 siblings, 1 reply; 3+ messages in thread
From: Hendrik Tews @ 2007-05-23 7:44 UTC (permalink / raw)
To: caml-list
David Teller <David.Teller@univ-orleans.fr> writes:
* One of my students did manage to write a function with type 'a -> 'b
without using Obj or Marshal.
It's easy if the function doesn't have to terminate:
let f x = raise Not_found;;
Does the students function terminate without exception or other
kinds of runtime errors?
Bye,
Hendrik
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Teaching bottomline, part 2: what went right.
2007-05-23 7:44 ` [Caml-list] " Hendrik Tews
@ 2007-05-23 12:54 ` David Teller
0 siblings, 0 replies; 3+ messages in thread
From: David Teller @ 2007-05-23 12:54 UTC (permalink / raw)
To: Hendrik Tews; +Cc: caml-list
No, it fails at runtime, of course:
let f _ = List.hd []
I'm just happy that that student managed to produce such a function.
Remember that they've had only one term of OCaml/functional programming,
no type theory, no lambda-calculus, no semantics of programming
languages, etc.
Cheers,
David
On Wed, 2007-05-23 at 09:44 +0200, Hendrik Tews wrote:
> David Teller <David.Teller@univ-orleans.fr> writes:
>
> * One of my students did manage to write a function with type 'a -> 'b
> without using Obj or Marshal.
>
> It's easy if the function doesn't have to terminate:
>
> let f x = raise Not_found;;
>
> Does the students function terminate without exception or other
> kinds of runtime errors?
>
> Bye,
>
> Hendrik
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-05-24 13:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-22 22:10 Teaching bottomline, part 2: what went right David Teller
2007-05-23 7:44 ` [Caml-list] " Hendrik Tews
2007-05-23 12:54 ` David Teller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox