check in every day

Sun Apr 10 13:33:03 EST 2016

Please check the project presentation schedule on the Schedule page. I believe I have accommodated all requests; if I missed yours, please let me know right away.

Mon Mar 14 12:41:10 EST 2016

PS 6 is designed to make you think about:
  • type system design: You may encounter situations where it’s not immediately clear from the problem description how I want you to design the type system. I do not want to resolve such ambiguities for you. Instead, I want you to think through the consequences of picking one option versus another and justify your design decision.

  • issues that may arise when you go from a language on paper to a model of the same language: You may also encounter situations where the type system you want to write down on paper may not be easy to model in Redex without minor changes to the syntax provided in PS 6. Keep in mind that it is okay to make small changes to syntax of the internal language when going from your language on paper to the model, but any time you do so, you have to use judgment in deciding what is a small change and justify your decision.

If you encounter any of the issues above, please include a short explanation in the README of the design issue you were faced with and justify your choice.

Finally, let me give you a hint that might be useful to some of you. Take the Redex model of STLC that I posted on the blog and extend it with tagged sums: i.e., types t1 + t2, and terms inl e, inr e, and case as we did in class. What issue do you run into when extending your type judgment with a typing rule for inl e and inr e? How do you get around the problem?

Sat Mar 5 11:57:49 EST 2016

I’ve posted PS6. It is due on March 18, but I highly recommend that you start working on it early (i.e., during Spring Break).

Tue Mar 1 20:07:04 EST 2016

Please turn in the revised draft of your proposal memo as well as PS5.3 at the beginning of class on Friday. I have updated PS5.3 so that it now deals with pairs.

Sat Feb 27 10:27:13 EST 2016

Here is the code from yesterday’s lecture: lec12.rkt and tut-subst.rkt.

Tue Feb 23 18:52:12 EST 2016

Problem set 5 should be done with a new partner.

Sun Feb 21 22:50:55 EST 2016

Here is the code from Friday’s lecture: lec10.rkt.

Thu Feb 18 15:22:32 EST 2016

Problem Set 4 asks you to formulate the conjecture that the path delivered by findflights is one of the paths taken by ->fsl. Clarification: This conjecture should fail if findflights returns "No flights found" or some other error.

Tue Feb 16 21:45:11 EST 2016

I have changed the due dates for your proposal memo. A draft of your proposal memo is now due at the beginning of class on February 23rd. The final version of the proposal memo is due on March 1st.

Tue Feb 16 21:42:09 EST 2016

Here is the code from today’s lecture: Lambda-CBV with booleans and Lambda-CBV with numbers.

Wed Feb 10 20:55:40 EST 2016

I have added a list of papers to the end of the project page. If you have not yet decided on a project, you may select one of these. Alternatively, you can follow the reference trail to see if you find something related of interest.

NOTE: Unless you are picking one of the papers from the list I’ve just posted, I expect you come talk to me about whether the paper you are interested in is a good choice. For approval, you have to send me an email with a link to the paper, a summary of the topic in your own words (including a brief note of what you hope to investigate for your project), and the name of your partner. Your partner should be cc’d on this email.

Wed Feb 10 08:50:10 EST 2016

I will be holding office hours today 4-5pm as scheduled. I’d encourage you to stop by and discuss your project with me if you haven’t done so already.

Here is the code from yesterday’s lecture: subst, Lambda-CBV, Lambda-CBN, Lambda general reduction.

Mon Feb 8 12:12:07 EST 2016

A reminder that you need to get approval for your project topic by Feb 12. You’ll also need to identify a project partner. See project page for details.

Note: Since we have an odd number of students in the class, I would like to encourage one of you to work individually on the project. Naturally, a single-person project should be scaled down accordingly.

Mon Feb 8 12:01:13 EST 2016

Here is the code from Friday’s lecture: 6.rkt.

Wed Feb 3 11:10:04 EST 2016

I will not be holding office hours this afternoon at the scheduled time. Instead, I will hold office hours tomorrow (Thursday) from 4pm to 5pm.

Sat Jan 30 11:50:04 EST 2016

Here is the code from Friday’s lecture: 4.rkt and 4a.rkt.

Also, if you haven’t done so already, read the lecture on Accumulators.

Wed Jan 27 14:43:09 EST 2016

Here is the code from the last two lectures: bool-or/reduction, defining metafunctions, ellipses and where clauses, extending languages and side conditions, designing functions on list-mingled data. Read the files in conjunction with Part II of the Redex textbook.

Fri Jan 22 23:44:00 EST 2016

I have changed the due date for PS2. It will now be due on Tuesday, February 2nd. The assignment page and syllabus have both been updated.

Mon Jan 18 23:07:01 EST 2016

I have made a couple of changes to PS1 (marked in red on the assignment page). For problem 1, I have included instructions on how to turn in the draft of your memo. For problem 2, one of you reported an ambiguity in the problem statement which should now be resolved by the additional constraint I added.

Fri Jan 15 18:04:00 EST 2016

Several of you have missed one of the first two lectures and some of you have told me that you are feeling lost. Please understand that I cannot redo an entire 100-minute lecture; it is your responsibility to come to class. Also, if you have to miss class for some reason, I expect you to let me know.

Mon Jan 11 13:00:09 EST 2016

Welcome to iPPL (CS 7400).

Please reflect on the programming languages you have had experience with in the past and choose your current favorite. Please bring a letter-sized sheet of paper to the first class, fold it in half along the long axis, write down your favorite programming language, and place the sheet in front of you so that the name of the language is visible from the front of the room.