Moving an undergraduate-level functional programming class to F#. Advice needed.
Hi all,
I'm an undergraduate student at a Canadian university, currently working with a professor to move the functional programming class from Standard ML to F#. The main draw is the existence of modern IDEs and tooling for F#, which is something our alternative (Haskell) does not have. Also considered are the parts where F# is "hip" (at least at this one university) and has excellent tutorials and documentation.
I'd like your thoughts on how we could format assignments, and what IDEs we should support and recommend.
#Tooling
The officially supported tooling for the class has to run on Ubuntu so we can provide it in our computer lab. We'd probably go for MonoDevelop. I've only started looking, but I'm wondering if anyone has experience with that. The installation and deployment procedure has to be sane for the systems team to agree to it.
We also plan on recommending the following alternatives (without explicitly supporting them): Visual Studio on Windows, Xamarin Studio on OS X. Possibly emacs too for habitual emacs users. Here, we're only considering options where installation is reasonably idiot-proof.
#Assignment format
Unfortunately, we also have to support users working from text editors, so there needs to be a straightforward way to do the assignments even without an IDE. This requirement initially pushed us towards F# script files, but we're experiencing some drawbacks; for example, we can't find a way for Xamarin Studio to do error highlighting on `.fsx` files.
On the other hand, We're not sure how we could possibly ask users working from text editors to handle F# projects. We could provide a template single file project, but then that template needs to build both on Mono and .NET.
**I'm very excited about this opportunity.** Let me know if you have any advice about the above issues. I'm particularly looking for writeups on using MonoDevelop + F# on Ubuntu.