Thursday 16 December 2021

what is a good PhD contribution?

When PhD candidates embark on their thesis journey, the first thing they will likely learn is that their research must be a “significant original contribution to knowledge.” 

A PhD should make an original contribution to knowledge. Originality can be achieved through the study design, the nature or outcomes of the knowledge synthesis, or the implications for research and/or practice.

Source: https://www.universityaffairs.ca/career-advice/career-advice-article/how-to-make-an-original-contribution-to-knowledge/

The first step for PhD students is to recognize that a thesis will be built on other people’s work in a rigorous, precise way and is not expected to lead to an immediate and fundamental paradigm shift in the field.

The significant original contribution emerges from small gaps within saturated research areas as novel interpretations or applications of old ideas. The researcher can accomplish this in many ways, for example, by creating a synthesis, by providing a single original technique, or by testing existing knowledge in an original manner. Although the thesis has to be innovative, this doesn’t necessarily mean revolutionizing the existing discourse; there is also value in adding new perspectives.

Having a well-bounded and clear idea of one’s contribution contextualizes the work and can protect the student from undue criticism.

This is always an iterative process, starting with a literature review and later comparing results against the significance of other works.


Thursday 4 November 2021

How to write a good paper summary

 Reading a Computer Science Research Paper

Page 4 on this link

https://pages.cpsc.ucalgary.ca/~pwlfong/Pub/inroads2009.pdf

Monday 29 June 2020

EMSE paper FACER end to end code execution instructions

Physical path: F:/FACER_2020/Code

GitHub repo name where code is committed: FACER_2020

Please check https://github.com/shamsa-abid/FACER_Artifacts too

In F:/FACER_2020/Code/FACER/src/support/Constants.java

public static String PROJECTS_ROOT = "F:/FACER_2020/RawSourceCodeDataset/ClonedNew";
public static String DATABASE = "jdbc:mysql://localhost/faceremserepopoint5?useSSL=false&user=root";
public static String LUCENE_INDEX_DIR = "F:/FACER_2020/LuceneData/faceremserepo";

but now we get these settings from the command line as arguments. This is coded in the FACER repo Building Code file:
F:\FACER_2020\Code\FACER\src\sourcerer_parser_stmts\ParseContextAction.java

Two new csv files will be created in an output folder

Running FACER Clustering and MCS detection

execute Rscript using the csv files to get the csv file containing cluster IDs

F:\FACER_2020\Code\R\Nick1.R has the latest code but you will have to uncomment or modify csv fie names input and output.
Execute
F:\FACER_2020\Code\FASeR_Recommender\src\_0_AlphaCalculator\MCSMining.java

Your repo is ready


For Evaluation:

F:\FACER_2020\Code\FASeR_Recommender\src\automated_evaluation\Evaluation.java






Tuesday 11 February 2020

sql query for no of patterns for a support threshold

SELECT distinct(support),count(support) as number_of_patterns FROM `feature_support` 
group by support

Thursday 6 February 2020

Evaluate Stage 1 of FACER

Use Eclipse workspace FOCUS2

Use F:\PhD\4thYear\FOCUS\FOCUS_Evaluation\src\focus\dataset\create\FOCUSDataFileCreation.java
to create a set of files for each project in FOCUS readable format
Make sure to set the repo in constants file and the name of folder to save the files in.

FOCUS needs a List txt file to keep in the dataset folder. You need to create the list file using this command:
dir /b > List.txt

Open it and remove List.txt from it
This is your FOCUS evaluation dataset
F:\PhD\4thYear\FOCUS\FOCUS_Evaluation\101reponew

Now you need copy a template evaluation folder from F:\PhD\4thYear\FOCUS-ICSE19-artifact-evaluation\evaluation    and put it in the dataset folder

Then I used F:\PhD\4thYear\FOCUS-ICSE19-artifact-evaluation\crossminer-FOCUS-4c02746\tools\Focus\evaluation.properties file to set the configuration especially the location of dataset is set to
sourceDirectory=F:/PhD/4thYear/FOCUS/FOCUS_Evaluation/101reponew/

