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.