Browse thread
Before teaching OCaml
[
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: | -- (:) |
| From: | skaller <skaller@u...> |
| Subject: | Re: [Caml-list] Before teaching OCaml |
On Sun, 2007-01-07 at 19:15 +0100, David Teller wrote: > Dear list, > > I'm going to start teaching OCaml soon and I'm fishing for ideas and > suggestions. I hope this list is the right place to ask. > Right now, I see the following difficulties: > > * the environment -- under Windows, is there any viable alternative to > Emacs + the MinGW-based port ? Emacs? Gak! You want them to waste the whole semester learning an editor? Notepad is perfectly acceptable. There's probably a version of gedit that runs on Windows. The Windows native port is fine, but you do need the MS assembler and compiler executables (and ml.err, the assembler error file). > * the Makefile Why not just show them how to write out a script by giving them a simple example to edit, something like: ocamlc -c file1.mli ocamlc -c file2.mli ocamlopt -c file1.ml ocamlopt -c file2.ml ocamlopt file1.cmx file2.cmx -o program and explain the ordering requirements. There are several auto-makers for Ocaml (as mentioned in other emails) .. but using these hides understanding of how the ocaml tools work. > * the task -- for the moment, I have no interesting idea of OCaml-based > projects. Perhaps something like finding the shortest path along > subway/train lines ? I would tend to provide a simple but not trivial problem, and get them to write it in a familiar procedural style .. then show how to convert it to a functional style, and what the advantages are. So you'd want to pick a problem which is amenable to both kinds of solution. EG .. convert loops to tail recursions, convert inner recursions to tail recursions, replace variables with arguments, continuation passing, HOFs, etc. One possible project is a small interpreter .. it has plenty of scope for variations, and has the advantage of being interactive without requiring graphics. -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net