News for Fall 2016 |
12/5/16 - I have made up a WA for Lambda Calculus
Evaluation and posted it to PL. Because there is less than a week
of classes left, I have made the assignment extra credit. There is
a practice version you may do as many times as you find helpful.
There is only one problem, in three parts, which is shared in
common between the practice and the extra credit. Modulo
permuations of the parts, you will get the same problem each
time. - ELG 12/1/16 - I have posted a syllabus (increment) and
sample final exam to exams. - ELG 11/30/16 - The results from Midterm 2 have been
posted to your directory and the cutoffs have been updated. - ELG 11/28/16 - I have put up ML5 practice. It goes
down at the end of the day tomorrow, Tuesday 11/29/16. I have
distributed a new pdf to correct the type of lookup_cont. I have
distributed a new ml5common.ml file because one a othe free_vars
functions was missing its case of exceptions. Please do an svn up
to ge these corrections. - ELG 11/18/16 - I have posted ML5 to your svn
repositories. - ELG 11/17/16 - I have posted to your svn
repositories a new pdf (version 1.2) that removes the erroneous
rule for the unsupported declaration
let _ = e, and a new version of
mp6common.{ml,cm{i,o}} that restores equality to
polymorphism. - ELG 11/4/16 - I have posted a
solution to the sample
exam and solutions to ML3, MP3, ML4 and MP4. - ELG 10/31/16 - I have posted a syllabus and sample
exam to exams. - ELG 10/30/16 - I have given a one day extension for
MP5 to give me time to an example in class that is not as simple as
resolving the associativity or precednce of infixed
operators. - ELG 10/29/16 - WA3 has been released. It was
intended to be the first part of four. The second is pretty close
to being done. It asks you to give a right regular grammar for
each of the langauges given in WA3. The third gives a grammar and
asks you to give a parse tree of for a given string. The fourth
asks you to disambiguate a small grammar with a conflict of the
same nature as occurs in the Picoml grammar. If I do not manage to
finish building the checking engines for these problems, I will put
up the parsing problems without the checker to facilitate adn
recommend you try them before the midterm. - ELG 10/25/16 - Elsa will be taking Eric's moved
office hour today, Oct 25, 3:30pm-4:20pm. - ELG 10/24/16 - Eric's office hour for Monday, Oct 24 is rescheduled
to Tuesday, Oct 25, 3:30pm-4:20pm. - EH 10/19/16 - Last night, WA2-Practice and WA2 were
made available. In WA2-Pactice, you are given two problems to do.
The first one is a warm-up exercise to help you with being
comfortable with the interface and with applying the steps of
unification by hand. The second is a somple from the pool from
which you WA2 question will be pulled. The second is a bit more
than twice as long to do as the first. For each step, you
get three tries to get it right, not including correcting parse
errors. After three tries, your are penalized one point off the
maximum score. If you make a parsing error, it tells you you have
one (but not have and helpful information indicating where the
parse error is) and asks you to re-enter your answer. You score is
the cummulative score you get from the weighted number of corect
steps you made, bounded by the result of reducing the maximum
possible score by the nymber of uncorrected mistakes you made.
Since the alogorithm given in class is nondeterministic, your
choices can influence the number the nature of the steps you take.
I have chosen a maximum possible score that should be sufficient to
cover the most efficient way to do the problem. Points you earn
past the maximum possible score do not count toward your grade on
the assignment. When doing the problems I found it worked best
to do ecah step out in a editor separate from the web form and then
cut and paste into the submission box. I would do a step, cut and
paste it in and make sure I didn't have any errors, and then either
correct my previous step or move on to the next. The error messages
tell you a thing your answer has or does it shouldn't or a thing it
doesn't have or do that it should. They are not exhaustive.
I always checked for balanced parentheses in my editor, and so I
didn't get cought on that mistake. Parsing mistakes I commonly
made in what I put into PL were forgetting one or the other of the
keywords by and on and putting the quote on the
wrong side of the variable name. I misspelled a rule name once. I
made heavy use of cut and paste, and query-replace to keep my
errors under control. Some mistakes you might be inclined to make
include using semicolons where commas should be used, wrapping
pieces of a substitution in parentheses, not wrapping equations in
parentheses. You may get your session stuck repaeatedly telling
you you have a parse error if there is junk past the usable end of
your input string. I'm not sure of the cause of this. Try to avoid
stray punctuations and other characters. - ELG 10/12/16 - The results from Midterm 1 have been
posted to your directory and the cutoffs have been posted. - ELG 10/7/16 - ML3 Practice is up now through Tuesday. - ELG 10/5/16 - This week Eric's office hour today (Wednesday, 10/5) will be moved to Thursday, 10/6. The time will still be 4:30pm-5:20pm. This is not a permanent change. Sorry for the inconvenience today. - EH 9/28/16 - I introduced an error into the solution
set for MP2, Problem 9. The answer should have read
let quadk (a, b, c) k =
mulk (4, b)
(fun u -> mulk (a, a)
(fun v -> mulk (2, v)
(fun w -> addk (w, u)
(fun z -> addk (z, c) k))))
The evaluation order given in the previously published solution
had an incorrect (left-to-right) order of evaluation that does do
reflect OCaml's evaluation scheme (right to left on arguments to
procedures and primitive operations). The code above now does. I
have posted a revised solution set. I apologize for the confusion
this may have caused. - ELG 9/26/16 - The PL Midterm 1 Practice exam is up. - ELG 9/26/16 - Solutions to ml1, mp1, ml2 and mp2 have
been posted. - ELG 9/15/16 - A new version of MP2 has been posted.
It changes the types of the functions in Section 5. Please save
your work to a uniquely named file and then do an svn up. - ELG 9/15/16 - WA1 at long last has been turned on for
collection, due Saturday, 9/17/16. You may want to do a few
practice runs on WA1-Practice first to refresh your memory. You
can only submit WA1 once. - ELG 9/15/16 - MP1 has been graded and the reports
returned to your svn directory for MP1. ML1 was returned or
9/10/16. - ELG 9/10/16 - Problems 9 - 14 on ML2 will not appear
among the PrairieLearn questions you will see in ML2-Practice, on
inthe CBTF. These problems will be rolled to MP2, so you will be
working ahead if you start them now. - ELG 9/3/16 - The collection of WA1 is postponed for
the indefinite future. I have a programming error I have not been
able to sort out. We collect as a string all the interactions you
have with each WA1 question, and attempt to store it in the
PrairieLearn database backend, so that it can later be pulled out
graded and a more detailed error report be generated for you.
However, either we are dropping that string on the floor or it is
being overwritten because the only string we can pull out it eh
last entry to the last part of the problem you did before hitting
save. I do hope you all will take advantage of the pratice as a
tool to learn about environments and closures. I am working on a
tool for what would be the next handwritten assignment, and I will
put it up for practice assuming I can get it in a meaningfully
useable state by Tuesday (or there abouts), but until I can solve
the data collection problem, the tools willbe up for practice only.
The MLs and MPs will continue to be made available every Tuesday,
in alternation. Please be sure to check the
mps page for their schedule. - ELG 8/28/16 - Machine Lab Practice is up you to try
out. I have put in three of the eventual five versions. You
receive no credit for doing this version. It is up only for you
to practice with the interface. You have already had the problem
for five days; we have not added any new. You can test it out by
going to PrairieLearn,
and selecting CS421. Then you should see all the tests, labs and
web assignments that are currently available. Right now, there is
only the Machine Lab Practice. You should see Machine Lab
Practice 1: Basic Ocaml and the button New version.
If you push this, you will be given a version of ML1. You may
push this repeatedly to create as many as you please, although
after three (eventually five) they will repeat. The selection in
general has a random component to it, so you might get repeats
sooner; I'm not sure. When doing the actual Lab, you will
automatically be given full credit; actual grading will be done
offline using the same type of grading as you have with the grader
program. This practice lab will only be open through the first
day of the of the testing period. - ELG 8/23/16 - Welcome to CS421, Fall 2016. This
page will be the main bulletin board for the course, and hence is
always under construction. Please check it frequently. - ELG |
|
Class Schedule |
Lecture:
Tue, Thu 2:00pm - 3:15pm
1404 SC
|
Staff |
Professor |
Elsa Gunter
Email: egunter@illinois.edu
Office: 2112 SC
Phone: 265-6118
Hours: Tue 12:00pm - 1:30pm,
Thu 3:30pm - 4:20pm,
Also by appointment
|
Teaching Assistants |
Deniz Arsan
Email: darsan2@illinois.edu
Office: 0207 SC
Hours: Mon 2:00pm - 2:50pm,
Wed 3:30pm - 4:20pm
|
Kevin Banker
Email: banker2@illinois.edu
Office: 0207 SC
Hours: Tue 10:00am - 10:50am,
Thu 10:00am - 10:50am
|
Thomas Bogue
Email: tbogue2@illinois.edu
Office: 0207 SC
Hours: Fri 12:30pm - 2:10pm
|
Eric Huber
Email: echuber2@illinois.edu
Office: 0207 SC
Hours: Mon 3:30pm - 4:20pm,
Wed 4:30pm - 5:20pm
Note: Eric's Oct 24 OH canceled, moved to Oct 25.
|
John Lee
Email: jlee170@illinois.edu
Office: 0207 SC
Hours: Mon 10:00am - 10:50am,
Fri 10:00am - 10:50am
|
|
|