October 25, 2016 Jon

Two Graduate Research Assistant (PhD) Positions in Software Engineering and Software Systems

default-image

George Mason University’s Engineering School

Overview

I am currently seeking two students interested in software engineering and software systems to join my research group as PhD students at George Mason University starting in Fall 2017. My research interests are in software engineering and software systems, focusing on approaches and tools to make it easier for developers to create reliable software. The positions are for fully funded (tuition and stipend) graduate research assistantships. There are two main projects that I am seeking students for:

Phosphor – Dynamic Dataflow Analysis in off the shelf JVMs

screenshot-2016-10-25-11-02-46

Taint Tracking

Dynamic taint tracking is a form of information flow analysis that identifies relationships between data during program execution. Inputs to the program are labeled with a marker (“tainted”), and these markers are propagated through data flow. Phosphor efficiently implements this dynamic analysis in regular JVMs. I’m seeking a student interested in program analysis who will expand Phosphor to support other, related dynamic analyses, and also to investigate combining Phosphor’s dynamic analysis with related static analyses.

Detecting Behaviorally Similar Code

This project investigates tools that detect similarly behaving code to aid in software engineering tasks. When software engineering researchers discuss “similar” code, they often mean code determined to be syntactically or structurally similar, known as “code clones.” In this project, we mean something different.  An emerging body of research has focused on detecting code that looks different, but behaves similarly: “behavioral clones.” But how do we match behaviorally similar code? Consider the four “magic” functions defined below that all sum the contents of an array (and possibly double it) – are these behavioral clones? How do we detect such behavioral clones? Some of my previous work has considered code that produces similar outputs for the same inputs (HitoshiIO), or have similar execution characteristics (Dyclink). I’m seeking a student to join this project who will extend my previous work in this area, implementing new behavioral similarity detection systems.

 

int magic1(int[] ar){
	int sum = 0;
	for(int i=0;i<ar.length;i++)
		sum += ar[i];
	return sum;
}
int magic2(int[] ar){
	int sum = 0;
	for(int i=0;i<ar.length;i++)
		sum += 2 * ar[i];
	return sum;
}
int magic3(int[] ar){
	int sum = 0;
	int i = 0;
	try{
		while(true)
			sum += ar[i++];
	}
	catch(ArrayIndexOutOfBoundsException ex){}
	return sum;
}
int magic4(int[] ar){
	int sum = 0;
	int i = 0;
	try{
		while(true)
			sum += 2 * ar[i++];
	}
	catch(ArrayIndexOutOfBoundsException ex){}
	return sum;
}

Application deadline:

The deadline for these positions is January 15, 2017. However, applications will be considered immediately upon receipt, so if you are interested, you are strongly encouraged to apply ASAP.

International students are very strongly encouraged to apply by November 15th to ensure timely processing of visa-related materials.

Location:

George Mason University is located in Fairfax, VA, approximately 20 minutes outside of Washington, DC.

Expected Skills and Qualifications:

Successful candidates will have a BS and/or MS in Computer Science, with a very strong background in Java. Ideally, the successful candidate would also have some degree of background in program analysis and software testing. Candidates with industrial experience are welcome.

How to apply & for more information:

Interested students should email Prof Jonathan Bell at [email protected] and include a brief statement describing their interest in one or both of the positions above, and a CV. You will also be required to submit the department’s application, which will require GRE, three letters of recommendation, and TOEFL for non-native english speakers. Interested students should email Prof Bell immediately to discuss the GRA position (before filling out the school application).

Contact