|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 - 3 | Next > |
|
|
Teaching ocaml programmingOnce 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. The requirements are very simple: 1. easy access to toplevel (with line-editing) 2. editor which can send stuff to toplevel, points to errors in source code, and is not Emacs. Any ideas what to do? We have dual-boot machines (Windows + Ubuntu). Best regards, Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingHave you tried configuring a recent GNU Emacs to work like a normal
editor? (e.g. with C-c, C-v editing shortcuts etc.) This shouldn't be difficult. On Fri, Sep 26, 2008 at 1:30 PM, Andrej Bauer <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 > _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingLukasz Stafiniak wrote:
> Have you tried configuring a recent GNU Emacs to work like a normal > editor? (e.g. with C-c, C-v editing shortcuts etc.) This shouldn't be > difficult. My teaching asistant showed the students how to do this, but it was only partially successful, not to mention that this required extra configuration. _Any_ initial configuration is a big pain, even just putting a line in .emacs is a challenge ("Where is this file?", "How can it have just an extension and no name?", "Why is the extension longer than three letters", etc.) I just spent 20 minutes trying to compile Cameleon and failed. I then installed the Ubuntu version which is completely broken (this is Ubuntu 8.04), and even if it worked, I would not want to use it because it clearly suffers from the "the user will configure me" syndrome. Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingCamelia, http://camelia.sourceforge.net/, looks perfect, but
unfortunately also not maintained anymore. I am failing to compile it under Linux because it (seemingly) wants a rather old version of Qt. Maybe we should resurrect it. Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingDepending on how flexible you are, nedit + shell might be a workable
choice. It is a clean, intuitive, but sufficiently powerful editor. Emacs always left me annoyed. I use, on a daily basis, a small script which acts as a front-end to `make' and automatically points you to the error in the code in nedit, highlighting the characters that the ocaml compiler complains about. It uses the existing nedit window if you have the file open already, or else opens it for you. The script also works with gcc instead of ocaml, and (though I can't vouch for it much) gvim instead of nedit. So my typical development environment consists of nedit and a shell in which I compile via the script. If anyone is interested, I'd be happy to share this. I guess the main question would be integrating the toplevel with nedit. I imagine there are a number of ways to do this, depending on your needs. You might be able to put something together using nedit's scripting language, or just do something entirely external to the editor. ~Brighten On Sep 26, 2008, at 4:30 AM, 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. > > The requirements are very simple: > 1. easy access to toplevel (with line-editing) > 2. editor which can send stuff to toplevel, points to errors in > source code, and is not Emacs. > > Any ideas what to do? We have dual-boot machines (Windows + Ubuntu). > > Best regards, > > Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingHow can there be no easy to use interface?! This is pathetic.
Python has IDLE. Scheme has drscheme. Java has drjava. What does Haskell have? I compiled Camelia (which required me to debug C++ code for the first time in about 20 years). It's kind of ok. The user interface is a bit broken, lots of uneccessary pop-up dialogs (e.g., for every error message). Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingAndrej Bauer wrote: > How can there be no easy to use interface?! This is pathetic. > > Python has IDLE. Scheme has drscheme. Java has drjava. > And OCaml has Emacs :) -- Mehdi Dogguy http://www.pps.jussieu.fr/~dogguy _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingHello,
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. _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingHugo Ferreira wrote:
> 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. Yes, we do all of this, but unfortunately ocamlbuild under Windows sucks because the trick with symbolic links to executables does not work. Has this been fixed yet? (Also, ocamlbuild assumes bash is in the path, also under Windows.) Best regards, Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingAndrej Bauer wrote:
> Hugo Ferreira wrote: >> 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. > > Yes, we do all of this, but unfortunately ocamlbuild under Windows sucks > because the trick with symbolic links to executables does not work. Yes, I am aware of this. Seen the reports in the forum. > Has > this been fixed yet? (Also, ocamlbuild assumes bash is in the path, also > under Windows.) Not that I am aware of. Their is a version that has *not* been put up onto the update site [1]. Maybe this may have additional corrections. Please note that I am proposing you use Ubuntu because you mentioned dual boot machines: "Any ideas what to do? We have dual-boot machines (Windows + Ubuntu)." BTW, I just remembered that I use GODI. Don't know if that is possible for you. Regards, Hugo F. http://ocaml.eclipse.free.fr/files/Ocaml_1.2.3.jar > > Best regards, > > Andrej > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programming-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 If you have dual-boot machines, why not try Ocaml + Emacs + tuareg-mode in Ubuntu? You can install tuareg-mode globally so that no one has to touch a .emacs or know about it. If it's the keyboard shortcuts that students are not used to, they can 1) deal or 2) you can remap some common shortcuts and wrap it in a shell script so they run Emacs-for-class instead of standard Emacs. Personally, I think they should just deal. A little exposure to a non-Windows environment, a little broadening of horizons, all good stuff. When I took a programming languages class at UIUC, that is how we learned OCaml. I found it quite easy to pick up. Emacs has the best toplevel integration with OCaml and it sounds like you want to make heavy use of it. Peng PS. I just looked at IDLE and Emacs + OCaml blows it out of the water. I swear IDLE is like a mini-subset of Emacs. Even the keyboard shortcuts are the same. If you like IDLE, Emacs + OCaml can only be better. On Friday 26 September 2008 07:30:00 am 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. > > The requirements are very simple: > 1. easy access to toplevel (with line-editing) > 2. editor which can send stuff to toplevel, points to errors in source > code, and is not Emacs. > > Any ideas what to do? We have dual-boot machines (Windows + Ubuntu). > > Best regards, > > Andrej > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs Version: GnuPG v2.0.7 (GNU/Linux) iD8DBQFI3PHDfIRcEFL/JewRAsarAKDPPPcNc2WJcPAlu5amtkrH9PmGUwCgm2mP BrUDh1ukb4mG1HaLC+9Se68= =u7Sx -----END PGP SIGNATURE----- _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingOn Fri, Sep 26, 2008 at 01:52:33PM +0200, Andrej Bauer wrote:
> My teaching asistant showed the students how to do this, but it was only > partially successful, not to mention that this required extra > configuration. _Any_ initial configuration is a big pain, even just > putting a line in .emacs is a challenge ("Where is this file?", "How can > it have just an extension and no name?", "Why is the extension longer > than three letters", etc.) I think I may have suggested this the last time, but is some sort of bootable live CD / live USB key an option? Our livecd-creator tool is especially flexible: you could build a live CD / key which has all the right packages installed and all the configuration files in the right place and starts up the editor of your choice when they log in. http://www-128.ibm.com/developerworks/linux/library/l-fedora-livecd/index.html http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo Persistence (of files in the project) is a problem but maybe they can be encouraged to save project files to a network share or on to a USB key. Rich. -- Richard Jones Red Hat _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programming-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 You know, I love that idea. I've been meaning to use it for some of my projects and keep forgetting about it. Thanks for reminding me, Peng On Friday 26 September 2008 10:31:40 am Richard Jones wrote: > On Fri, Sep 26, 2008 at 01:52:33PM +0200, Andrej Bauer wrote: > > My teaching asistant showed the students how to do this, but it was only > > partially successful, not to mention that this required extra > > configuration. _Any_ initial configuration is a big pain, even just > > putting a line in .emacs is a challenge ("Where is this file?", "How can > > it have just an extension and no name?", "Why is the extension longer > > than three letters", etc.) > > I think I may have suggested this the last time, but is some sort of > bootable live CD / live USB key an option? Our livecd-creator tool is > especially flexible: you could build a live CD / key which has all the > right packages installed and all the configuration files in the right > place and starts up the editor of your choice when they log in. > > http://www-128.ibm.com/developerworks/linux/library/l-fedora-livecd/index.h >tml http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo > > Persistence (of files in the project) is a problem but maybe they can > be encouraged to save project files to a network share or on to a USB > key. > > Rich. Version: GnuPG v2.0.7 (GNU/Linux) iD8DBQFI3PZpfIRcEFL/JewRAppxAJ9nDJZQzbl8jj5cyNeXup/OP/E5/ACfS88c +VOTtD2kfFZQ7Lnna+GzOyw= =mOfZ -----END PGP SIGNATURE----- _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingHi,
Your problem is simplified by the fact you already have dual boot machines (if not, Richard's live CD idea is always a good option). Unix is Ocaml's natural habitat, and some of the problems you mentioned (like symlinks for Ocamlbuild) would simply go away if you boot into Ubuntu. I got the impression your students are not too familiar with Unix. Well, if that's the case I think in the long term they can only benefit by being exposed to it. I once had to teach 3rd year Compsci students the fundamentals of Unix programming in C. Much to my surprise, some of them didn't even know how to use basic shell commands or to invoke gcc! I guess my predecessors had sheltered them too much from the "big bad Unix". Now, I understand you may be reluctant to spend valuable class time teaching them the rudiments of Unix, but I reckon that if you provide them with the relevant configuration files they can be up and running in less than half an hour. And I bet that some of them may even discover that they prefer Unix. Cheers, Dario _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingI think we should think outside the box here.
Make sure your OCaml has prerequisites that involve some shittier language like C, which is taught in a Unix environment with xemacs. Once the students have seen how awful it can get and they associate the terrible learning experience with C (what's with the lack of love for emacs anyway? =/), then you come to the rescue. :-D Btw, I wouldn't try to use OCaml with Ubuntu, or *any* recent language that has been in development. Support is generally flaky. The mainline OCaml that comes with Ubuntu is fine, but the gl+gtk support is broken. The version of Eclipse that ships with Ubuntu is freaking ancient and won't support the Scala plugin. From what I remember, 8.0.4 also shipped with some fossilized version of Scala itself. On Fri, Sep 26, 2008 at 6:33 AM, Andrej Bauer <Andrej.Bauer@...> wrote:
_______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingAs far as I see, there are two options:
1) Windows + Eclipse + OcaIDE 2) Linux. The students know next to nothing about Unix. If I dive into using Linux, then I might as well setup anonymous subversion access to source code. They could use gedit for editing (it has ocaml syntax hilight mode), and the shell for ocamlbuild. The only unresolved question is how to deal with compilation errors. The generation that I am getting is very small (maybe 10 students), so this might be doable with such a small number. I will think about it. Thanks for your suggestions. By the way, Live CD is not really an option. I suspect the computer lab computers are "protected" against that. Best regards, Andrej _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programmingOn Fri, Sep 26, 2008 at 09:15:14AM -0700, Arthur Chan wrote:
> Make sure your OCaml has prerequisites that involve some shittier language > like C, which is taught in a Unix environment with xemacs. Once the > students have seen how awful it can get and they associate the terrible > learning experience with C (what's with the lack of love for emacs anyway? > =/), then you come to the rescue. :-D For extra points, make sure they have to ensure that every error is checked and every error path out of the function must free up all resources that have been allocated ... > Btw, I wouldn't try to use OCaml with Ubuntu, or *any* recent language that > has been in development. Support is generally flaky. The mainline OCaml > that comes with Ubuntu is fine, but the gl+gtk support is broken. The > version of Eclipse that ships with Ubuntu is freaking ancient and won't > support the Scala plugin. From what I remember, 8.0.4 also shipped with > some fossilized version of Scala itself. [I'm going to diss Ubuntu here ... you know where I'm coming from] Ubuntu's OCaml support is very flaky. They don't have developers committed to it and take a random snapshot of what's in Debian. This has in the past led to serious brokenness where they've taken a snaphot in the middle of a rebuild-the-world compiler upgrade. Instead go with Debian (or Fedora) where there are developers making sure you get a consistent, working OCaml. Rich. -- Richard Jones Red Hat _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs |
|
|
Re: Teaching ocaml programming |