Lambda the Ultimate

inactiveTopic SE/Algebra course
started 1/8/2002; 11:11:12 AM - last post 1/10/2002; 1:14:59 PM
Ehud Lamm - SE/Algebra course  blueArrow
1/8/2002; 11:11:12 AM (reads: 461, responses: 9)
Has anyone seen a good foundational course on SE, using the algebraic (and coalgebraic) tools we recently discussed?

I was looking for something that makes the connection explicit, but isn't too watered down. I know of The Algebra of Programming but I never had a chance to read it, and from the website, it doesn't seem to be what I am thinking about.

I want something that can a expose a student to the connections between the classical concepts he learned, and the theoretical framework. I am thus looking for something on the introductory side. It must, of course, still be rigorous.

Anyone know of such a beast? Frank?

Ehud Lamm - Re: SE/Algebra course  blueArrow
1/8/2002; 2:18:51 PM (reads: 481, responses: 0)
To clarify: I was thinking of a hands on apporach, like the one used in EOPL.

I took another look at the online info about The Algebra of Programming, and it looks closer to what I had in mind that I had remembered. Is the TOC available anywhere? Couldn't find it.

Frank Atanassow - Re: SE/Algebra course  blueArrow
1/9/2002; 11:12:27 AM (reads: 466, responses: 4)
I don't know of anything practical. Even AoP is more theoretical than what I imagined you have in mind. (Dunno of a TOC online, sorry.)

I've had some vague ambitions of writing something like that myself at one point, but it won't be in the near future. (Certainly not until I finish my thesis, and I doubt I will be much in the mood to start a huge writing project very soon after that...! :)

Ehud Lamm - Re: SE/Algebra course  blueArrow
1/9/2002; 12:16:10 PM (reads: 488, responses: 3)
Yeah, I was thinking about the best approach to building such a course. It may be interesting to think about it, even if we are not going to carry it through... So how about it? Care to suggest a high level outline?

Personally, since I was thinking about an executable approach, one would have to choose a language. Haskell seems like the best bet, at the moment at least. Do you agree?

My style of teaching is largely based on papers, so a list of papers, organised according to the outline would be nice. I think this can be a nice thing to include somewhere here or on your site.

Graham Hutton has some nice papers that I'd be tempted to use.

I haven't found a nice introductory discussion explaining the connection between the theory and the practical concepts of SE.

BTW: The closest thing I could find is Goguen's courses (here's the second one) that use OBJ.

One more thing: What's the best way of making such a course FUN?

Frank Atanassow - Re: SE/Algebra course  blueArrow
1/10/2002; 8:41:27 AM (reads: 500, responses: 2)
Sounds like a lot of work. :) Let me think about it for a while.

As for your very last question, how to make it fun, one thing I thought would be very fun to use as a running case study in the tutorial for my still non-existent language Arrow would be a MUD, since this hits almost all the important points of a modern, practical application (concurrency, persistence, network I/O, user interface) and emphasizes some of the strengths of FP (parsing, symbolic processing, etc.). Also, Arrow is supposed to be good at metalinguistic reflection, and showing that typed FP languages are suitable for such a dynamic application would be, I think, convincing even to nay-sayers.

I think it can be done in pieces, too: start with a command-line parser, then use a graph data structure to model rooms, connect them to be able to move between rooms, add persistence to remember the states, add concurrency to allow multiple users, spiff up the user interface with a GUI, and so on.

Of course it's a big project, but the point is to show that big projects become smaller and more tractable when you use sophisticated languages.

Frank Atanassow - Re: SE/Algebra course  blueArrow
1/10/2002; 8:46:20 AM (reads: 441, responses: 1)
Oh, re: courses, there is also the PLT Scheme course, How to Design Programs, which seems to emphasize data-directed algorithm design in the style of folds.

Ehud Lamm - Re: SE/Algebra course  blueArrow
1/10/2002; 9:03:25 AM (reads: 455, responses: 0)
It is a nice book, but it is inteded for beginners and doesn't stress the theoretical foundations.

Ehud Lamm - Re: SE/Algebra course  blueArrow
1/10/2002; 9:09:31 AM (reads: 506, responses: 0)
Sounds like a lot of work.

Yep.

I like the case study approach, esp. when teachning about SE. I was considering giving my Ada&SE students a set of exercises leading to a web broswser. Obviously they would'nt know the end reuslt, but will suddenly see how well designed components can be combined..

But are we really thinking about people with no SE background? Seems to me there's too much stuff to cover. I thought about something for people who know what an ADT is, in general, but are unawre of the mathematical treatment.

Bryn Keller - Re: SE/Algebra course  blueArrow
1/10/2002; 9:18:19 AM (reads: 509, responses: 0)
Frank, you're not allowed to mention Arrow here anymore until you post some of that information about it you promised me earlier. :-)

Frank Atanassow - Re: SE/Algebra course  blueArrow
1/10/2002; 1:14:59 PM (reads: 452, responses: 0)
Sorry, Bryn. I postponed my talk for two weeks in order to make a bit more progress, so the slides aren't done yet. Please bear with me... I will just refer to it as "my vaporware" until then. :)