From: Holger Schulz <schulz@mathematik.uni-siegen.de>
To: caml-list@inria.fr, "Simão Melo de Sousa" <desousa@di.ubi.pt>
Subject: Re: [Caml-list] Teaching OCaml
Date: Wed, 2 Jun 2004 14:43:47 +0200 [thread overview]
Message-ID: <7DD53720-B492-11D8-86A1-000A95C6FE96@mathematik.uni-siegen.de> (raw)
In-Reply-To: <40A8A1F6.3090604@di.ubi.pt>
Am 17.05.2004 um 13:28 schrieb Simão 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
read-evaluate-print loop. That makes it easy to try examples very
directly, i.e. without compiling, linking and stuff. The interpreter
can easily be used for live presentations of examples.
2. In OCaml you have a (strong) type system. That makes the student
think about the types of the objects they deal with. The type checkers
gives an immediate response, wether they are right or not.
3. In OCaml you have functional, imperative and object orientated
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
have a type for references. That makes you learn the difference between
a name (or identifier) and a reference (or allocated memory). That's
better than talking of "variables" without knowing what could be ment.
Moreover with ":=" or rather "<-" you have a meaningful denotation for
the assignment, you can learn the difference between assigment and
declaration.
4.' The intergration of objects and functional elements show that the
implementation of methods in object orientation need not to be done
(totally) functionally.
5. The behavior of functional languages can easily be described by
semantic models using enviromnents only.
6. Usually students have varying levels of programming experience. Most
experience comes from imperative and object orientated programming
languages. The levels are equalizied a bit when using a programmnig
language, which is not known by almost all students. And you have a
chance to bring them away from corrupted programmnig styles, they
learned elsewhere, on using a new language.
7. Functional programming makes it easy to implement mathematical
definition. That can help unterstanding theoretical aspects.
Some argument are not on teaching OCaml but on teaching OCaml as the
first language. Our students learn Java as their first languages, I
don't think they learn to much on programming principles. And I think
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
next prev parent reply other threads:[~2004-06-02 12:43 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-17 11:28 Simão Melo de Sousa
2004-05-17 17:27 ` Michael Hamburg
2004-05-17 17:40 ` David Brown
2004-05-18 8:52 ` Richard Jones
2004-06-02 17:41 ` Holger Schulz
2004-05-17 21:12 ` Evan Martin
2004-06-02 12:43 ` Holger Schulz [this message]
2004-06-02 13:06 ` Nicolas Cannasse
2004-06-02 14:09 ` [Caml-list] Making plugins with ocaml Magnus Jonsson
[not found] <16574.54515.560699.848619@gargle.gargle.HOWL>
2004-06-03 14:27 ` [Caml-list] Teaching OCaml Brian Hurt
2014-11-25 16:03 [Caml-list] teaching OCaml robert.muller2
2014-11-25 16:33 ` John Whitington
[not found] ` <CAKmYinnv1arGZGQ2s0O7K2u=hr=oieiDXzR8YU_habM4+bUdJA@mail.gmail.com>
[not found] ` <5474C87D.4030307@coherentgraphics.co.uk>
2014-11-25 18:21 ` John Whitington
2014-11-26 14:26 ` Drup
2014-11-26 16:34 ` Xavier Leroy
2014-11-25 19:40 ` Daniel Bünzli
2014-11-26 11:37 ` Kenichi Asai
2014-11-26 18:12 ` Yaron Minsky
2014-11-26 22:09 ` Marek Kubica
2014-11-26 12:16 ` Jonathan Kimmitt
2014-12-16 19:17 ` Jon Harrop
2014-11-25 16:43 Arthur Charguéraud
2014-11-25 17:27 ` Alain Frisch
2014-11-25 17:33 ` Arthur Charguéraud
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7DD53720-B492-11D8-86A1-000A95C6FE96@mathematik.uni-siegen.de \
--to=schulz@mathematik.uni-siegen.de \
--cc=caml-list@inria.fr \
--cc=desousa@di.ubi.pt \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox