HomeThis is the homepage for CS 798 at the University of Waterloo (Fall 2009). Although this is a graduate course, undergraduates may take it with permission of the instructor and a CS advisor, and it counts towards the CS4xx degree requirement. Instructor: Prabhakar Ragde (plragde at uwaterloo dot ca), DC 1314 Office hours: Tuesdays and Thursdays, 1:30-2:30 Here is a one-page outline of the course (PDF). AnnouncementsNovember 24: Tarek Chammah will give a presentation during our usual lecture timeslot (11:30am-12:30pm) on Friday, December 4, on the subject of reactive functional programming. November 23: Edgar Bering will give a presentation during our usual lecture timeslot (11:30am-12:30pm) on Wednesday, December 2, on the subject of implementing syntax-rules macros (which is not even his project topic!). November 22: The grammar in the starter files was missing the question mark on iszero?. Sorry for the inconvenience this must have caused. November 20: It turns out that putting my own correct solution in the directory where I build the Marmoset tests (needed to debug the tests!) made everyone pass the uploaded tests. This was happening for all of assignment 7, as well as all of assignment 5 and some of assignment 6. I've uploaded clean tests for all of these. Mainly this is an issue for assignment 7. I'll leave the incorrect marks in place on the earlier assignments, but if you didn't get those solutions working, you might work on them for the sake of the knowledge. November 16: I've corrected some typos on assignment 7 (not using parse) and changed the due date to match what I set up on Marmoset. Also, the grammar in the starter file for question 1 incorrectly included rec. November 11: The sample test given on assignment 6 was incorrect. I've uploaded a corrected version. November 10: The grammar in the starter files for questions 2 and 3 on assignment 6 was incorrect. rec has only one type annotation, as in the textbook. November 9: The slightly expanded slides for lecture module 08 have been posted. Please try to ensure that the version of PLAI Scheme you are using is 1:4. You can look at your code in an editor that is not DrScheme to see the metadata at the top. If it says something higher than 1:4 (like 1:6), please edit it to say 1:4 before submission. Lower numbers seem to be okay. A higher number will, for reasons which are unclear, cause Marmoset to download the latest version, and that breaks all tests for everybody. November 1: The inclusion of code for send in the starter file for assignment 5 question 3 was a mistake. You can write send in whatever manner you choose. October 28: The Marmoset tests for assignment 5 are up. They are output-based (that is, our code that runs your test produces output which is compared with that produced by the model solution), so for best results, comment out all your tests, but include at least one trivial expression producing a value (it doesn't matter what it is). If there are any issues, please let me know promptly. October 25: The updated slides for lecture module 07 are now available, and a project overview milestone due November 4 is described here. October 21: There were two issues with the lecture module 06 slides as a result of recent PLT Scheme upgrades. The first is that capturing the top-level continuation is not as simple as before, and the second is that regular lists are immutable now. The slides have been updated to reflect how we deal with these changes. October 14: Marmoset tests are up for assignment 3, and handouts for lecture modules 05 and 06 have been posted. Corrected versions of lecture modules 01, 02, and 03 have also been posted. October 8: A couple of assignment 1 typos: first, the obvious one that division is forward-slash, not back-slash, and second, in question 2, duplicate identifiers in a list of bindings should be a parse error (I had previously said semantic error, but that is not correct). October 6: Marmoset is back, and two days have been added to the hard deadline on assignment 0. But please get it done, as subsequent deadlines will not change. October 4: Marmoset is broken for all users in all courses, and will probably remain so for the weekend. Once it is fixed, I will adjust the hard deadline on assignment 0. October 2: Marmoset tests for assignment 1 are in place, and a draft of assignment 2 has been posted. September 30: Directions on using Marmoset to submit assignments are now available in the sidebar. There is one test project on Marmoset, called "mtest", that expects a function is798? that consumes an integer and produces true iff that integer is 798. You may use this to familiarize yourself with the system. Projects for questions on assignment 0 should appear very shortly. September 14: Preliminary versions of the first two assignments are available on the Assignments page. The due dates are yet to be determined. September 11: The first two lecture modules are available on the Handouts page. |