December 24.

  • Happy holidays and thanks for the hard work you put in this semester. Stay in touch.
  • Final grades have been submitted to BearFacts. The course GPA (without the F's) is 3.08. It was 3.05 before the PA6 extra credit was applied.
  • PA6 Extra credit: 12 contestants (out of about 29) saw a one-step boost in their final course grade (e.g., from C+ to B-). Another four already had an A+, so no boost for them. :-)
  • PA 4 and PA 5 regrades have completed. If your regrade submission improved your score, it has been entered in glookup. Please contact Jimmy immediately if you have concerns about PA 4 and PA 5 regrades.
  • Your score on the final is now available on glookup. The exam is out of 100 points. The mean is 59.3. The median is 60. The standard deviation is 15.1. One student got 92, which is the max.

December 22.

  • PA6 result is posted. link. Some subjective extra credit may be given to participants whose PA6s are slower than the referenece. ppt slides
  • PA 1 and PA 2 regrades have completed. If your regrade submission improved your score, it has been entered in glookup. Please contact Jimmy immediately if you have concerns about PA 1 and PA 2 regrades.
  • PA5 grades (without regrades for PA5) are in glookup. Please contact Jimmy immediately if you have concerns about PA5 grades.

December 20.

  • Ras' office hours today are moved from 1-2 to 4-5. Apologies for the inconvenience. --Ras
  • Here are some notes from Saturday's review that were kindly donated by Ramy.
  • The solutions to midterm 2 are here.
  • If you submitted for a regrade for PA2, PA4, or PA5, you must email Jimmy describing the changes that you made. The REGRADE file only applies to PA3 as stated in an earlier message.

December 18.

  • PA 5 grading summary including late day penalty had been mailed to your cs164 accounts. Each submission gets one email to the account that contains the cvs repository for PA5.
  • PA5 is out of 100 points. The mean is 79.3. The median is 82. The standard deviation is 16.2. Here is the histogram.

December 17.

  • Office hours on Monday Dec 20. Ras: 1-2. Jimmy and Armando: their usual Monday office hours.

December 16.

  • The review session will be held from 4pm to 6pm on Saturday (12/18/2004) in 306 Soda.
  • PA 5 grading logs had been mailed to your cs164 accounts. Each submission gets one email to the account that contains the cvs repository for PA5.

December 15.

  • If you submitted PA6, please send Jimmy email briefly describing the optimizations that you implemented. You need to send the email by Monday at midnight.

December 14.

  • After talking with several students, we have decided to give a little more partial credit on PA3. In particular, if your score on the code generator portion of the project (corresponding to the generatoroutput.log) was higher than your score on the decaf parser (corresponding to the decafoutput.log), we will increase the weight of the code generator part from 25% of the grade to 50% of the grade. Also, some people got zeros because their code failed to run with assertions turned on, so we have regarded everyone's project with assertions off, and used the highest of the two grades. The new grades can be found on glookup. The new average is 57.4, and the new median is 66.
  • In case after this adjustments you still need a regrade, here are some answers to some common questions that have been asked by students:
    - The regrades are over 80 points, and are NOT all-or-nothing, i.e. if you pass half the testcases, you would get a 40.
    - regrades will be graded with the 50/50 weights, and a few more testcases will be added to the code generator tests to reflect the increased weight.
    - If you score lower on the regrade than on your original submission you can keep your original grade
    - You have until the time of the final exam to submit code for a regrade
    - To submit code for a regrade, simply commit your files to CVS along with a file called REGRADE containing the word 'yes'.
    - Regrades will be done using the -ea flag, so this time make sure your code works with assertions on.
    - These points only apply to regrades for PA3. Other projects have their own deadlines and policies.

December 11.

  • The deadline for PA5 regrade will be Sunday (12/19) midnight.
  • The deadline for all other PA regrades will be Friday (12/17) midnight.
  • How to submit PA6: Create a PA6 module in your CVS. (the same way you do for PA5)
    In order to submit a benchmark(the test case that performs best with your
    optimizer), name that file "benchmark.decaf" in tests/ dir. No remote testing for PA6.

December 10.

An alternative remote tester has been set up. The original remote tester will continue to run as before, and run all your test cases. The alternative remote tester is currently running in parallel on 8 machines. Below are the features of the alternative remote tester:

