594 Old Announcements
Spring 2006, David Matuszek
|May 2, 2006||The final exam will be in our regular classroom, Moore 212.|
|April 20, 2006||
Clarification (this is in the assignment, just not as explicitly as it could be):
Your NFA should accept its input if and only if it is in a final state at the end of the input. It isn't enough to "pass through" a final state.
This implies that, for the purpose of the backtracking algorithm, a final state is not the same as a goal node. You have reached a goal node if you are in a final state and there is no more input. Your test for a goal node must test both these conditions.
A search path will fail in one of two ways: either (1) there is no transition out of the current state for the current input symbol, or (2) there is no more input and the current state is not a final state.
It doesn't matter how many ways there are to fail to accept the input; an NFA accepts the input if there is any way to reach a goal node. Hence, each failure causes backtracking (and going back over the input). The input is rejected if all possible paths have been explored, and all have failed.
|April 18, 2006||As noted in class last week, your NFA does not have to deal
with empty transitions.
I have posted some sample inputs for the NFA assignment.
|April 11, 2006||
In response to a very common question, to print a graph, just produce an ASCII listing of it. Don't try to create a "picture"--that's very, very difficult.
You should print out everything about the graph, so that someone with a pencil and paper could make a complete drawing of it, if they wanted to.
|April 10, 2006||
Extra day. Mostly in order to give people a chance to ask more questions, the Graph assignment will be due Tuesday by midnight. The final project will be made available on Tuesday.
In response to a number of questions about what is possible on a graph,
here is an example graph that you should be able to create:
|April 9, 2006||
There's an inconsistency in the assignment that only two people have
noticed so far (thanks, Warren and Michael!). I said that
You should resolve the inconsistency by either (1) making the container
|April 5, 2006||I wrote up a page of hints for the Graph API (or any other API) assignment.|
|April 5, 2006||Instead of class Thursday April 6,
I am asking everyone who can do so to attend University
Sun Day At Penn. If you can stay for pizza at 6:00, please email email@example.com
so they know how much food to get.
Material covered at this event will not be on the final exam.
|April 5, 2006||If you are unable to register for our new course, CIS 700 Emerging Web Technologies (Summer II), that's because we created it so late that it's not in the system. Let me or Mike Felker know if you want to register, and we'll make it happen.|
|April 3, 2006||I've posted links to the most recent lecture notes. Apologies for the slow updates.|
|March 31, 2006||Here are some Logo2006 programs. You can use these for further testing, if you like. More "art" submissions are welcome!|
|March 30, 2006||
|March 29, 2006||I've posted the first draft of InterpreterTest.java and TurtleTest.java. Suggestions welcome.|
|March 28, 2006||New course announcement: CIS 700 Emerging Web Technologies (Summer II).|
|March 26, 2006||Trouble with Threading? Here are some suggestions.|
|March 23, 2006||
|March 23, 2006||Part II of the Interpreter assignment has been posted.|
|March 17, 2006||The assignment was unclear about what getters are needed for the Turtle class. I've now fixed that.|
|March 17, 2006||
Modifications (mostly minor) to recently posted code:
|March 17, 2006||
By popular demand!
Pizza bash, Wed. Mar. 22, 6 pm in Levine 315.
|March 16, 2006||I've posted the Interpreter assignment. It's missing a few hyperlinks, but I'll fill those in shortly.|
|March 14, 2006||Gang Song will be holding his office hours in Moore 207 from now on.|
|March 14, 2006||I've posted the answers to the midterm.|
|February 28, 2006||All requested changes have been made to DavesParserTest.java.|
|February 28, 2006||
Trivial correction: In my sample Parser code for expression(), I inserted a missing '}'.
Clarification: Every procedure node should have a parameters child and a block child, even if there are no parameters or statements.
Late programs: As noted, there will be no extensions given on this assignment. However, late penalties will not be applied during Spring Break. See the Parser Assignment page for details.
Testing: For your last-minute testing pleasure , I'm posting DavesParserTest.java. Please note:
|February 25, 2006||
Correction: On the Parser
Assignment page, in the
Another correction: In the
|February 23, 2006||Advice for Parser Authors|
|February 21, 2006||I've posted a writeup on Coping With Generics.|
|February 20, 2006||
I have posted my (noisy) version of RecognizerTest.java. Since your Parser should be built around your Recognizer, you may wish to use this test file to make sure you have a good starting point.
Note: In general, JUnit tests should not print anything. This
is a modified version of my JUnit test class that prints out where
you are using
|February 16, 2006||Quick note on testing:
|February 15, 2006||
Sajaan is the first to point out that
In order to implement our
Also, note that I did not specify whether null keys and values were allowed, so it's your choice.
|February 13, 2006||Error in HashTable assignment: Instead of
|February 9, 2006||I've posted the code for my Tree.java and TreeTest.java.|
|February 7, 2006||
Yet another correction
: In my Grammar I forgot
|February 5, 2006||To my Java Style Rules page I have added a link to
Sweet-Smelling Comments. I have also added a statement that everything
|February 3, 2006||
Changes in Grammar (you knew it had to happen, right?):
Deleting the parentheses in the rule for
Since my Recognizer now passes all my tests, I don't think I'll neeed to make any more changes in the grammar.
|February 1, 2006||In order to do the current assignment, you will need to make some very
minor changes to your
|January 30, 2006||By popular request , I have posted the code for my Type.java, Token.java, and Tokenizer.java.|
|January 30, 2006||Note changed office hours (above).|
|January 26, 2006||Yet another correction (sigh). The methods
(Now changed on assignment page.) Thanks, Saajan, for pointing this out.
|January 25, 2006||
I've made some changes in the third
assignment, as marked in this red color.
I've added a method that I had mistakenly omitted (
As promised, I have posted the (brief) Style Rules that are required in this and all subsequent assignments.
|January 23, 2006||
No office hours tonight!
Sorry, my schedule is still in a state of chaos.
|January 21, 2006||
|January 19, 2006||You can set up Eclipse to show you Javadoc information about methods when you hover over the name of the method. I've just added information about how to do this to my Eclipse FAQ.|
|January 18, 2006||I've added a page on some of the things I've learned about Java 5.0 Generics.|
|January 18, 2006||Trivial change in Tree assignment:
For better consistency with
|January 16, 2006||
Change in Tokenizer assignment:
Also: If you are getting messages such as