ICS 142 Winter 2004
Course News


Check back here every day or so. I will generally post important coursewide announcements here. They will be listed in reverse-chronological order (i.e. newest items first).

Date Added News Item
M 3/29 The final course grades are now available.
F 3/19 The Final Exam Study Guide is now available, along with the latest Schedule update. (Yes, it really is available now.)
W 3/17 The Final Exam Review Session will be held on Saturday, March 20, from 2-4pm in IERF 101. As it the typical rule in my review sessions, I won't be bringing prepared materials. Since you know better than I do what you need help with, I'll take your questions either for two hours or until there are no more questions. So be sure to bring questions!
T 3/16 Some commented ILOC examples from Friday's lecture are now available. I've also included a Zip archive with a couple of examples for use in testing your Assignment #6, along with the output from my solution.
Th 3/11 Assignment #6 is available.
Su 3/7 More Schedule updates are available.
Su 3/7 One typo in the second sample input/output (the one I added yesterday) was found. The type of the variable j was intended to be boolean, but I left it as string. It's now boolean, which makes the output match the input.
Sa 3/6 A couple of fixes have been made to the sample input and output provided in the Assignment #5 write-up. Also, as we discussed in class yesterday, I've provided a second example, one that includes overlaying of local variables in an activation record.
Th 3/4 Assignment #5 is now available.
F 2/27 As discussed in Wednesday's lecture, the due date for Assignment #4 has been postponed to Thursday, March 4, 11:59pm.
Th 2/26 A fairly significant bug was found in the version of the SymbolTable that I included with the Assignment #4 Starting Point. It used dynamic scoping to resolve non-local variable references, rather than static scoping. Argh! A fixed version of SymbolTable.java is now in the Starting Point. I've also included a README-NewSymbolTable.txt file in the Starting Point, which explains how to use two new symbol table methods that are required to implement static scoping.
W 2/25

A new version of the Starting Point for Assignment #4 has been posted. It has only three very minor changes in it:

  • Statement.java is now included, since it was originally left out by accident.
  • One line of code in Interpreter.java has changed. A call to a non-existent initialize() method has been changed to a call to declare(), which does exist.
  • The constructor for the Type class had a bug in it; it didn't initialize the initialValue field.

Someone also asked me earlier today whether SubprogramDeclaration.java was missing from the Starting Point. The answer is no; SubprogramDeclaration is an AST node, so it's my assumption that each of you already has a similar class (or classes) yourself, so providing mine would be of little benefit (and probably cause more problems than it would solve).

M 2/23 Assignment #4 is available.
M 2/23 A minor typo was found on the Midterm answer sheet. I left one set of parentheses out of the answer to Problem 1c.
Sa 2/21 The Midterm scores and a Midterm answer sheet are now available. Midterms may be picked up in my office beginning on Monday; as soon as you leave my office with it, I will no longer entertain a regrade request. I suggest printing a copy of the answers and bringing them with you, as it will drastically reduce the number of questions that you'll need answered as you scan through your exam.
Th 2/19

Two changes regarding Assignment #3:

  • The due date has been postponed until Monday, February 23, 11:59pm. This is motivated by two goals. Firstly, I want everyone to have a chance to get this assignment finished, because it's a very satisfying one to complete -- it feels like you've finished a significant portion of a "real" compiler. Secondly, and perhaps more importantly, at least Part 1 of your solution to Assignment #3 will need to be reused in Assignment #4.
  • I've made a couple of updates to the assignment. The write-up has been updated to reflect them, but to keep things simple for those of you who have already started, here is a Zip archive containing only the updates. Be sure you read the README.txt file first; it explains what the changes are. (In short, if you aren't very far into Part 2 yet, they won't affect what you've already done. If you are deeply into Part 2, it's likely that they will only affect one or two lines of your code.)
Th 2/12 The Schedule has been updated with the reading that corresponds to the lecture material from yesterday. It should be pointed out that I will not be testing you on this reading material on the Midterm.
M 2/9 The Midterm Study Guide is now available.
Su 2/8 Assignment #3 and another minor Schedule update (covering today's lecture) are available. A midterm study guide is forthcoming soon. By the way, I went ahead and included a completed, downloadable version of the Homer example from lecture in the Assignment #3 write-up.
Su 2/8 Now that Java 1.5.0 Beta 1 is available (which includes not only plenty of great library updates, but also some fairly fundamental language changes), it is necessary for us to decide whether we'll allow the new language features to be used in this course. Since this is an early beta, the language features are new for everyone (including the course staff), and tool support for the new language features is still very much up in the air, the clear decision here is to disallow the use of the new Java 1.5 language features for the remainder of this course. As much as I'd like to allow you to use the latest and greatest, be warned: if the code you submit cannot be compiled and run using Java 1.4, you won't get credit for your assignment.
T 2/3