1. Results will be updated every hour

2. It will only run the first 20 test cases in your tests directory using alphabetical order.

3. It doesn't give coverage.

4. It doesn't work with the Eclipse plugin.

Below are the files updated by the alternative remote tester:

summary: List the testcases that was run, and whether your submission pass or not

*_your_compile.out: Your compiler's output while compiling the testcase

*_ref_compile.out: Reference compiler's output while compiling the testcase

*_your.out: Your executable's output when it is run

*_ref.out: Reference executable's output when it is run

We expect the turnaround time to remain the same as the deadline approaches. If you have problems, contact Jimmy.

December 09.

  • PA5 deadline is extended by one day. New deadlines shifted by one day:

         PA5:

         due Fri Dec 10
– if you’ve ran out of late days, you can still submit late, with a penalty of 10%/day
– submit not later than Monday Dec 13

         PA6:
– due Tuesday, Dec 14

  • A couple of people asked whether string variables can be assigned null. The answer is YES. Variables of type String can be assigned null.

December 06.

  • PA3 grades are available on glookup. The project is out of 100 points. The mean is 47.92, the median is 56.48, and the standard deviation is 36.419. Grading log files for PA4 have been checked into your CVS repositories. SUMMARY contains a summary of how many test cases you failed, as well as who is your partner and what date in the DONE file was used. If there is an error in any of these things, let Armando know. The other two .log files contain information about the individual test cases. The grade distribution can be seen here.
  • The regrade policy will be the same as for PA4: You can submit twice for regrade, each attempt has a penalty of 15 points. For example, if your first attempt passes all the testcases, then your regrade score is 85. If your second attempt passes all the testcases, then your regrade score is 70. Contact Armando for PA3 regrades

December 1.

  • Grading log files for PA4 have been checked into your CVS repositories. There are two files. The login-grade.log file contains an explanation of the grading system and a list of testcases that your submission failed. The login-pa4-log.tar.gz contains the actual testcases that your submission failed on.
  • Regrade policy for PA4: You can submit twice for regrade, each attempt has a penalty of 15 points. For example, if your first attempt passes all the testcases, then your regrade score is 85. If your second attempt passes all the testcases, then your regrade score is 70. Contact Jimmy for PA4 regrades.

November 30.

  • Ras' office hours for Wed and Thu this week are cancelled (will be out of town). Apologies for the inconvenience. Please see the TAs with your questions. --Ras
  • PA4 grades are available on glookup. The project is out of 100 points. The mean is 73.5. The median is 87. The standard deviation is 15.42. Here is the histogram.

November 24.

  • Midterm 2 grades are available on glookup. The mean is 74.74. The median is 73. The standard deviation is 14.28. The exam is out of 100 points. One student got 100, which is the max. Here is the histogram.

November 19.

  • Remote testing is running. see instructions. IMPORTANT!!
  • Starter kit is updated. Only a decaf.dtok file is added to the tests/ directory. You don't have to re-download it because you can use the PA4's decaf.dtok for PA5.

November 17.

         Exam checklist. The exam will cover some of the following topics (but maybe some others, too).

    • Code Generation: Call sequence for non-oo languages, memory layout for Objects, inheritance, dynamic dispatch, etc.
    • Dataflow analysis: Know the analysis studied in class, and make sure you can create a dataflow analysis from scratch for a property you've never seen before.
    • Register Allocation: Understand graph coloring, relationship with live variable analysis.
    • Garbage Collection: Understand the garbage collection algorithms discussed in class.

         PA5 clarification: please add the following item to the list of rules on page 4 of the PA5 handout. Logically, this new rule relates to the 7th item on this page. (The PA5 handout on the course web site has been updated.)

    • A reference to a static field x of a class T is legal in both instance and static methods of class
      T (and its subclasses), and is internally translated to T.x.

November 16.

         I will be having extra office hours on Wed. 17 starting at 5:00 PM on 611 Soda to go over material for the exam. -- Armando.

         Jimmy will have an extra office hour on Thursday from 1pm to 2pm in 511 Soda. This is in addition to his regular office hour from 2pm to 3pm on Thursdays. So he will be in 511 Soda from 1pm to 3pm on the day of the exam.

