<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3145496367950168134</id><updated>2011-07-07T14:53:47.406-07:00</updated><category term='Web-CAT'/><title type='text'>Random Musings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-8455189169783113964</id><published>2009-08-31T00:52:00.000-07:00</published><updated>2009-08-31T00:53:19.812-07:00</updated><title type='text'>Still thinking !!!</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-8455189169783113964?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/8455189169783113964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=8455189169783113964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8455189169783113964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8455189169783113964'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2009/08/still-thinking.html' title='Still thinking !!!'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-6241293424191896721</id><published>2007-11-27T00:35:00.000-08:00</published><updated>2007-11-27T00:39:15.738-08:00</updated><title type='text'>Week 13 : 11/20/2007 - 11/30/2007 ( Writing CS 297 report)</title><content type='html'>Writing the CS 297 report.&lt;br /&gt;I am thinking of including the following&lt;br /&gt;&lt;br /&gt;1. Abstract&lt;br /&gt;2. Problem Definition and Use-cases(a couple of them )&lt;br /&gt;3. Current implementation ( Web-Cat, labrat,Curriki)&lt;br /&gt;4. Things I did ( extended labrat for upload, check.properties etc)&lt;br /&gt;5. Repository use-cases and schemata&lt;br /&gt;6. Conclusion&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-6241293424191896721?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/6241293424191896721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=6241293424191896721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6241293424191896721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6241293424191896721'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/11/11202007.html' title='Week 13 : 11/20/2007 - 11/30/2007 ( Writing CS 297 report)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-8253369080174706101</id><published>2007-11-20T00:29:00.000-08:00</published><updated>2007-11-20T00:31:36.289-08:00</updated><title type='text'>Week 12 : 11/13/07 - 11/19/07( Design of the repository UI mock ups)</title><content type='html'>This week focussed on the use-cases and design of the repository UI.&lt;br /&gt;&lt;br /&gt;1. Designed the repository UI for various use-cases involving uploading, downloading, categorizing, remove, fork and critique of assignments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-8253369080174706101?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/8253369080174706101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=8253369080174706101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8253369080174706101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8253369080174706101'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/11/week-12-111307-111907-design-of.html' title='Week 12 : 11/13/07 - 11/19/07( Design of the repository UI mock ups)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-2617001926736876989</id><published>2007-11-13T00:48:00.001-08:00</published><updated>2007-11-13T00:57:23.155-08:00</updated><title type='text'>Week 11 : 11/06/07 - 11/12/07( labrat installation on oslo, labrat-web fixes, schema definition)</title><content type='html'>This week focused on the following activities.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Installation of Labrat on OSLO&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;          Installed the labrat tool and the web interface for the tool on oslo.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;   2. Fixes&lt;/p&gt;&lt;p&gt;       Made the following fixes&lt;/p&gt;&lt;ul&gt;&lt;li&gt;      Added a unqiue salt so that every upload of the same set of exercises will generate different unique directory names&lt;/li&gt;&lt;li&gt;     Fixed the  "More" button on the first page of the wizard. I had to return "null" from the action handler to remain in the same page. I was returning "" , thinling that a "blank" return will do the same.&lt;/li&gt;&lt;li&gt;  Added the export functionality to the check.properties file of each exercise. Clicking on the "Export" button will bring up the check.properties file.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;3.   Pondered over the schema definition for the original problem i.e. authoring and sharing of exercises. I have written up a write up on this and have sent the document as an attachment. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-2617001926736876989?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/2617001926736876989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=2617001926736876989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2617001926736876989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2617001926736876989'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/11/week-11-110607-111207-labrat.html' title='Week 11 : 11/06/07 - 11/12/07( labrat installation on oslo, labrat-web fixes, schema definition)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-7998111944180715653</id><published>2007-11-06T00:23:00.000-08:00</published><updated>2007-11-06T01:54:30.054-08:00</updated><title type='text'>Week 10 : 10/30/07 - 11/05/07( Revised Implementation of check.properties generation)</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Generating check.properties&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This week focussed on the revised implementation of the check.properties generation&lt;br /&gt;&lt;br /&gt;As discussed, this process will have a wizard interface.&lt;br /&gt;&lt;br /&gt;1. When an exercise is uploaded, labrat-web will look for a check.properties file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Contents of Page 1 -General of the wizard&lt;br /&gt;&lt;strong&gt;Generating check.properties for exercise - ExP6_5&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Q1.Main class of the assignment  &amp;nbsp;&amp;nbsp;&amp;nbsp;   DataAnalyzer.java&lt;br /&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;     DataSet.java    &lt;br /&gt;                                 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;    DataSetTester.java&lt;br /&gt;&lt;br /&gt;Q2 File Name    &amp;nbsp;&amp;nbsp;&amp;nbsp; Editable&lt;br /&gt;DataAnalyzer.java &amp;nbsp;&amp;nbsp;&amp;nbsp; []&lt;br /&gt;DataSet.java      &amp;nbsp;&amp;nbsp;&amp;nbsp; []&lt;br /&gt;DataSetTester.java &amp;nbsp;&amp;nbsp;&amp;nbsp;[]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Q3    []   Is this a GUI Application?&lt;br /&gt;&lt;br /&gt;Navigation Flow&lt;br /&gt;------------------&lt;br /&gt;&lt;br /&gt;If the box is unchecked then it is forwarded to Page 2 which displays "console" properties.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Contents of  Page 2 - "console" of the wizard&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generating check.properties for exercise - ExP6_5&lt;/strong&gt;&lt;br /&gt;[ ]Run this program&lt;br /&gt; [ ]  with this input   [  -------------------------]&lt;br /&gt; [ ]  with input(s) provided in file(s)&lt;br /&gt; [ ]  without inputs&lt;br /&gt;&lt;br /&gt;Command line  [--------------------------------]&lt;br /&gt;Classpath  [-----------------------------------]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ ] compare output to content stored in file(s) [-------------------]&lt;br /&gt;[ ] capture output to report&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ISSUES&lt;br /&gt;&lt;br /&gt;1. I had problems with generating this UI&lt;br /&gt;&lt;br /&gt;    [ ]  with this input   [  -------------------------]&lt;br /&gt;&lt;br /&gt;It is kind of difficult to produce a text box next to a radio button. The closest I got to in generating this UI was this jsf snippet&lt;br /&gt;&lt;br /&gt;  &amp;lt;html:selectOneRadio  layout="pageDirection" value="#     &lt;br /&gt;                {exerciseUpload.currentExercise.studentDir.mainclassRunOptions}" &amp;gt;                         &lt;br /&gt;            &amp;lt;core:selectItem  itemValue="1"  itemLabel="with this input "&amp;gt;                                                              &lt;br /&gt;[&amp;lt;html:inputText size="50" value= "#{exerciseUpload.currentExercise.studentDir.runMainClassInput}" /&amp;gt; ]                              &lt;br /&gt;&lt;br /&gt;           &amp;lt;/core:selectItem&amp;gt;                                                                                        &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html:selectOneRadio&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;2. This UI element&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[ ] capture output to report&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;doesn't have a corresponfing property. The check.xml(labrat tool) basically checks if the *.out is present. If not it is just copied to a report file.&lt;br /&gt;&lt;br /&gt;Does it need to be in the UI ?&lt;br /&gt;&lt;br /&gt;3. This UI element&lt;br /&gt;&lt;br /&gt;[ ]Run this program&lt;br /&gt;  [ ]  without inputs&lt;br /&gt;&lt;br /&gt;doesn't have any corresponding property in check.properties. Again check.xml checks if the property test.run.inputstring is set. If it hasn't been set then a blank string id assigned to this property.&lt;br /&gt;&lt;br /&gt;Does it need to be in the UI ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Navigation Flow&lt;br /&gt;------------------&lt;br /&gt;When this page is submitted, the wizard will check for the existence of *Tester*.java  or *Test.java. If any of these files exists, it will forward to the "tester" properties page which is page 3 of the wizard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Contents of alternate Page 2 - GUI of wizard&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generating check.properties for exercise - ExP6_5&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;[ ]Run this Program  DataAnalyzer.java&lt;br /&gt;                                     DataSet.java&lt;br /&gt;                                     DataSetTester.java&lt;br /&gt;Command line [----------------------------------------]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Navigation Flow&lt;br /&gt;------------------&lt;br /&gt;&lt;br /&gt;When this page is submitted, the wizard will check for the existence of *Tester*.java  or *Test.java. If any of these files exists, it will forward to the "tester" properties page which is page 3 of the wizard.&lt;br /&gt;&lt;br /&gt;5. Contents of Page 3 - "tester"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generating check.properties for exercise - ExP6_5&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;[ ] Run tester program&lt;br /&gt;    o  Horstmann Style test ("Expected: ")&lt;br /&gt;    0  JUnit test&lt;br /&gt;&lt;br /&gt;Navigation Flow&lt;br /&gt;----------------&lt;br /&gt;&lt;br /&gt;If the option "Horstmann Style .." is selected, then the wizard checks for the existence of file *.in, which are input files for the tester. If the file is not found an error is thrown.&lt;br /&gt;&lt;br /&gt;Issues&lt;br /&gt;--------&lt;br /&gt;&lt;br /&gt;1. I think the user should be given a chance to generate the input and output files instead of throwing an error.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Contents of  Page 4 - "output" capture and compare&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generating check.properties for exercise - ExP6_5&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Select the type of comparison to use.&lt;br /&gt;0 line&lt;br /&gt;0 word&lt;br /&gt;0 number&lt;br /&gt;&lt;br /&gt;Enter the tolerance factor when comparing numbers [-------------------]&lt;br /&gt;&lt;br /&gt;Navigation Flow&lt;br /&gt;-----------------&lt;br /&gt;The wizard generates the check.properties at this stage and forwards to the "view results" page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Contents of Page 5 - View results page&lt;br /&gt;&lt;br /&gt;Assignment Upload Status:&lt;br /&gt;&lt;br /&gt;Check.properties file was successfully generated. Save this file for future use.&lt;br /&gt;&lt;br /&gt;View Result&lt;br /&gt;ExP6_5URL for the assignment is given below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost:8080/labrat-web/exercise_submit_files.faces?directory=3a9sglth0e1ri3wd6izigveya&amp;amp;problem=CS40%2FExP6_5"&gt;http://localhost:8080/labrat-web/exercise_submit_files.faces?directory=3a9sglth0e1ri3wd6izigveya&amp;amp;problem=CS40%2FExP6_5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want to register for easy uploading of exercises in future - &lt;a href="http://localhost:8080/labrat-web/assignment_registration.html"&gt;Register&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The generated URL will be published to the student for submitting the assigment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Setting up labrat and labrat-web on OSLO&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Tried to connect to oslo but it didn;'t connect through telnet&lt;br /&gt;&lt;br /&gt;Microsoft Telnet&gt;&lt;br /&gt;Microsoft Telnet&gt; open oslo.cs.sjsu.eduConnecting To oslo.cs.sjsu.edu...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;Microsoft Telnet&gt; open oslo.cs.sjsu.eduConnecting To oslo.cs.sjsu.edu...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;&lt;br /&gt;Microsoft Telnet&gt; open oslo.cs.sjsu.eduConnecting To oslo.cs.sjsu.edu...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;&lt;br /&gt;Microsoft Telnet&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-7998111944180715653?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/7998111944180715653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=7998111944180715653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/7998111944180715653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/7998111944180715653'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/11/week-10-103007-110507-revised.html' title='Week 10 : 10/30/07 - 11/05/07( Revised Implementation of check.properties generation)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-6664434561425436570</id><published>2007-10-29T09:28:00.000-07:00</published><updated>2007-10-29T10:39:31.566-07:00</updated><title type='text'>Week 9 : 10/23/07 - 10/29/07( Implementation of check.properties generation)</title><content type='html'>This week was focussed on generating a check.properties file, if it is has not been included in the problem.&lt;br /&gt;&lt;br /&gt;The solution was to develop a wizard like interface and ask the user a set of questions. Each page thereafter is driven by the answers to the current set of questions or prompts. The set of questions that will be asked are the following:&lt;br /&gt;&lt;br /&gt;1. Page 1 ( Start page )&lt;br /&gt;&lt;br /&gt;Question 1. Does this assignment needs to include a main class to be submitted by the student ?&lt;br /&gt;&lt;br /&gt;2. Page 2&lt;br /&gt;&lt;br /&gt;Prompt 1. Select the java class that will be marked as the main class.(The selection will be a set of radio button and the labels will be derived from the *.java classes that is present in the */student/ directory of the assigment that was uploaded.)&lt;br /&gt;&lt;br /&gt;Prompt 2. Enter comma-separated list of required classes that a student must submit.&lt;br /&gt;Prompt 3. Enter comma-separated list of required files that a student must submit.&lt;br /&gt;&lt;br /&gt;Question 1. Is this assignment a GUI application ?&lt;br /&gt;Question 2. Should the assignment's main class be run and its output captured and compared with an instructure supplied output file ?&lt;br /&gt;&lt;br /&gt;Question 3. Should the assignment's main class be run with external inputs like *test*.in and the corresponding outputs of the program compared with instructor supplied output file like *test*.out ?&lt;br /&gt;&lt;br /&gt;3. Page 3 ( If the submitted assignment is a GUI application )&lt;br /&gt;&lt;br /&gt;Prompt 1: Enter the command line arguments to pass to the application when taking a snapshot.&lt;br /&gt;&lt;br /&gt;Prompt 2: Enter the key strokes to execute before taking the snapshot of the application&lt;br /&gt;&lt;br /&gt;Prompt 2: Enter the name of the program to run when taking a snapshot(Default is mainclass)&lt;br /&gt;&lt;br /&gt;4. Page 4 ( if property test.run is true)&lt;br /&gt;&lt;br /&gt;Prompt 1: Enter the command-line arguments to pass to the application when running it and capturing its output.&lt;br /&gt;&lt;br /&gt;Prompt 2: Please specify the input to the application.&lt;br /&gt;&lt;br /&gt;Prompt 3: Select the name of the file containing the expected output file ( The file names will be displayed will be ones which has extension *.expected and is present in the */student/ directory of the uploaded assignment )&lt;br /&gt;&lt;br /&gt;5. Page 5 ( if property test.test-inputs is true )&lt;br /&gt;&lt;br /&gt;Prompt 1 : Enter the command line arguments to pass to the application when testing inputs.&lt;br /&gt;&lt;br /&gt;Prompt 2 : Please specify the classpath.&lt;br /&gt;&lt;br /&gt;6. Page 6 ( if one of the properties test.run or test.test-inputs is true)&lt;br /&gt;&lt;br /&gt;Prompt 1: Select the type of output comparision to use ( Available options are line,number,word)&lt;br /&gt;&lt;br /&gt;Prompt 2: Please enter the tolerance factor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After Page 6, the check.properties will be generated and written to the */student/ dirctory of the uploaded assignment.&lt;br /&gt;&lt;br /&gt;If multiple assignments are loaded, then the process of generating check.properties will be done for each assignment.&lt;br /&gt;&lt;br /&gt;Design&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. The ExerciseMB.java will keep track of the directory structure and the name of the files that were uploaded for an assignment. Each uploaded assignment will encapsulated in a class Exercise. The structure of the class is given below&lt;br /&gt;&lt;br /&gt;Exercise&lt;br /&gt;String name ( name of the exercise)&lt;br /&gt;Directory for student&lt;br /&gt;Directory for solution&lt;br /&gt;Directory for grader&lt;br /&gt;Directory for description&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Each Directory object will have the set of file names that is part of the assignment&lt;br /&gt;&lt;br /&gt;Directory&lt;br /&gt;String name ( name of the directory)&lt;br /&gt;String[] dirPath ( path of the directory from the root)&lt;br /&gt;String rootPrefix ( root of the directory which will be repositorypath)&lt;br /&gt;List of *.java files&lt;br /&gt;List of *.html files&lt;br /&gt;List of *.in and *.out files&lt;br /&gt;List of *.expected files&lt;br /&gt;&lt;br /&gt;Properties properties( check.properties values)&lt;br /&gt;&lt;br /&gt;boolean hasProperties( boolean to indicate whether a check.properties is present in the Directory&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. When the assignment upload is complete, it will check if the assignment has a check.properties file by introspecting the */student/ directory. If no check.properties has been found, the the property&lt;br /&gt;&lt;br /&gt;currentExercise&lt;br /&gt;of ExerciseMB will be set to the name of the exercise and then the wizard will process will kick in for generating the check.properties for the */student/ directory of the uploaded assignment.&lt;br /&gt;&lt;br /&gt;3. The various properties of the check.properties will be filled in by accessing the member Properties object of the Directory whose name is "student". For example to the set the property that an assignment has a main class, the jsf code is as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html:selectBooleanCheckbox value="#{exerciseUpload.currentExercise.studentDir.mainClassRequired}" /&amp;gt; &amp;lt;html:outputText value="Does this assignment have a main class to be submitted by student?" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;?xml:namespace prefix = html /&gt;&lt;html:selectbooleancheckbox value="#{exerciseUpload.currentExercise.studentDir.mainClassRequired}"&gt;&lt;html:outputtext value="Does this assignment have a main class to be submitted by student?"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The property "currentExercise" will always point to the uploaded assignment which doesn;'t have a check.properties defined.&lt;br /&gt;&lt;br /&gt;4. Each Exercise is associated with a wizard interface. The wizard has the information about its set of pages and it forwards to the relevant pages by introspecting the current page and the set of properties that has been enabled in the Properties object of Directory "student" as a result of questions/prompts from previous pages.&lt;br /&gt;&lt;br /&gt;5. At the end of the wizard phase, a check.properties will be generated and written to the */student/ directory of the assignment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Issues&lt;br /&gt;---------&lt;br /&gt;&lt;br /&gt;1. I am using tiles to define templates for a page. Unfortunately I cannot forward to a tile name. I have to create another .jspx page and then insert the tile definition in that page.&lt;br /&gt;&lt;br /&gt;2. Initially I thought that extra path info can be passed to an assignment url. For example&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost:8080/labrat-web/exercise_submit_files.faces/fjfjfjf9riwiwiw*&amp;amp;gdh2535/course"&gt;http://localhost:8080/labrat-web/exercise_submit_files.faces/fjfjfjf9riwiwiw*&amp;amp;gdh2535/course&lt;/a&gt; name/exercise name&lt;br /&gt;&lt;br /&gt;This looks more elegant than passing parameters in the URL. A tiles controller can be developed to parse this URL and then pass it as request parameters for downstream handling of the particular exercise. (This will be used as submit urls by the students)&lt;br /&gt;&lt;br /&gt;It doesn't seem to work with jsf servlet mapping.&lt;br /&gt;The error, predictably, is resource not found.&lt;br /&gt;&lt;br /&gt;3. How do I encode a JSF view with parameters ? For example If I need to forward to a view&lt;br /&gt;&lt;br /&gt;"some_view" with certain set of request parameters, how do I do it ?&lt;br /&gt;&lt;/html:outputtext&gt;&lt;/html:selectbooleancheckbox&gt;&lt;html:selectbooleancheckbox value="#{exerciseUpload.currentExercise.studentDir.mainClassRequired}"&gt;&lt;html:outputtext value="Does this assignment have a main class to be submitted by student?"&gt;&lt;/html:outputtext&gt;&lt;/html:selectbooleancheckbox&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-6664434561425436570?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/6664434561425436570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=6664434561425436570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6664434561425436570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6664434561425436570'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/10/week-9-102307-102907-implementation-of.html' title='Week 9 : 10/23/07 - 10/29/07( Implementation of check.properties generation)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-653383139623853240</id><published>2007-10-22T22:52:00.000-07:00</published><updated>2007-10-23T09:01:02.581-07:00</updated><title type='text'>Week 8 : 10/16/2007 - 10/22/2007 ( Implementation of additional labrat features)</title><content type='html'>The following was implemented&lt;br /&gt;&lt;br /&gt;1. The upload feature was implemented and the result page showed the files and directories&lt;br /&gt;uploaded to the repository.&lt;br /&gt;2. Integrated the submit files page with the new UI.&lt;br /&gt;3. Traced the debugger problem.&lt;br /&gt;4. Fixed the tile layout issues.&lt;br /&gt;&lt;br /&gt;Work in progress&lt;br /&gt;-------------------&lt;br /&gt;1. Implementing the check.properties discovery and generation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-653383139623853240?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/653383139623853240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=653383139623853240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/653383139623853240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/653383139623853240'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/10/week-8-10162007-10222007-implementation.html' title='Week 8 : 10/16/2007 - 10/22/2007 ( Implementation of additional labrat features)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-1235283466365492543</id><published>2007-10-16T01:45:00.000-07:00</published><updated>2007-10-16T09:30:05.658-07:00</updated><title type='text'>Week 7: 10/09 - 10/15 Implementation of additional Labrat features ( 20+ hours)</title><content type='html'>The following was done&lt;br /&gt;&lt;br /&gt;1. Converted the UI to a tiles implementation.&lt;br /&gt;2. Implemented the upload and upload results screen. Will need to debug it.&lt;br /&gt;3. After converting to equivalent JSF tags, the UI hasn't come out as I wanted it to be. Will need&lt;br /&gt;to figure out by loading the HTML output in a designer.&lt;br /&gt;&lt;br /&gt;ISSUES&lt;br /&gt;&lt;br /&gt;1. Cannot attach a debugger. It is crapping out with this error&lt;br /&gt;&lt;br /&gt;Incrementally deploying web_localhost:4848_serverCompleted incremental distribution of webDuplicated project name in import. Project labrat-web-impl defined first in C:\projects\labrat\web\nbproject\ant-deploy.xml and again in C:\projects\labrat\web\nbproject\build-impl.xmlconnect-debugger:Non-existing path "C:\projects\labrat\web\build\ear-module\WEB-INF\classes" provided.C:\projects\labrat\web\nbproject\build-impl.xml:553: The following error occurred while executing this line:C:\projects\labrat\web\nbproject\build-impl.xml:557: org.netbeans.api.debugger.jpda.DebuggerStartException: Connection refused: connectBUILD FAILED (total time: 1 second)&lt;br /&gt;&lt;br /&gt;It started happening once again. Tried uninstalling and installing 5.5.1 and V2. Didn't work.&lt;br /&gt;&lt;br /&gt;I resolved the earlier message. It happens if Tomcat is running in non-debug mode.  I am getting this success message.&lt;br /&gt;&lt;br /&gt;deployment started : 0%deployment finished : 100%Deploying application in domain completed successfullyTrying to create reference for application in target server  completed successfullyTrying to start application in target server  completed successfullyDeployment of application web  completed successfullyDuplicated project name in import. Project labrat-web-impl defined first in C:\projects\labrat\web\nbproject\ant-deploy.xml and again in C:\projects\labrat\web\nbproject\build-impl.xmlconnect-debugger:Non-existing path "C:\projects\labrat\web\build\ear-module\WEB-INF\classes" provided.&lt;br /&gt;&lt;strong&gt;Attached JPDA debugger to localhost:9009&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Duplicated project name in import. Project labrat-web-impl defined first in C:\projects\labrat\web\nbproject\ant-deploy.xml and again in C:\projects\labrat\web\nbproject\build-impl.xmldebug-display-browser:BUILD SUCCESSFUL (total time: 3 seconds)&lt;br /&gt;&lt;br /&gt;The debugger is getting attached, but IDE cannot connect to it. Connection refused.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-1235283466365492543?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/1235283466365492543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=1235283466365492543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/1235283466365492543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/1235283466365492543'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/10/week-7-1009-1015-implementation-of.html' title='Week 7: 10/09 - 10/15 Implementation of additional Labrat features ( 20+ hours)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-4567414314648462330</id><published>2007-10-08T21:53:00.000-07:00</published><updated>2007-10-09T00:48:27.171-07:00</updated><title type='text'>Week 6 : 10/02 - 10/08 - Design of Additional  Labrat features</title><content type='html'>&lt;div&gt;This week was focused on marking up the design for additional features for Labrat in HTML.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Repository Structure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Each instructor will be identified based on the following fields:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;name&lt;/li&gt;&lt;br /&gt;&lt;li&gt;email&lt;/li&gt;&lt;br /&gt;&lt;li&gt;title&lt;/li&gt;&lt;br /&gt;&lt;li&gt;university name&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;If the instructor wishes to register, these fields will be hashed to form a unique string. This "unique string" will be labelled as the root directory of the repository.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The repository directory structure is as follows&lt;/p&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_wmpsim6zahg/RwsyANM6lpI/AAAAAAAAABc/wEv6c5_yuF0/s1600-h/1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5119240380561921682" style="WIDTH: 580px; CURSOR: hand; HEIGHT: 315px" height="331" alt="" src="http://4.bp.blogspot.com/_wmpsim6zahg/RwsyANM6lpI/AAAAAAAAABc/wEv6c5_yuF0/s400/1.jpg" width="591" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;The meta directory will be used to store "close" match hash strings from instructor profiles. &lt;/p&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;UI Interface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Registration Page ( Instructor view)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;The fields that were put in this page to uniquely identify an instructor were: name, email, title, university name. These fields will be used generate a hash, which will be the root directory in the repository for uploaded assignments for that instructor.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If the instructor doesn't wish to register then he/she has to input that information during upload of assignments.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;2. Assignment Upload (Instructor view)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;An instructor will come to this page to upload assignments. If the check.properties file is missing from the jar file, then one will be generated from the instructor's input.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A successful upload will generate a link for the instructor to be given to the student. The format of the link is given below:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.labrat.sjsu.edu/ieo987$#jkiolp09*djdjjdjdjdj/CS101/Exercise_1"&gt;http://www.labrat.sjsu.edu/ieo987$#jkiolp09*djdjjdjdjdj/CS101/Exercise_1&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The unique token string is the one that will belong to the instructor. It includes the course id nunber and the name of the assignement.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;3. check.properties generation page&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This page will take the instructor input to generate a check.properties file. Since the number of properties are large, it will make sense to separate out the properties into required and optional ones. And within each of the categories it will be further divided into functional regions like&lt;/p&gt;&lt;br /&gt;&lt;p&gt;display,documentation,build,test/execute&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;4. Assignment Submit ( Student view)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Students will come to this page via the link that may have been provided by their instructors. A link will look like&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.labrat.sjsu.edu/ieo987$#jkiolp09*djdjjdjdjdj/CS101/Exercise_1"&gt;http://www.labrat.sjsu.edu/ieo987$#jkiolp09*djdjjdjdjdj/CS101/Exercise_1&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This page will display the files that needs to be submitted for that assigment by introspecting the check.properties file.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-4567414314648462330?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/4567414314648462330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=4567414314648462330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/4567414314648462330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/4567414314648462330'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/10/week-6-1002-1008-design-of-additional.html' title='Week 6 : 10/02 - 10/08 - Design of Additional  Labrat features'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wmpsim6zahg/RwsyANM6lpI/AAAAAAAAABc/wEv6c5_yuF0/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-2076913882455775868</id><published>2007-10-01T17:06:00.000-07:00</published><updated>2007-10-01T17:12:46.359-07:00</updated><title type='text'>Week 5 : 09/26 - 10/01 (JSF, Web Labrat and Upload exercise)(12 hrs)</title><content type='html'>This week concentrated on getting comfortable with JSF and Exercise Upload Tag.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Netbeans 5.5.1 and V2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;Downloaded and installed Netbeans 5.5.1 and Glassfish V2.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Web labrat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ran the labrat web interface&lt;br /&gt;1. I commented out the Mail session and the mail functionality. It does seem to work after that.&lt;br /&gt;A UI came up to paste the required files.  No "cyclic errors".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Upload tag&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Integrated the upload tag from core jsf into web labrat&lt;/span&gt;&lt;br /&gt;2. Tailored it to upload exercises and create the path in the repository directory.&lt;br /&gt;3. Need to add a parameter whether the user is uploading a zip file with UNIX or WINDOWS style path entries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-2076913882455775868?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/2076913882455775868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=2076913882455775868' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2076913882455775868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2076913882455775868'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/10/week-5-0926-1001-jsf-web-labrat-and.html' title='Week 5 : 09/26 - 10/01 (JSF, Web Labrat and Upload exercise)(12 hrs)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-1363800233763084316</id><published>2007-09-25T09:03:00.000-07:00</published><updated>2007-09-25T09:18:55.293-07:00</updated><title type='text'>Week 4:  09/18- 09/24 (18 hrs) ( JSF 1.2 and Labrat)</title><content type='html'>These were the following activities.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Ramp up on JSF 1.2 ( 10 hrs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;Most of the time was focussed on ramp up on JSF 1.2.  Core JSF (Chapters 1-6) and Chapter 9.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Labrat ( 2 hrs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;Executed the standalone labrat script on an exercise example. I did have to spend some time converting the bash shell commands to windows scripts. Looked at the code to figure out the execution path. ( 4 hrs)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Web-Labrat ( 2 hrs )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Changed the initialization parameters such as the repository path. It still gives the error "cyclic reference". I debugged this a little bit. I think it is failing because of the repository path and the bad repository path exception is not handled in the ProblemSubmission.load() method.&lt;br /&gt;&lt;br /&gt;On windows I have given the repository path as&lt;br /&gt;&lt;br /&gt;C:\\java\\labrat\\exercises in web.xml intialization parameter section.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Feature: Upload exercises in Web labrat ( 4 hrs )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Work in progress. I have decided to implement it as a custom JSF component. For example&lt;br /&gt;&lt;br /&gt;&lt;custom:uploadexercise id=""&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-1363800233763084316?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/1363800233763084316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=1363800233763084316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/1363800233763084316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/1363800233763084316'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/09/week-4-0918-0924-18-hrs-jsf-12-and.html' title='Week 4:  09/18- 09/24 (18 hrs) ( JSF 1.2 and Labrat)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-2909614828549826624</id><published>2007-09-18T12:12:00.000-07:00</published><updated>2007-09-18T12:21:15.784-07:00</updated><title type='text'>Week 3 : 09/11/2007 to 09/17/2007 ( 8 hrs) Web-CAT and Labrat</title><content type='html'>This week the activities &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;focused&lt;/span&gt; on getting to know Web-CAT and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Labrat&lt;/span&gt; at the source code level.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Web-CAT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Download the source-code through &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CVS&lt;/span&gt; client which is part of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;NetBeans&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;IDE&lt;/span&gt; 5.5.&lt;br /&gt;2. There are too much unfamiliar technologies(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;WebObjects&lt;/span&gt;) and lack of documentation(build/source)&lt;br /&gt;made it quite difficult to come to  any conclusion on making source code changes to Web-CAT.&lt;br /&gt;3. It also looked like every backing object for a web Page is derived from a auto-generated persistent objects, meaning that every page is mapped to a persistent store object.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;LabRat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Downloaded the source code for the standalone tool and the web interface&lt;/span&gt;&lt;br /&gt;2. Installed the environment(glass fish App Server, ANT(build &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;env&lt;/span&gt;) etc.&lt;br /&gt;3. Built and deployed the jars.&lt;br /&gt;4. There are some errors while invoking the pages in the web-interface. (Cyclic references)&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-2909614828549826624?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/2909614828549826624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=2909614828549826624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2909614828549826624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/2909614828549826624'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/09/week-3-09112007-to-09172007-8-hrs-web.html' title='Week 3 : 09/11/2007 to 09/17/2007 ( 8 hrs) Web-CAT and Labrat'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-8036237022474535281</id><published>2007-09-10T12:25:00.001-07:00</published><updated>2007-09-10T21:56:48.776-07:00</updated><title type='text'>Week 2 - (09/04/07 - 09/10/07) Learning Object Metadata model  ( 8 hrs)</title><content type='html'>&lt;span style="font-size:130%;"&gt;Overview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is an attempt to describe the meta-data model for learning objects which can be searched,evaluated,tagged(annotated) and exported to various automatic submission and grading tools available in the market. The central repository will consist of instances of this meta model describing the underlying learning objects.&lt;br /&gt;&lt;br /&gt;A metadata instance for the learning object will describe the characteristics of the learning objects, which is relevant to its definition and applicability in the educational field. Such characteristics will be grouped together as General, Educational,Structure(describes the content),LifeCycle,Annotation and Rights(usage rights).&lt;br /&gt;&lt;br /&gt;The definitions below are for a conceptual metadata and it doesn't take into account the implementor language for defining this metadata. This could be easily translated into an XML Schema definition or any repository schema such as a relational database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Basic Metadata Overview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Given below are the basic metadata overview and a brief description of the elements involved.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;General &lt;/strong&gt;- This element describes the learning object as a whole.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Educational&lt;/strong&gt;- It will describe the educational characteristics of a learning object,its typical applicability, technical requirements(technology used),particular coverage area, difficulty,targated courseware etc.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Structure&lt;/strong&gt; - This element will describe the structure of the learning object. It will include information about the mime-type of its content, file set included,dependencies etc.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;LifeCycle&lt;/strong&gt; - This element will record all the activities(CRUD) done on the learning objects. It will record the principal names, contributions, current version, state of the learning object&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Annotation &lt;/strong&gt;- This element will record the feedback,rating and the use of the learning object in the educational field. Extensible tags can be defined to record additional keyword.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Rights&lt;/strong&gt; - This element will have any copyright instruction to use the learning object in a particular field.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Metadata Schema&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Given below is a conceptual metadata schema to author and share learning objects across various users. This schema can be be easily adapted to an XML format or any repository schema like a relational database.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;1. &lt;strong&gt;General&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;This will keep general information about a learning object as a whole&lt;/p&gt;&lt;p&gt;1.1 Object Id - The global identifier for the Learning Object within the repository.&lt;br /&gt;1.2 Title - The title of the Learning Object.&lt;br /&gt;1.3 Language - The language in which this Learning Object has been expressed for example "en-US"&lt;br /&gt;1.4 Description - A textual description of the content of the learning object.&lt;br /&gt;1.5 Keywords&lt;br /&gt;1.5.1 Keyword* - Multiple keywords entries to identify and tag this learning object. This will be used in searhing for a learning object on a specific set of keywords&lt;/p&gt;&lt;p&gt;2. &lt;strong&gt;Educational &lt;/strong&gt;&lt;/p&gt;&lt;p&gt; This element will capture the essential educational characteristics and applicability of this object in the educational field.&lt;/p&gt;&lt;p&gt;2. 1 language - This will describe the host language in which this learning object has been written i.e. Java, C++ etc&lt;/p&gt;&lt;p&gt;2.2 Min version - Minimum version of the compiler or the driver software to run this.&lt;/p&gt;&lt;p&gt;2.3 Installation - Any installation help text to install this learning object.&lt;/p&gt;&lt;p&gt;2.4 Technology Stack&lt;/p&gt;&lt;p&gt;2.4.1 Name * - name of the technology&lt;/p&gt;&lt;p&gt;2.5 Target Audience - Subjects for which this learning object has been designed for example instructors, students, publishers etc.&lt;/p&gt;&lt;p&gt;2.6 Difficulty level - Level of difficulty ( easy,hard etc)&lt;/p&gt;&lt;p&gt;2.7 Duration - Likely duration to complete this learning object&lt;/p&gt;&lt;p&gt;2.8 Context - The principal environment within which the learning and use of the learning object is intended to take place. for example in the junior year, senior etc&lt;/p&gt;&lt;p&gt;2.9 Description - Detail description on how to use the learning object&lt;/p&gt;&lt;p&gt;3. &lt;strong&gt;Structure&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;This element describes the content of the learning object that is persisted in the repository. It will define the various artifacts the make up the learning object.&lt;/p&gt;&lt;p&gt;3.1 resource* - Resources that make up the learning object&lt;/p&gt;&lt;p&gt;3.1.1 Name - name of the resource&lt;/p&gt;&lt;p&gt;3.1.2 Mime Type - The content type such as text/html, application/x-jar etc.&lt;/p&gt;&lt;p&gt;3.1.3 Location - Location of the resource. It could be defined in terms of URI, URL. This field will also have a special tag to describe that the content has been persisted in the repository as a CLOB or BLOB&lt;/p&gt;&lt;p&gt;3.1.4 Content - The actual content of the resource for exampe it will contain the text for a .java file.&lt;/p&gt;&lt;p&gt;4. &lt;strong&gt;LifeCycle &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This element will capture the lifecycle of the learning object as it goes through various incarnation in the central repository&lt;/p&gt;&lt;p&gt;4.1 version -Current version of the learning object&lt;/p&gt;&lt;p&gt;4.2 last update -Last updated date and time&lt;/p&gt;&lt;p&gt;4.3 Subject - Person/oraganization which made the last update.&lt;/p&gt;&lt;p&gt;4.4 Audit Trail*&lt;/p&gt;&lt;p&gt;4.4.1 Subject - person/organization making the change &lt;/p&gt;&lt;p&gt;4.4.2 role - On what capacity, it is making changes to the learning object i.e. as an author ,publisher etc.&lt;/p&gt;&lt;p&gt;4.4.3 date - The date the change was made.&lt;/p&gt;&lt;p&gt;4.4.4 change record - A record to capture the delta change that was made&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;5. &lt;strong&gt;Annotation*&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This element will describe the feedback and other information about the usage of this learning object in various course-wares.&lt;br /&gt;&lt;br /&gt;5.1 Subject - Person/organization which created this annotation&lt;br /&gt;5.2 Date - The date this annotation was created.&lt;br /&gt;5.3 Content - Description of this annotation&lt;br /&gt;5.4 Tags* - Any extended tag annotation that may be needed for feedback for example rating&lt;br /&gt;5.4.1 Name - Name of the tag&lt;br /&gt;5.4.2 Value - The content of the tag&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;Rights &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This element will describe the copy right information about this learning object&lt;br /&gt;6.1 Cost - The cost of using this learning object.&lt;br /&gt;6.2 Copy Right Instruction - The text describing the copy right of the learning object&lt;br /&gt;6.3 Description - Any other description that needs to go with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-8036237022474535281?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/8036237022474535281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=8036237022474535281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8036237022474535281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8036237022474535281'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/09/learning-object-metadata-model.html' title='Week 2 - (09/04/07 - 09/10/07) Learning Object Metadata model  ( 8 hrs)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-4347647642615225754</id><published>2007-09-09T22:43:00.000-07:00</published><updated>2007-09-10T21:53:01.494-07:00</updated><title type='text'>Week 2 : 09/04/07 to 09/10/07 ( 1 hr )</title><content type='html'>The following example illustrates the artifacts that needs to be created in Web-CAT to create an assignment. The homework assignment in question has been taken from&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.horstmann.com/sjsu/cs46a/hw6.html"&gt;http://www.horstmann.com/sjsu/cs46a/hw6.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exercise 7.10 Factoring of integers. Write a program that asks the user for an integer and then prints out all its factors in increasing order. For example, when the user enters 150, the program should print&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;5&lt;br /&gt;5&lt;br /&gt;Use a class FactorGenerator with a constructor FactorGenerator(int numberToFactor) and methods nextFactor and hasMoreFactors .&lt;br /&gt;This class generates all the factors of a number.&lt;br /&gt;&lt;br /&gt;public class FactorGenerator&lt;br /&gt;{&lt;br /&gt;/**&lt;br /&gt;Creates a FactorGenerator object used to determine the factor of&lt;br /&gt;an input value.&lt;br /&gt;@param aNum is the input value&lt;br /&gt;*/&lt;br /&gt;public FactorGenerator(int aNum)&lt;br /&gt;{&lt;br /&gt;// TODO&lt;br /&gt;}&lt;br /&gt;/**&lt;br /&gt;Determine whether or not there are more factors.&lt;br /&gt;@return true there are more factors&lt;br /&gt;*/&lt;br /&gt;public boolean hasMoreFactors()&lt;br /&gt;{&lt;br /&gt;// TODO&lt;br /&gt;}&lt;br /&gt;/**&lt;br /&gt;Calculate the next factor of a value.&lt;br /&gt;@return factor the next factor&lt;br /&gt;*/&lt;br /&gt;public int nextFactor()&lt;br /&gt;{&lt;br /&gt;// TODO&lt;br /&gt;}&lt;br /&gt;// TODO: instance fields&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. The first step is to create an assignment for the particular course offering.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_wmpsim6zahg/RuTeDuS5K2I/AAAAAAAAAAw/6ypnxzXPEWw/s1600-h/pic2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5108452032893234018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_wmpsim6zahg/RuTeDuS5K2I/AAAAAAAAAAw/6ypnxzXPEWw/s320/pic2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2. For this assignment, the instructor has to upload a reference JUnit test file which is name&lt;br /&gt;as FactorGeneratorTest.java. This JUnit test file will be executed whenever a students submits a solution for this assignment. &lt;/p&gt;&lt;p&gt;This test file needs to be targeted to a directory which is accessible by the web-server.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This configuration step is specific to an assignment and is part of several steps to configure the JavaTdd plugin that has been deployed to Web-CAT.&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/_wmpsim6zahg/RuTZteS5K1I/AAAAAAAAAAo/UhzR0B3U714/s1600-h/pic1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5108447252594633554" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_wmpsim6zahg/RuTZteS5K1I/AAAAAAAAAAo/UhzR0B3U714/s320/pic1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. There are other configurable options that may need to be set depending on specific requirements of the assignment.&lt;br /&gt;&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/_wmpsim6zahg/RuTh1eS5K3I/AAAAAAAAAA4/yLV4-wi35rY/s1600-h/pic3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5108456186126609266" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_wmpsim6zahg/RuTh1eS5K3I/AAAAAAAAAA4/yLV4-wi35rY/s320/pic3.png" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-4347647642615225754?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/4347647642615225754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=4347647642615225754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/4347647642615225754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/4347647642615225754'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/09/week-2-090507-to-091107.html' title='Week 2 : 09/04/07 to 09/10/07 ( 1 hr )'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wmpsim6zahg/RuTeDuS5K2I/AAAAAAAAAAw/6ypnxzXPEWw/s72-c/pic2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-8489360123625686917</id><published>2007-09-03T19:50:00.000-07:00</published><updated>2007-09-03T23:00:47.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web-CAT'/><title type='text'>Week 1 - 08/27/07 - 09/03/07  ( 8 hrs)</title><content type='html'>One of the first steps in defining a common interchange Meta-data format is to study the feature sets of the automatic grading tools available in the market. The candidates included Web-CAT, Marmoset and SJSU Prof. Beeson's home grown grading tool.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Studying Web-CAT(installation,configuration,usage) &lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Georgia;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Before installation of this tool, I had a chance to go through the various tutorial videos embedded within the installation package. Those proved to be useful, especially when dealing with WebObjects.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;This tool is built around Apple's WebObjects. The installation went through fine and pre-requisites were installation  of Tomcat 5 and MySQL server and yes, one has to download Web-CAT_1.3.1.war from sourceforge and drop it in the web applications folder.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;The steps included to have a course offering and assignments running are &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;The first steps are to configure the Web-CAT tool instace. It includes crearing a root user, setting up the MySQL configuration and adding courses offered by the concerned institution.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:lucida grande;"&gt;    In Web-CAT there is a clear distinction between courses offered and course offerings for a particular course in a semester by an instructor. It has the same relationships as between a Class and Objects of type Class. Course offerings are instances of the particular course. This is mentioned here as it may play a part in defining an interchangeable meta-data format for a Learning Object.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman;"&gt;The next step is to create a course offering. The properties that make up a course offering are&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;           Course, CRN(unqiue course offering identifier), Course Label( description),URL(location)&lt;/p&gt;&lt;p&gt;      There are other properties which may not form part of the meta data, such as instructors and graders for that course offering.&lt;/p&gt;&lt;ul&gt;&lt;li&gt; The next step is to create an assignment for the course offering. These have properties which could be relevant to be part of a meta-data for a course. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;           Name, Title, URL(location), Upload Instructions&lt;/p&gt;&lt;p&gt;           Each specific assignment can have different submission rules. These rules would be unique to a system, hence may not be relevant as part of the meta-data in describing a course. &lt;/p&gt;&lt;p&gt;          Each specific assignment also has a plugin configuration. Each plugin configuration has re-suable properties and assignment specific properties&lt;/p&gt;&lt;p&gt;          &lt;strong&gt;Java Plugin Configuration&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;          &lt;/strong&gt;This plugin has two types of configutation options: Re-usable and Assignment specific.&lt;/p&gt;&lt;ul&gt;&lt;li&gt; The properties of a re-usable configuration are&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;          Java settings(Java source version compatibility,pre-defined classes or jars in the classpath)&lt;/p&gt;&lt;p&gt;          Scoring Settings(Test code submissions, test coverage)&lt;/p&gt;&lt;p&gt;          Static Analysis(Check Style Configuration, PMD)&lt;/p&gt;&lt;p&gt;          Feedback settings&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Assignment specific settings are related to&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;             Junit Reference test classes(These junit test classes are executed against the submitted code)&lt;/p&gt;&lt;p align="justify"&gt;            Supplemental Classes for Assignment(Any jar file or directory of java class files to be put in the class-path when compiling or running submissions for an assignment.)&lt;/p&gt;&lt;p align="justify"&gt;            Data files(Any data files that may be needed when running reference tests)&lt;/p&gt;&lt;p align="justify"&gt;The properties of any specific Java or C++ plugin configuration may form part of the     meta-data information for a course, specifically the files that are included or needed to submit and execute test cases in an automatic grading system.&lt;/p&gt;&lt;p align="justify"&gt; &lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Studying  Marmoset(installation,configuration,usage)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;Marmoset is an automated snapshot, submission and testing system developed at the University of Maryland.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;Much of the information that is blogged here are got from the demo server which is hosted at&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="https://marmoset-demo.cs.umd.edu/view/course.jsp?coursePK=1"&gt;https://marmoset-demo.cs.umd.edu/view/course.jsp?coursePK=1&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;This gives access to a demo-course but doesn't allow the user to create courses or assignments.&lt;/p&gt;&lt;p align="justify"&gt;This system seems to be similar to Web-CAT in the sense that it has&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Automated Testing - Submissions are graded based on the number of tests that pass.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;This system also has the following capabilities&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Collecting snapshots - There is an  Eclipse plugin called the Course Project Manager to capture snapshots of students' projects to a centralized CVS repository whenever they save their files. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt; &lt;/p&gt;&lt;p align="justify"&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;    &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;          &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;      &lt;/p&gt;&lt;p&gt;        &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-8489360123625686917?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/8489360123625686917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=8489360123625686917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8489360123625686917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/8489360123625686917'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/09/week-1-082707-090307-8-hrs.html' title='Week 1 - 08/27/07 - 09/03/07  ( 8 hrs)'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3145496367950168134.post-6120912246823792836</id><published>2007-08-30T13:20:00.000-07:00</published><updated>2007-08-30T13:22:03.024-07:00</updated><title type='text'>Week 0</title><content type='html'>1. Researched on literature materials for Learning Object meta-data definitions.&lt;br /&gt;2. Submitted the revised CS 297 proposal&lt;br /&gt;2. Reading up on AJAX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3145496367950168134-6120912246823792836?l=sjena.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sjena.blogspot.com/feeds/6120912246823792836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3145496367950168134&amp;postID=6120912246823792836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6120912246823792836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3145496367950168134/posts/default/6120912246823792836'/><link rel='alternate' type='text/html' href='http://sjena.blogspot.com/2007/08/week-0.html' title='Week 0'/><author><name>Somyajit Jena</name><uri>http://www.blogger.com/profile/07179514343049825571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