The assignment grades will be posted to the EEE GradeBook when finished, which you can access via EEE. Included for each assignment will be your score and an explanation of what you were marked down for. There are a couple of things that you need to know, however. (Please note that the scores aren't there yet, but will be soon.)

  • There are three graders who are working on assignments this quarter. Essentially, the class has been split (alphabetically) into three sections, with each grader handling all of the assignments for one of the sections. The consequence here, of course, is that different graders may grade differently. A statistical adjustment will be made at the end of the quarter, which will seek the equalize the percentage of points lost by each section. That means that comparing your score to a score from a student in another section is not necessarily meaningful. If you're in the "hard" section where the scores are lower, the scores will be boosted somewhat at the end of the quarter to compensate.
  • If you're interested in having your assignment regraded, you should first contact the grader. If you're unable to resolve the issue with the grader, then you should contact the TA, Carmen Badea (carmen@ics.uci.edu). If you're still unable to resolve the issue, then you should contact me. In short, the TA and graders are entirely responsible for this quarter's grading. They know the intimate details of how it was done; I don't. So I prefer only to arbitrate in a case when you think you've really been treated unfairly and can't find a resolution to the matter by communicating with the graders and/or TA.
  • To maintain some sanity in this very large class, the statute of limitations on regrade requests is seven days after the time when they were posted. So, supposing that the grades for Assignment #1 were posted tomorrow (W 2/4), any regrade requests would have to be submitted by email no later than W 2/11.
  • Here are the names and email addresses of the graders:
    • If your last name begins with A-H, your assignments will be graded by Bo Xing (bxing@uci.edu).
    • If your last name begins with I-O, your assignments will be graded by Paolo D'Alberto (paolo@ics.uci.edu).
    • If your last name begins with P-Z, your assignments will be graded by Jie Ren (jie@ics.uci.edu).
Sa 1/31 The Schedule has been updated.
F 1/30 I found a bug in the Monkie2004 grammar given in Assignment #2. The rules for NonEmptyParameterList recursed back to ParameterList instead of NonEmptyParameterList, allowing formal parameter lists that look like this: "x: integer, y: integer,". A similar problem existed in a rule for NonEmptyExpressionList. These have both been fixed.
W 1/28 Assignment #2 is now available. Also, as discussed in class today, there will be only six assignments this quarter, rather than eight; I've opted for fewer, but meatier, assignments than I'd originally planned. The Course Reference has been updated with the new grading scale.
M 1/26 Round 2 of the enrollment is now done. I think you're going to like what I have to say...
Sa 1/24 More Schedule updates are up.
Th 1/22 The latest Schedule updates are now available.
M 1/19 The Enrollment List (Round 1) is now available, which lists students who are now authorized to add the course, as well as students who requested and were granted a change of section.
Su 1/18 I made a very minor change to Assignment #1 this morning. I modified the rule for Monkie2004 identifiers to allow digits in them.
Sa 1/17 My office hours will be: Mondays 2-4pm, Tuesdays and Thursdays 1-2pm. Since this coming Monday is a holiday, I won't be in, but I will be available starting on Tuesday.
Sa 1/17 Assignment #1 is now available. I've also made an update to the Schedule and added a document that explains how to set up Java on your Windows system.
M 1/12 It occurs to me that there hasn't been enough lecture material covered to warrant having a discussion on Wednesday, January 14. Wednesday's discussion is canceled. Discussions will begin Friday, January 16 and Wednesday, January 21 instead.
Su 1/11 The Schedule for Week 1 is now available.
Th 1/8 The discussion sections will begin meeting Wednesday, January 14 and Friday, January 16. For more information about discussion section meeting times and locations, see the Course Reference.
Th 1/8 This course will be a work-in-progress throughout the quarter, with the Schedule and Lab Manual updated periodically throughout. Keep an eye on this page for information about updates.


This course Web site has been validated against the XHTML 1.1 and CSS 2.0 standards. To ensure that your own Web pages meet established Web standards, visit validator.w3.org.

Valid XHTML 1.1! Valid CSS 2.0!