November 14.

         After some clarifications have been added to its handout, PA5 has been posted. Please note that we ar enot providing a solution to PA4; please use the remote tester to weed out your PA4 bugs.

         For those who printed the handout before 8:30pm. Correction on PA5 dues times: as has been common, the project is due 11:59pm, not 12:59pm as shown in the handout. The handout is now corrected.

November 12.

         Homework 8 has been posted. The homework is coming later than planned (my apologies), due to a crash of my hard disk. If you won't have the time to work out a solution you are proud enough to submit, note that the homework is optional (read more in the handout). --Ras

         PA5 is coming tomorrow. Stay tuned.

November 9.

         Below are the thresholds for passing in the previous written assignments. You will see a 1 in glookup if you get a score at or above the threshold. Otherwise, you will see a 0.

         wa1 30/40

         wa2 19/30

         wa4 20/30

         wa5 6/10

         wa6 20/30

November 7.

         The sections on Wed, Nov 10, are cancelled. Their material will be covered, by Armando, during a part of the lecture on Tuesday.

         Garbage collection slides are now posted.

         Jimmy will be away next week in Pittsburgh attending a conference. His office hours will not be held next week. He can be reached via email.

November 6.

         Due to temporal failure of the instructional severs, deadline for PA4 is extended to Tuesday, Nov 9. NOON. For the date in DONE file, submission before noon are counted as 11/08/2004 submissions. The ones submitted in the afternoon are counted as 11/09/2004. This rule applies to the subsequent late days. BUT NOT FOR PA5.

October 31.

         Remote testing instruction for PA4 is updated.

  • Errata and clarification page is updated. Please check it frequently from now on.
  • Only projects called PAx in your cvs will be collected for grading purpose, where x is the ID of the programming assignment.

October 29.

  • For WA7, you may turn in the assignment as a project group. Make sure both names and logins are on the paper.

October 29.

  • PA2 has been graded. The project is out of 59 points. The mean is 37.52. The median is 50. The standard deviation is 22.1. Here is the distribution. PA2 grades are available on glookup.
  • The grading log for PA2 has been checked into your cvs repository as a .tar.gz file.
  • Regrade policy for PA2: For a penalty of 12 points, you may make small changes to your source code and resubmit. This means that the best score you can get on a regrade is 47/59. Small change is up to the interpretation of the TA. You need to schedule a meeting with the TA for regrade. For PA2, contact Jimmy for regrade.

October 28.

  • PA3Solution.jar updated
    The only difference compared to the old file is it has the PA3's source code attached with it. Starter kit is udpated to reflect this.

October 26.

  • PA4 is due Nov 8, as stated in the handout. Apologies for the confusion; I was sick in the last few days and neglected updating the web site. --Ras
  • When reporting problems, please provide the login where your cvsroot is hosted.

October 23.

  • To compensate for yesterday's cvs problem, we decided to give one late day to all students. Now you have 4 late days total.
  • In order to improve efficiency, remote tester won't test the projects that have DONE file committed.

October 21.

  • Submit PA3 the same way you submit PA1 and PA2. collecting script will be running until 10/26.
  • If you have the report.xml file but the plug-in doesn't show anything, please copy the .config file found under tests/ in the newest starter kit to your tests/ directory.

October 19.

  • Per popular request, WA5 will be due one day later, on Friday, Oct 22, 3:30pm in the cs164 mailbox in 283 Soda. This extension is granted so that your PA3 work doesn't overlap with WA5.

October 17.

  • Instructions for remote testing PA3 are up. Remote testing is now running every 4 hours. The frequency will increase as the deadline approaches.
  • Due to a crash of an NFS server on Saturday night, PA3 deadline has been extended by one day, to Thursday 10/21/2004 midnight.

October 16.

  • Here is a build.xml that works for PA3. Besides updating with this file, you need to do the following in Eclipse: windows->preferences->ant->Runtime->add external jars The jar file you want to add is tools.jar from your jdk installation. For example, on my computer, the tools.jar file is in c:/Program Files/Java/jdk1.5.0/lib.

October 15.

  • Please download decaf-with-actions.dpar for step 5 of PA3. WARNING: do not underestimate the amount of time it takes for completing step 4 and step 5.

October 14.

  • From Ras: I totally forgot to hand out HW5 in class today (apologies!). This homework is officially assigned today, and due in a week (Oct 21). You can print the assignment off the CLASS web, or get a hardcopy from the mailbox on thE outside of my office (773 Soda).

