Browse thread
Teaching ocaml programming
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2008-09-26 (13:12) |
From: | Hugo Ferreira <hmf@i...> |
Subject: | Re: [Caml-list] Teaching ocaml programming |
Hello, Andrej Bauer wrote: > Once again I am teaching a course on theory of programming languages in > which we will use ocaml to implement mini-languages. And once again I > face the question: which programming environment should we use? > > I have so far tried to use (under Windows) > 1. cygwin + ocaml + XEmacs > 2. Eclipse + OcaIDE > > The second solution worked better than the first, for the simple reason > that XEmacs is a complete mystery to students. They really, really hate > it. But even with the second soltion we had a lot of trouble, because > Eclipse is really complicated, and OcaIDE is sort of experimental and > not so good under Windows, so the whole setup was confusing and fragile. > I am a satisfied user of Eclipse + OcaIDE on Ubuntu (64bit). Considering I am (still) a "newbie" in regards to Ocaml and functional programming in general, and have a allergy towards emacs, vi and friends, I would urge you to reconsider OcaIDE + Ubuntu. To make things simpler you may: 0. Use ocamlbuild projects only. 1. Prepare ocamlbuild files (tags and myocamlbuild) if necessary. 2. Provide a workspace with an example project ready for compilation. 3. Let the students use only one project with various source files. Point (0) will significantly ease the students experience if they need not configure any build files. Points (1) and (2) allow you to add references to used modules, libraries, etc. All the students do is create a new file, compile and execute. Point (3) is easy because students need only add a single entry in the project properties dialogue box (Project targets). They need only then point and click on the executable to execute and/or debug. My 2 cents. HTHs, Hugo F.