CSCE 590: News

 Final Grades Posted
Posted on Tuesday, 14 May 2002, 08:49AM
Thank you all for a wonderful semester! Update: Tuesday, 14 May 2002, 11:30AM: Ooops, I was truncating too early. A couple of grades have improved now that I stopped truncating partial results.

 Test 4 Grades
Posted on Friday, 10 May 2002, 10:05AM
Are now posted. The final average already shows the dropping of the lowest test grade.

 New Grading Policy
Posted on Thursday, 25 April 2002, 07:55AM
By popular demand, and since Test 1 had an abnormally low mean, I am changing the grading policy so that instead of having 40% of the grade come from the average of the four tests the 40% will come from the average of the three best test grades (that is, I will drop your lowest test grade). This applies to both graduate and undergraduate students. Undergraduate students also benefit, as always, from having their lowest problem set grade dropped.
 PS4 and Class Generation Form WSDL
Posted on Monday, 22 April 2002, 07:25PM
As discussed in class (for those of you who stayed late) the upcoming Apache SOAP implementation called Axis provides a WSDL2Java tool which generates the needed Class files from a WSDL file. You should use this program to generate the class files from the Google WSDL and then link with those class files.

Also, the document Creating Type Mappings describes how to tell Apache SOAP which complex types are matched to which Classes.

Finally, Ranapratap R Vedre was kind enough to provide the following hints:

Download link for axis: 
http://xml.apache.org/axis/dist/beta1/

User Guide (has instructions for generating Java files from WSDL using
Wsdl2Java)

http://cvs.apache.org/viewcvs.cgi/~checkout~/xml-axis/java/docs/user-guide.html

[The following] is a text file with method using SoapMappingRegistry 

public void search(String keywordValue) throws MalformedURLException
{
  URL url = new URL("http://api.google.com/search/beta2");
  String name = "";

  Call call = new Call();
  call.setTargetObjectURI("urn:GoogleSearch");
  call.setMethodName("doGoogleSearch");

  BeanSerializer bSerializer = new BeanSerializer();

  SOAPMappingRegistry registry = new SOAPMappingRegistry();

  QName searchResultName = new QName("urn:GoogleSearch",
                                     "GoogleSearchResult");
  QName directoryCategoryName = new QName("urn:GoogleSearch",
                                          "DirectoryCategory");
  QName resultelementnameName = new QName("urn:GoogleSearch",
                                          "ResultElement");

  registry.mapTypes(Constants.NS_URI_SOAP_ENC,
                    searchResultName,
                    GoogleSearchResult.class, bSerializer, bSerializer);
  registry.mapTypes(Constants.NS_URI_SOAP_ENC,
                    directoryCategoryName,
                    DirectoryCategory.class, bSerializer, bSerializer);
  registry.mapTypes(Constants.NS_URI_SOAP_ENC,
                    resultelementnameName,
                    ResultElement.class, bSerializer, bSerializer);

  call.setSOAPMappingRegistry(registry);

  call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

  //He is too kind...I delete a bunch of lines here.
  //They set the parameter values for the call.
  
  call.setParams(params);

  Response response = null;

  try{
    response = call.invoke(url,"");
  }
  catch (Exception ex ) {
    ex.printStackTrace();
  }

  if(response.generatedFault())
  {
    Fault fault = response.getFault();
    System.out.println("Fault Code:" + fault.getFaultCode());
    System.out.println("Fault String:" + fault.getFaultString());
  }
  else
  {
    Parameter result = response.getReturnValue();
    GoogleSearchResult googleResult = (GoogleSearchResult)result.getValue();
    ResultElement[] resultElements = googleResult.getResultElements();
    this.setFirstResultElement(resultElements[0]);
    return;
  }
}


 PS3 Grades Out
Posted on Tuesday, 16 April 2002, 11:30AM
They are now posted.

 Test 3 Grades
Posted on Tuesday, 09 April 2002, 10:39AM
The grades for Test 3 are now posted, except that we are giving everyone credit for question 19 (silly missing semicolons) and that is not yet reflected in the posted grades. I will update this message when the final grades are posted. Update Tuesday, 09 April 2002, 02:15PM: Okay, they are now updated. The graded tests are outside my office.

 MICO Sample Programs
Posted on Sunday, 07 April 2002, 05:34PM
Ooops, I said I was going to post this earlier but I forgot, sorry!. The directory with the sample programs for MICO is /usr/local/doc/mico/.

 PS3 Instructions update