October 12.

  • Midterm 1 grades are available on glookup. The mean is 70.17. The median is 72. The standard deviation is 12.54. The exam is out of 100 points. Two students got 96, which is the max. Here is the histogram. You can pick up your midterm in discussion tomorrow.
  • The solutions for PA1 and PA2 that are needed for PA3 are included in two jar (PA1.jar, PA2.jar) files in the starter kit, but we prefer that you use your own PA1 and PA2 solutions.

October 9.

  • The grading log for PA1 has been checked in to your cvs repository.
  • Regrade policy for PA1: For a penalty of 8 points, you may make small changes to your source code and resubmit. This means that the best score you can get on a regrade is 36/44. Small change is up to the interpretation of the TA. You need to schedule a meeting with the TA for regrade. For PA1, contact Jimmy for regrade.

October 8.

  • The solution to Midterm I is here. Apologies for the delay.
  • The handout for PA3 was updated again at 1:00 AM today. The change was to the grammar on page 4.
  • Here is a .dpar file containing the grammar for Decaf. The grammar is not yet in LL(1), but you should be able to make it LL(1) through left factoring and inlining of rules. This is meant to serve only as a hint and may contain small errors; the official grammar for Decaf is the one that appears in page 4 of the project handout.
  • PA1 has been graded. Here is the histogram. Maximum possible score on PA1 is 44. The mean is 37.24. The median is 41.
  • PA3 starter has been updated. A .config for remote testing is included. decaf.dpar is included. "Java Build Path" problems for using PA1.jar and PA2.jar have been fixed. Please make sure your have decaf.dpar (not dcaf.dpar) in your tests/ directory.

October 8.

         The handout for PA3 was updated at 10:00 PM today. The Starter kit was also updated at 9:00 PM. If you downloaded your starter kit or handout before that time, please get a new version of both.

October 4.

         Exam checklist. The will cover some of the following topics (but maybe some others, too).

    • Computing FIRST, FOLLOW sets.
    • When/why is (not) a grammar LL(1)? How to make a grammar LL(1)?
    • LL(1) parsing algorithm.
    • Recursive descent algorithm. Complications arising in r.d. parsing.
    • How will an incorrect parsing algorithm (we will describe the incorrect algorithm) behave on a particular input? When will this parser fail?
    • Bottom-up parsing: show a correct (successful) sequence of actions. Which stack configurations is guaranteed to fail?
    • Given a grammar, which parsers are suitable for the the grammar?
    • NFA -> DFA conversion.
    • DFA minimization.
    • Write a regular expression for a lexeme described in English.
    • Regular expression -> NFA algorithm.
    • Show a suitable AST for a smal lprogram fragment.
    • Write a grammar for a small language described in English and using examples of strings from the language.

October 1.

         Ras will hold an extra office hour on Monday, Oct 4, from 1 to 2, in his office (773 Soda).

         Jimmy will hold an extra office hour on Monday, Oct 4, from 2 to 3, in 611 Soda. He will also have his regular office hour from 3 to 4 in 511 Soda on the same day.

         Armando will hold an extra office hour on Monday, Oct 4, from 4 to 5, in 611 Soda. He will also have his regular office hour from 5 to 6 in 511 Soda on the same day.

September 30.

         Instructions for Submitting Projects is updated to answer FAQ.

September 26.

         In PA2, when an Unmatchexception is thrown, the lexer should output the lexeme that caused the exception. Please use System.out to print the lexeme.

September 25.

         Remote testing statistics can be found in Projects page

September 24.

         Typo in HW2, Problem 1: The first R's production should be R->sURr .

         Instructions for remote testing PA2 has ben updated.

         Submit PA2 the same way as PA1.

         DONE file has to contain the date of your project to be graded. (range from 09/26/2004 to the last slip-day 10/03/2004)

         PARTNERS has to contain the logins of the group member(s).

         Coalition members need to put PARTNERS files in both repositories. The files have to contains both coalition members' logins.

         Two people groups only need to put the project under one member's cvs repository. Please still follow the PARTNERS file rule.

September 22.

         Announcement (CVS lecture): The CSUA is hosting a help session on CVS Source Control System, next Tuesday, September 28, at 5:50pm in 306 Soda.

