caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Teller <David.Teller@univ-orleans.fr>
To: OCaml <caml-list@inria.fr>
Subject: Teaching bottomline, part 3: what should improve.
Date: Tue, 22 May 2007 18:10:23 -0400	[thread overview]
Message-ID: <1179871823.6966.78.camel@Blefuscu> (raw)

Third and (probably) last part of my Teaching bottomline. I hope some of
you find this useful.


Let's start by problems I didn't cause.

= Not my fault =

== Environment ==

* OCamlWinPlus, in its current incarnation, is just awful. To improve
it, one would need to fix the bugx, make it possible to remember the
list of modules loaded, link it to the documentation, etc.


* Camelia IDE is simple and good but difficult to install, as it
requires Cygwin. It lacks project management, though -- and, now,
ocamlbuild support. I believe that it could draw some inspiration from
Dr.Java.


* Students just can't install LablGtk, LablGl, Camlimage... by
themselves, nor would I expect them to. A nice, centralised, installer,
would be nice.


* Building projects is just too hard. I hope ocamlbuild will solve this.


* It seems that Graphics doesn't work with Cygwin, hence with Camelia
for Windows. Which is bad, as they seem to enjoy both Graphics and
Camelia. What prevents Graphics in Cygwin+X ?


== Error messages ==

* Error messages of the type system are somewhat obscure. The reflex of
many students is "OCaml wants it to be of type XXX", rather than "there
is a contradiction in what I wrote". It would be nice if there was a way
to ask OCaml to display additional information on type errors. Say
something like, whenever typing of an expression fails, restarting the
type algorithm but printing out the various unifications as they take
place.


== Documentation ==

* Documentation of LablTk is non-existent. I'm thinking about taking a
student to write a more OCaml-ish layer on top of LablTk but I don't
know if/when this will happen.


* Type 'option' doesn't appear in the list of types of the
documentation. Nor do 'Some' and 'None' appear in the list of values.


* A nice *beginner-oriented* tutorial is really missing for students who
failed to pay attention to the beginning of the lecture. Something more
applied than _Developing applications with OCaml_ and less technical
than http://ocaml-tutorial.org . Say, leading a beginner to define a
Connect 4 game. I'm willing to participate into writing this, but not
alone. I might launch a thread on this subject on the ML.


= My fault =

* That's not OCaml-specific but there must be some construction better
suited than "for" or "while" to write loops without having to handcode a
recursive loops. Right now, I can't think of anything better than a
"hidden" Y combinator, but there must be something.

* Arrays of arrays (of arrays...) are a bit obscure for students,
although they're getting better at it.

* Some students rely too much on references.

* The usual note-taking/attention deficit/motivation deficit problems.

* Anonymous functions are still beyond most of them.





-- 
David Teller ------------------------------------------
Security of Distributed Systems -----------------------
-- http://www.univ-orleans.fr/lifo/Members/David.Teller
----- Laboratoire d'Informatique Fondamentale d'Orleans


             reply	other threads:[~2007-05-22 22:10 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-22 22:10 David Teller [this message]
2007-05-22 22:22 ` [Caml-list] " William D. Neumann
2007-05-23 13:07   ` David Teller
2007-05-22 22:26 ` Erik de Castro Lopo
2007-05-22 23:16 ` skaller
2007-05-23  2:46   ` David Thomas
2007-05-23  9:19   ` Vincent Hanquez
2007-05-23 12:49     ` Brian Hurt
2007-05-23 13:36       ` Gerd Stolpmann
2007-05-23 14:06         ` skaller
2007-05-23 14:54       ` Florian Hars
2007-05-23 15:11         ` Brian Hurt
2007-05-23 21:48       ` Vincent Hanquez
2007-05-24  8:04         ` Markus E.L.
2007-05-24  8:32           ` Vincent Hanquez
2007-05-24  9:51             ` skaller
2007-05-24 11:22               ` Vincent Hanquez
2007-05-23 13:55   ` David Teller
2007-05-22 23:19 ` skaller
2007-05-23 10:41   ` Richard Jones
2007-05-23 13:04     ` David Teller
2007-05-24 13:51       ` Richard Jones
2007-05-24 14:00         ` Robert Fischer
2007-05-24 14:00       ` Jon Harrop
2007-05-24 14:20         ` Robert Fischer
2007-05-24 14:34         ` David Teller
2007-05-24 14:21       ` skaller
2007-05-22 23:39 ` Jon Harrop
2007-05-23 18:54   ` Richard Jones
2007-05-23 19:27     ` Robert C Fischer
2007-05-23 19:34       ` Brian Hurt
2007-05-23 19:54         ` Robert Fischer
2007-05-23 21:46       ` Jon Harrop
2007-05-23 22:14         ` Jacques Garrigue
2007-05-24  1:38           ` Revolution Jon Harrop
2007-05-24  2:40             ` [Caml-list] Revolution skaller
2007-05-24  3:21             ` Chris King
2007-05-24 14:24               ` David Teller
2007-05-24 13:40         ` [Caml-list] Teaching bottomline, part 3: what should improve Brian Hurt
2007-05-23 19:29     ` Jon Harrop
2007-05-23 20:20   ` David Teller
2007-05-24 14:18     ` Jon Harrop
2007-05-24 14:23     ` skaller
     [not found] <20070522234715.0BCB2BC74@yquem.inria.fr>
2007-05-23  5:21 ` Dan Grossman

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=1179871823.6966.78.camel@Blefuscu \
    --to=david.teller@univ-orleans.fr \
    --cc=caml-list@inria.fr \
    /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;
as well as URLs for NNTP newsgroup(s).