Remember the Reader!
Christian Gram Kalhauge
When thinking without writing, you only think you are thinking!
Leslie Lamport
And write early in the sentence.
start with old
end with new
Program analysis is one of the most fun disciplines in computer science. After taking this course, we hope that the students will feel this as well. Concolic execution is a great example of why people should know about program analysis. Sadly, it is not well known.
Program analysis is one of the most fun disciplines in computer science. After taking this course, we hope that the students will feel that as well. One example of a program analysis that might entice students to take and enjoy the course, is Concolic execution. Sadly, concolic execution is not well known.
Don't. A through investigation of the causes of the inaccuracies in the analysis was done, and no clear cause were found.
Do. We did a through investigation of the inaccuracies in the analysis, and we found no clear cause.
Don't. Contained in this paper, are many truths!
Do. This paper contains many truths!
Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
Never use a long word where a short one will do.
If it is possible to cut a word out, always cut it out.
Never use the passive where you can use the active.
Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
Break any of these rules sooner than say anything outright barbarous.
Title (1 sentence, 10.000 readers)
Abstract (1-2 paragraphs, 1.000 readers)
Introduction (1-2 pages, 100 readers)
Key Idea (2-3 pages, 50 readers)
Technical Meat (3-5 pages, 10 readers)
Related Work (1-2 pages, 100 readers)
Conclusion (0-1/2 pages, 100 readers)
Project 10
Group 10 (Waste of space, your group name is in the author list.)
Program Analysis (Does not tell the reader anything).
Testcase Prediction (Ambiguous and the method is not clear).
Test Case Selection using Static Call-Graph Analysis.
Testing Static Analysis using LLM-Synthesized Code.
Confirming Static Analysis Results using Directed Dynamic Analysis.
1-2 pages
Were you say what grade you want.
Context, Gab, Innovation, Evaluation
(Context) The regression test-suites of big software projects can contain thousands of tests. Running all of these tests can take multiple days. Selecting which tests to run is therefore crucial to maintain developer productivity. (Gap) Currently, developers will manually select which tests to run after a change. This is inefficient and error-prone.
(Innovation) In this paper, we use syntactic static analysis and information logged in an initial run of the test-suite, to predict which test might have changed. Our key insight is... (Evaluation) In a case study, we ran our approach on Maven, which has 8323 tests. Over the last 300 commits we were able to correctly predict 98 % of the changed tests, and were able to on average save 23.2 min of test time per commit.
Include (a few) references to prior work
A motivating example showing the Gap.
The first paragraph after the In this paper, should contain your hypothesis.
Ends with a bullet list of contributions with forward references.
(2-3 pages)
3-5 pages
Theory
Implementation
Evaluation
The foundational stuff
The delta between your Theory and Evaluation
The practical proof
Did You?
answer your research question (if not change it)?
analyse your results statically (does your result vary)?
think of threats to validity (otherwise reduce your scope)?
1-2 pages
It is not a list, its a comparison.
Can be papers, tools or techniques described in class.
Don't. There exist other techniques that also solve our problem, like fuzz testing and symbolic execution.
Do. We could also have used fuzz testing to solve our problem, however it does have two mayor drawbacks compared to our technique. Firstly, it requires a... The same limitations apply to symbolic execution.
(1/2 page) And you are done.
Next Time, have Introduction + Abstract ready for your feedback group to give feedback on.
It's okay to make-up results, like performance numbers. Try to choose the once you think are realistic so that you can see if your feedback group finds the numbers interesting.