Posted on Tuesday, 19 March 2002, 02:47PM
I have changed the hand-in instructions for PS3 and added a requirement for some English descriptions of your system. After struggling to understand the reasoning behind some of your choices (and, often failing) I think it will be easier for all of us if you tell me why you chose to do things they way you did, so I can more fairly grade the results of your efforts.

 Test 2 Out
Posted on Friday, 08 March 2002, 10:57AM
The graded tests 2 are now outside my office for pickup.

 Test 2 Graded
Posted on Thursday, 07 March 2002, 07:26AM
The grades are now posted.

 PS2 Fixes
Posted on Tuesday, 05 March 2002, 05:12PM
It seems like Bond and Guido had ssns that were not 9-digits. I have fixed this now.

 PS2 Due Date Moved Back
Posted on Monday, 04 March 2002, 07:44PM
Due to popular demand, PS2 is now due on Monday, 11 March 2002, 4:00pm.

 Questions about PS2
Posted on Thursday, 28 February 2002, 04:57PM
I have added a questions section to the end of PS2 (scroll down). In there I will be posting the questions you email me along with my answers. There are quite a few there already. This list should also give you a bit of an insight into what is involved in a requirement analysis process---I am the customer you are the consultant.

 Comments on a PS
Posted on Saturday, 16 February 2002, 08:17AM
One of you submitted a PS with the line:
if((file.equals("getdoc/1"))||(file.equals("getdoc/2"))
   ||(file.equals("getdoc/3"))||(file.equals("getdoc/4"))
   ||(file.equals("getdoc/5"))) {
     System.out.println("file requested is:  "+file);
For which I deducted:
-4: You are not separating the command from the argument. Also,
 this does not scale!
I had assumed that this person had the experience to be able to tell all the things that were actually wrong with that line and wrote it out of laziness (which, we all suffer from at times). However, it seems that this person, and I must assume many of you, are not as experienced as I had assumed. As such, I will take the time to tell you some of the well-known rules which this bit of code violates.
  1. Never use magic numbers in your code. If you must use a number declare it as a const (or DEFINE) in a header and comment it.
  2. Practice good data abstraction by separating functionality. A function name is different from its arguement and should be separated from it at the first possible instance, and kept that way. It this person had separated the command "getdoc" from the argument "3" then all subsequent conditionals would be much clearer.
  3. Whenever possible, program for generality and scalability. In order to add a document 6 this code someone would need to actually search the program for that if statement (and, how knows what else!) and actually change a line of code. This makes the code impossible to both maintain and extend.
In other words, this is just plain ugly. I hope you all agree.

On a related note, you might want to check my Software Engineering links from when I taught 492.

 PS 1 Grades Out
Posted on Friday, 15 February 2002, 10:02AM
By now you should have received an email with your feedback for PS1. If you did not it is probably because you did not follow instructions and include your email address. The grades are also posted.

 Uploads and Test 1 Returns
Posted on Wednesday, 13 February 2002, 10:19AM
Jicheng Qu (the person in charge of the dropbox) writes:
There are 2 requirements for uploaded files:
1. Each file size must be less than 2MB.
2. The file name cannot have special letters like spaces, tabs.

Make sure your zip file is less than 2MB and there is only letters
and numbers in your file name.
Also, your graded tests are now outside my office for you to pick up.

 Test 1 Grades Out
Posted on Tuesday, 12 February 2002, 06:34AM
The grades for Test 1 are now posted. I believe that this test was fair, easy and the contents all came right out of the material I presented in class. I welcome any disagreements and criticisms, especially as they might pertain to specific questions in the test (I do not claim to write perfect tests!).

Having said that, Im dissapointed by the low grades in this test. Those of you at the tail end will need to improve or else you will not earn a passing grade.

 Practice Tests
Posted on Saturday February 02, 02:02PM
As I mentioned in class, on the left you will find a link to some "Practice Tests". These are actually last year's tests and, as such, cover sligthly different material (except for the DCOM test since we will be doing SOAP instead of DCOM). The tests are given by a Java Servlet I wrote which parses the original XML content.

Please send me an email if these are of any use to you. I am always looking for ways to improve the educational experience (oh, and to use the new technologies we teach :-)

 PS1 Moved Back 48hrs
Posted on Tuesday January 29, 05:37PM
I have moved back the deadline for submitting PS1 by 48 hours. This should give you a little extra time.

 Access To My Library
Posted on Saturday January 26, 12:18PM
I have added a new paper on JXTA to the readings. The paper resides in my "library" which you need a username and password to access. I will be giving these out in the next class (or email me if you want it now).


José M. Vidal
Last modified: Sun Jun 2 10:29:25 EDT 2002