From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id OAA28112; Wed, 2 Jun 2004 14:43:50 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id OAA27857 for ; Wed, 2 Jun 2004 14:43:49 +0200 (MET DST) Received: from mailf1.uni-siegen.de (mailf1.uni-siegen.de [141.99.11.41]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i52ChmSH007601 for ; Wed, 2 Jun 2004 14:43:48 +0200 Received: from mail.uni-siegen.de ([141.99.11.42]) by mailf1.uni-siegen.de with Microsoft SMTPSVC(5.0.2195.6713); Wed, 2 Jun 2004 14:43:47 +0200 Received: from [141.99.131.109] ([141.99.131.109]) by mail.uni-siegen.de with Microsoft SMTPSVC(5.0.2195.6713); Wed, 2 Jun 2004 14:43:47 +0200 Mime-Version: 1.0 (Apple Message framework v618) In-Reply-To: <40A8A1F6.3090604@di.ubi.pt> References: <40A8A1F6.3090604@di.ubi.pt> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: <7DD53720-B492-11D8-86A1-000A95C6FE96@mathematik.uni-siegen.de> Content-Transfer-Encoding: quoted-printable From: Holger Schulz Subject: Re: [Caml-list] Teaching OCaml Date: Wed, 2 Jun 2004 14:43:47 +0200 To: caml-list@inria.fr, =?ISO-8859-1?Q?Sim=E3o_Melo_de_Sousa?= X-Mailer: Apple Mail (2.618) X-OriginalArrivalTime: 02 Jun 2004 12:43:47.0438 (UTC) FILETIME=[3F6DD8E0:01C4489F] X-Miltered: at concorde with ID 40BDCB84.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; schulz:99 schulz:99 caml-list:01 haskell:01 checkers:01 wether:01 ocaml:01 ocaml:01 schrieb:01 syntax:02 linking:02 objects:02 objects:02 identifier:03 interpreter:03 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Am 17.05.2004 um 13:28 schrieb Sim=E3o Melo de Sousa: > Because I defend that functional programming (Haskell, > etc... but Ocaml in particular) has to be teach among other > "classical" paradigms, I have to prepare a talk about the relevance of > the functional programming paradigm in general and OCaml in > particular. Well perhaps some of the following are useful for you. 1. Functional languages usually come with an interpreter running a=20 read-evaluate-print loop. That makes it easy to try examples very=20 directly, i.e. without compiling, linking and stuff. The interpreter=20 can easily be used for live presentations of examples. 2. In OCaml you have a (strong) type system. That makes the student=20 think about the types of the objects they deal with. The type checkers=20= gives an immediate response, wether they are right or not. 3. In OCaml you have functional, imperative and object orientated=20 elements. Thus you can learn three paradigms within a unified syntax. 4. The imperative elements of OCaml fit into the type system, i.e. you=20= have a type for references. That makes you learn the difference between=20= a name (or identifier) and a reference (or allocated memory). That's=20 better than talking of "variables" without knowing what could be ment.=20= Moreover with ":=3D" or rather "<-" you have a meaningful denotation for=20= the assignment, you can learn the difference between assigment and=20 declaration. 4.' The intergration of objects and functional elements show that the=20 implementation of methods in object orientation need not to be done=20 (totally) functionally. 5. The behavior of functional languages can easily be described by=20 semantic models using enviromnents only. 6. Usually students have varying levels of programming experience. Most=20= experience comes from imperative and object orientated programming=20 languages. The levels are equalizied a bit when using a programmnig=20 language, which is not known by almost all students. And you have a=20 chance to bring them away from corrupted programmnig styles, they=20 learned elsewhere, on using a new language. 7. Functional programming makes it easy to implement mathematical=20 definition. That can help unterstanding theoretical aspects. Some argument are not on teaching OCaml but on teaching OCaml as the=20 first language. Our students learn Java as their first languages, I=20 don't think they learn to much on programming principles. And I think=20 object orientation is hard to understand in the first year. hs ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners