Continuing access to 2020 version of PAPL book?

79 views
Skip to first unread message

David Owen

unread,
Sep 23, 2021, 11:25:12 AM9/23/21
to Pyret Discuss
Can I count on the 2020 version of the PAPL book remaining available online indefinitely?

And I'm wondering also, does the content exist in source form, that I could have permission to edit and tweak for use in teaching?  I'd be happy to make the modified version available if it might be useful to others.

Last spring I used the online PAPL book for an upper level undergraduate programming languages course.  Our students have a lot of programming experience before taking this course, but very little experience functional programming.  So I used the first half of the book as an intro to functional programming, and then spent the rest of the semester on content from the second half of the book.  I thought it worked very well.  We used chapters 1-16 and 24-32, plus odds and ends from other chapters referred to in those.

Thank you!

David Owen
Associate Professor of Computer Science
Messiah University, Grantham, PA

Shriram Krishnamurthi

unread,
Sep 25, 2021, 10:33:12 AM9/25/21
to pyret-...@googlegroups.com
Hi David,

Thanks for asking.

Yes, I'm absolutely committed to that. The URL is a permalink and there seems to be no issue with Brown keeping papl.cs.brown.edu up. It's just a virtual host tied to a set of static files.

We haven't really made plans to open source the book. That's a bit of a big build task. Also, there are some authors we would trust more than others to make modifications… Not a statement about any individual, but I've seen too many pirated copies of my books on unsavory sites, and I worry about this turning into another channel for abuse (which very obviously is not you!).

I wonder if you're aware of the successor, DCIC. I'm guessing you are, and the dropping of the second half of PAPL is why you are asking. We are continuously working on and improving DCIC, so if there are fixes in the first half, perhaps you can tell us and your students can use DCIC instead?

As for the second half: I'm in the midst of a serious re-think of the PL portion (which is derived from my earlier book, PLAI). This year a lot of things have fallen into place and I'm finally writing up a draft of the third edition of PLAI. "Sadly", of course, that will be in Racket, not Pyret. But that's because we get to really exploit Racket's support for languages: see, for instance, this paper, which is now implemented in Racket. Furthermore, I'm doing a fair bit of research that is driving the construction of the third edition. So, in return for the Racket use, you'd gain both an actively-maintained book and one that is driven by research into PL pedagogy.

Shriram

David Owen

unread,
Sep 28, 2021, 11:50:46 AM9/28/21
to Pyret Discuss
Very good!  I'm glad to be able to teach my course again with the same approach (2020 PAPL).  I don't know if you are familiar with Nisan and Schocken's Elements of Computing Systems, but I use that book in a different course these students take, so they've already seen how to write a basic parser, compiler, assembler, etc.  The PAPL approach to programming languages seems to complement that course very well (as opposed to a standard PL approach which would have a lot more overlap).  I understand your reluctance to make the PAPL sources available and appreciate you taking time to explain that.  It's already very generous you're providing the book free online, though.  Thank you for that!

I plan to take a look at DCIC, maybe as substitute for the PA part of PAPL.  And I'll look at PLAI as well ... and look forward to your third edition!  Do you have any suggestions for a Racket intro that could be done quickly (by students who've done a lot of programming but not functional) to prepare students for PLAI?

Thanks again,

David

Shriram Krishnamurthi

unread,
Oct 1, 2021, 4:06:33 PM10/1/21
to pyret-...@googlegroups.com
Very good!  I'm glad to be able to teach my course again with the same approach (2020 PAPL).

That's right! If nothing else, you can use DCIC as a better PA and still leave the PL part in Pyret, if that's what you prefer. 

I plan to take a look at DCIC, maybe as substitute for the PA part of PAPL.  And I'll look at PLAI as well ... and look forward to your third edition!  Do you have any suggestions for a Racket intro that could be done quickly (by students who've done a lot of programming but not functional) to prepare students for PLAI?

It may be helpful to look at the overall assignment structure of my PL course:


In particular, both the mystery language and implementation tracks take advantage of Racket, and I mean, really take advantage of it. When you have some time, you may want to see how this would fit into your world. The mystery languages, in particular, are a very fun way to learn about linguistic differences (and are certainly very different from what any other PL book does — even PLAI doesn't really talk about them [yet]). The pedagogy behind them is documented in this short paper


though the technology is now a bit different than in that paper.

The point is, if you decide to go this route, then there's even more bang for the buck for investing in Racket.

On the Implementations assignments page (linked from the assignments above), you'll see a series of short videos Matthew Flatt has made of the particular type of Racket language that I'm using in the book. About half the assignments (the parts corresponding to the PL part of PAPL) depend on that. The other half exploit Racket macros (again, more investment in Racket for more payoff).

Happy to chat more about all this whenever you'd like.

Shriram
Reply all
Reply to author
Forward
0 new messages