How perfect my implementation should be?

In the program analysis field, we built a lot of software tools. Building a mature program analysis tool can take significant engineering efforts. In your limited time graduate studies, you do not want to swamp yourself into massive tool building.  For writing a research paper, the implementation should be driven by experiments. Remember that your primarily goal here is to demonstrate your new algorithms and methodologies work. During or even before the implementation, you need to think about the following questions:

What are the goals of your experiments? For each goal, what are the research questions you aim to answer? For these goals and the research questions, what types of data you want to collect? what are the metrics? For each type of the data, what types of experiments you should design? Finally, what implementation needs to be done to support these experiments? Then how the data can be presented to the readers? tables? figures? or processed via statistical methods?

Note that some of the tools we developed can potentially be reused by other researchers in the community. For release purposes, we then need to do more implementation to better support readability and usability of the tools. Once the tools are released, you can choose maintain the tools and respond to the users’ questions, like Diakon; or you can just release a tool and put a note “the users are responsible for bug fixes”. Of course, the first approach will attract more users but require higher maintenance effort.


How to generate a good pdf in latex

latex $*.tex;
bibtex -min-crossrefs=100 $*;
latex $*.tex;
dvips -t letter -Ppdf -G0 -o $*.ps $*.dvi;
ps2pdf -dPDFSETTINGS=/prepress         \
-dSubsetFonts=true    \
-dEmbedAllFonts=true  \
-dCompatibilityLevel=1.3        \
-dAutoFilterColorImages=false   \
-dAutoFilterGrayImages=false    \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode  \
-dMonoImageFilter=/FlateEncode  \
-dDownsampleColorImages=false   \
-dDownsampleGrayImages=false    \
$*.ps $*.pdf;

How to get funded in graduate schools?

In addition to RAs and TAs provided by the department and professors, you can also consider applying the following fellowships to support your graduate school studies:

Microsoft Research PhD Fellowship
● Full time student
● Nominated by the university
● Second or third year
● May not receive another fellowship
● Awarded only for two consecutives years
● 100% tuition
● Stipend of ~$28,000
● Conference travel allowance
● Opportunity to one salaried internship

IBM PhD Fellowship
● Nominated by faculty member. The faculty member is encouraged to contact IBM colleague for mutual interest.
● Full time student
● Values diversity

Google PhD Fellowship Program
● Full time student
● Nominated by department
● Completed coursework
● Students with another fellowship are not eligible
● Thesis Proposal, CV, three letters of recommendation

● $33,000 year stipend
● Google research mentor
● Tuition and fees
● Third year extension (to discretion)

Nvidia Graduate Fellowship
● Completed first year.
● Have dissertation proposal (1 or two pages)
● CV and nomination form with 3 letters of recommendation
● Membership active research group
● Fulltime PhD student
National Defense Science and Engineering Graduate Fellowship
● U.S. citizen.
● Be enrolled in their final year of undergraduate studies, or Have completed less than two fulltime years of graduate study in the discipline in which they are applying.
● You must intend to pursue a doctoral degree in order to be eligible for NDSEG Fellowship

Google Lime Scholarship Program
● An undergraduate, graduate or PhD student currently enrolled at a university in the U.S. or Canada (freshmen/first years and international students studying in the U.S. or Canada are eligible to apply)
● Intend to be enrolled in or accepted as a full time student at a university in the U.S. or
Canada in the 2014 2015 academic year
● Pursuing a Computer Science or Computer Engineering degree, or a degree in a closely related technical field (such as software engineering; or electrical engineering with a
heavy computer science course load)
● Maintaining a strong academic performance
● A student with a visible or invisible disability (defined as someone who has, or considers
themselves to have, a longterm, or recurring, issue that impacts one or more major activities that others may consider to be a daily function); this definition also includes the perception among others that a disability exists. We know that 90% of disabilities on campus are invisible, and candidates with all disabilities are encouraged to apply
● Exemplify leadership and demonstrate a commitment to and passion for computer
science and technology
● Previous Google Lime Scholars are unfortunately not able to be considered

Xerox Minority Scholarships
● This scholarship is available to US Citizens and individuals with Permanent Resident
● Take a look at the document provided in the web page (Qualifications & Process Steps)
for more information.

Ford Fellowship Programs
● .All citizens, nationals and permanent residents (holders of a Permanent Resident Card)
of the United States, and individuals granted deferred action status under the Deferred
Action for Childhood Arrivals Program, regardless of race, national origin, religion,
gender, age, disability, or sexual orientation,
● Individuals with evidence of superior academic achievement (such as grade point
average, class rank, honors or other designations),
● Individuals committed to a career in teaching and research at the college or university

NSF Graduate Research Fellowship


The Symantec Research Labs Graduate Fellowship

Facebook Fellowship

Fellowship and Scholarship from Iowa Space Grant Consortium

Thanks Danilo Dominguez Perez for providing some information.