Then I ran F:\PhD\4thYear\FOCUS-ICSE19-artifact-evaluation\crossminer-FOCUS-4c02746\tools\Focus\src\main\java\org\focus\Runner.java

This gives FOCUS results on our dataset. Save them in a text file. Also FOCUS creates the evaluation folder which is to be used by FACER in its evaluation. For configuration C1.1 , save the evaluation folder and output results of FOCUS in a folder
F:\PhD\4thYear\FOCUS\FOCUS_Evaluation\101reponewC1.1tenfold etc.

I changed the ns values to get results for top 10 recommendations only

Now we have to evaluate the dataset with FACER using FACER F:\PhD\4thYear\FOCUS\FACERQueryBuilder\src\automated_evaluation_focus\MainRunner.java
static String evaluationFolderPath = "F:\\PhD\\4thYear\\FOCUS\\FOCUS_Evaluation\\101reponewC1.1tenfold\\evaluation";

static File destFolder2 = new File("F:/101reponew/10fold/C1.1/Q2");
The results get copied to destination folder as a backup

support.Constants.DATABASE = "jdbc:mysql://localhost/101reponew?useSSL=false&user=root";

also set the following
File srcFolder = new File( "F:\\PhD\\4thYear\\FOCUS\\FOCUS_Evaluation\\101reponewC1.1tenfold\\evaluation");

After the FACER generates recommendations, use FOCUS to get metrics for the generated folder. Give the path of evaluation folder in properties file and comment out the part where FOCUS generates its results. Instead, it will now only traverse the folders to output metrics values. I copied the results directly to excel.





FACER end to end execution

The following is outdated please check new post with new steps:

For EMSE paper I am using the following:

101 repo new with corrected code for search indices for comments and API names, using eclipse JDT parser

public static String PROJECTS_ROOT = "E://101projects";
public static String DATABASE = "jdbc:mysql://localhost/101reponew?useSSL=false&user=root";
public static String LUCENE_INDEX_DIR = "F:/temp/101reponew";

FACER repo Building Code:
F:\PhD\PhD Defense\FACERGitRepository\FACER\src\replicateparser\ParseContextAction.java

Now you have to manually add api_call_index_id column in api_call table

Then execute code to populate the column using F:\PhD\PhD Defense\Code\MyUPMiner\src\_1_api_call_index\APICallIndexing.java

Then you have to populate sequence table using  F:\PhD\PhD Defense\Code\MyUPMiner\src\_2_SeqSim\PairwiseSequenceScoring.java

Then you have to generate a CSV for clustering the sequences using

select host_method_id as methodID,api_call_index_id as APICall from api_call
where api_call_index_id!=0

Export it to a CSV and put it on Codec, use putty to execute Nicks.R script.
Command is Rscript Nicks.R
Make sure that the input and output csv file names in Nicks.R are set to the ones you need

Populate the clusters table and Execute the code F:\PhD\PhD Defense\Code\MyUPMiner\src\_3_i_WriteClustersFromR\WriteClusters.java

Make sure to set the correct database url for the constants file.

Create transaction table using F:\PhD\PhD Defense\Code\FASeR_Recommender\src\_1_TransactionTable\TransactionTable.java

Make sure to set the correct database url for the constants file.
Save the file as TransactionTablefor101reponew.txt and Input it to spmf FPClose algo to get the frequent patterns and save it as a text file 101reponew.txt

Mine frequent patterns using F:\PhD\PhD Defense\Code\spmf\ca\pfv\spmf\test\MainTestFPClose_saveToFile.java
make sure to change the input (101reponew.txt) output files (output_101reponew_point03.txt)

Copy the output file to FASER Recommender folder
Populate related features using F:\PhD\PhD Defense\Code\FASeR_Recommender\src\_3_PopulateRelatedFeatures\PopulateRelatedFeatures.java
make sure to change the input file name to the one you mined i.e. output_101reponew_point03.txt







what is a good PhD contribution?

When PhD candidates embark on their thesis journey, the first thing they will likely learn is that their research must be a “significant ori...