[plt-scheme] Examples of Scheme (or Lisp) in real-world

From: Ciprian Dorin, Craciun (ciprian.craciun at gmail.com)
Date: Wed Mar 10 00:25:20 EST 2010

On Wed, Mar 10, 2010 at 3:50 AM, Shriram Krishnamurthi <sk at cs.brown.edu> wrote:
> Ciprian,
> I followed upward from the URL you sent earlier, and got here:
> http://beta.wikiversity.org/wiki/Functional_programming_--_2009-2010_--_info.uvt.ro
> Are the lab materials listed here an accurate depiction of what the
> course is covering?

    Indeed that is the material of what the laboratory is covering.
More or less:
    * I use the notes for mainly two purposes: to allow me to put
together some exercises, reference links, and to allow those who miss
a lab to see what we are doing; (I don't use it as reading material,
just as starting point.)
    * there are two branches: one for "basic -> medium" and one
"medium -> advanced"; (I let the students decide what they want;)
    * the "basic -> medium" branch is for those students that don't
want to bother too much with this subject; (after all this course is
at choice with a much easier class... the way the curricula is done
here differs a lot than what you do in the US...) :)
    * the "medium -> advanced" I hopped we are going to build some
applications from week 6/7 -> 14; (please see the agenda link --
Medium - advanced section);

> And if so, is there a chance that -- and this is the point where I
> remind you to fasten your flak jacket -- is there a chance that the
> students are...bored to tears?

    :) :) Yes some are, some (very few) not. (I myself am bored "to
tears" :) ...)

    (Unfortunately I am following the course subjects, and I only have
the lab under my power... So this is the best I've could come up
with...) (Should I scream for help at this point?) :) :)

> You say that most of your students want to build *something*.  Of
> course most of them don't know what they want to build -- that's why
> they're students.

    At the end of my agenda page, I've proposed the following subjects
(or anything the students want):
    * dynamic web-applications;
    * map-reduce frameworks;
    * Lisp interpreter in Lisp;
    * Prolog interpreter in Lisp;
    * survey of other functional programming languages;
    * application of functional concepts in other languages;
    * domain specific languages;
    * symbolic (document oriented) databases;
    * template (XSLT-like) engines;
    * object-oriented framework implementation;

    Any other ideas?

> But they still represent a great starting point: a
> desire to DO, rather than a desire to sit back, relax, and hope that
> their diploma will guarantee them riches.

    A... This is where you have too keep in mind that unfortunately
our students (here in my country) are not like your students (in the
US)... They are a different bread.

    For example while one of your students pays how much (20 thousand
$ a year? that's about an average yearly wager?), my students (we are
a state funded university) most of them pay 0 (as in zero), and a few
others (which made it on the "tax" places) pay about (1.5 thousand $ a
year, about the average salary for two months).

    Thus the "sit back, relax, and hope that their diploma works for
them" is running just nice... They're having the time of their life...

    So just to summarize: your students are motivated by the fact that
if they don't do anything in collage they end up on the streets
begging... In my country -- regardless of their endeavors in collage
(because from god know what reason almost all of them graduate) --
they'll end up doing something (even in IT). (We are in a country
where the higher-education enrollment rate is 50% of the ones that
finish high-school...)

    If this seems far-fetched to you I agree :) :) but it's the
reality I live in... :)

> Putting such students through this lab material...well, if I were them
> (and I was, one of those students who wanted to DO something), I would
> be in deep rebellion too.
> Shriram

    For example I've looked at your assignments (let's take Filesystem
from CS19 the link you've sent). Although it's engaging (from a
technical point of view) and easy (because the previous semester we
have studied programming in C for UNIX like (actually Linux) operating
systems) I doubt that more than (3-5 students) are able to do this (in
any language). But I'll do this experiment this or the next week.
(I'll propose them one of your first assignments.) And I'll let you
know (if you want) how it works.

    In the end I would like to thank you for your harsh remarks. You
are right, we have to change. (Unfortunately the context doesn't help
us either.)

    So if you have other pointers that could help me, please do send
them. Any kind of commend is greatly appreciated.

    Thanks again,

Posted on the users mailing list.