September 21.

         WA2: DFA minimization. If you want to avoid checking out a book in the library, here's a writeup on minimiaztion that may be sufficient: http://www.cs.utexas.edu/users/nuckolls/cs-341/notes-2.20.pdf

September 19.

         PA2 starter kit updated. The toString method for Token was modified so that we can all agree on the format for outputting the line number and char number of the token. If you started on PA2 already, you can simply replace the Token class with the new one in LookaheadLexer.java..

         For step 4 in PA2, it is up to you on how to implement char counting. You are not required to use actions to implement it.

         Instructions for Remote Testing PA2 can be found at the projects page.

September 16.

September 11.

  • Instruction for submitting project is slightly updated.

September 10.

  • From now on, projects will be due at 11:59 PM instead of at noon.

September 8.

  • PA1 deadline has been extended to 9/13 at 11:59 PM.
  • Insturctions about how to submit the project will be posted soon. Please check back frequently.
  • A FAQ page about remote testing has been posted here.

September 7.

  • Remote Testing 1.1.0
    An improvement to show student outputs and reference outputs have been made in this 1.1.0 version.

    Introduction to Remote Testing 1.1.0
    [ Download ]
  • Remote Testing infrastructure is running every hour

September 6.

  • Remote Testing and submit
    If you still don't see report.xml and cvg_summary.xml in your PA1/tests/ directory when you update with CVS, please contact cs164-la@imail.cs.berkeley.edu right away. Don't forget to include you login in your email.

September 4.

  • An Errata section has been added to the webpage.
    A couple of bugs were fixed in the reference implementation. Some inputs that matched the reference under the old test may no longer match.

September 2.  A Couple of FAQ from yesterday's lab.

  • I changed the java compliance level to 1.4, but eclipse still complains about asserts.
    It's not enough to change the "Compiler compliance level" to 1.4 you must also uncheck the box that says "Use default compliance settings", and change both "Generated .class files compatibility " and "Source compatibility" to 1.4 as well.
  • On step 10 of section 3.2, I went to Run/Run…, but I don't see any "Arguments".
    If this is the case, select "Java Application", and click on the "New" button. Under "Name", type "PA1", and also type "PA1" under project and under Main class. Then, under the arguments tab, you can fill in the arguments.

August 30.  Welcome to the CS164 Fall 2004 web site. Check this page regularly the latest announcements.

Early administrativia:

  • The first discussion sections will be held in the 330 Soda lab.
  • While 330 Soda is our nominal lab, you can do your work in any lab where Eclipse is running. (This will get harder in PA4 and PA5, though, as you will need to run your code on a x86 machine,b ut there are solutions. But we'll burn that bridge when we get to it.)
  • To get access to 330 Soda after hours, students should go to 387 Soda or 253 Cory to have their card keys enabled for this semester. During the day, students should just heed the sign on the door that says "Just Push". :-)
  • Class account forms will be handed out during the recitations on Wed, Sep 1. Don't discard the form after you change your password! You will need the original password to create a CVS directory, and also to change the password on the Windows account (because changing the password on the Unix account doesn't change the password on the Windows account, and vice versa).
  • You may use any account for your work (including your home Mac, Linux, Windows, AIX, or HP-UX), but you will have to use your course account as a CVS repository, which is how you submit your solutions.
  • This course will use the Eclipse programming environment (so don't even ask about your dad's emacs or vi :). If you want to code on your home machine, download Eclipse here. You will also need the plugin for remote testing, available on our Software page.
  • If you are impatiently waiting on the waiting list:
    • Make sure to file an appeal form in Soda 390 by Friday Sep 3, 5pm!
    • Do not contact the class staff, but instead contact Michael-David Sasson (msasson@cs, 379 Soda, 3-6002)
    • For waiting list policy details: see here  and the FAQ.
    • Still, pick up a class account and start doing the homework.
  • If you are a lucky holder of one of the following accounts, the password listed on the account form will not get you into the departmental Windows system. Sorry about this. To fix the problem, you need to append the string W2k to the end of the password given on the account form. You don't need to fix anything to log into the Solaris machines; only Windows is affected.
    • cs164-ac, cs164-aj, cs164-al, cs164-aw, cs164-bb, cs164-bd, cs164-bi, cs164-bv, cs164-bx, cs164-cg, cs164-dw, cs164-ec, cs164-ef, cs164-ej.