Class Schedule, Reading List, and Project Milestones
Introduction
(8/25, 8/30)
(Project)
Now:
Topic Selection
Start thinking about what kinds of projects interest you and check out
the suggested project ideas
in
the blackboard system (Left Menu, Course Documents=>Suggested
Project Ideas).
If you would like me to help you find a project that fits your
interests, please let me know.
Program
Differencing (9/1, 9/8)
- The Longest Common
Subsequence Algorithm (diff)
- Abstract
syntactic tree
based program differencing (CDiff)
- Control Flow Graph based
Program Differencing (JDiff)
- Taweesup Apiwattanapong,
Alessandro Orso, and Mary Jean Harrold. "A
differencing algorithm for object-oriented programs".
In ASE ’04: Proceedings of the 19th IEEE International
Conference on Automated Software Engineering, pages
2–13, Washington, DC, USA, 2004. IEEE Computer Society.
- Class
Activity on Line-based and AST-based Program Diffferencing
- Logical Structural
Diff
- Reading
Assignment
#1 Due (8/31)
Note:
Dr. Kim will be
attending conferences from 9/12 to 9/25. We will have a guest lecture
from Dr. Sarfraz Khurshild on 9/13 and Dr. Christine Julien on
9/20. We will have a presentation from Kyle Prete, Shayne
Czyzewski and Na Meng on 9/15 and 9/22.
(Project)
Pre-Proposal Due (9/10)
Each
person will submit a 1 page proposal describing the research
project that you plan to work on. I expect to see sections on:
- Problem definition and
motivation. What are the goals of your project
and why are these goals important?
- Your approach for addressing
the problem that you defined above.
- An initial discussion of
related work.
Please
use
the blackboard system (link on the course front page) to upload your
project proposal. Each proposal should begin with a
title. Each
proposal should be in ACM
SIG proceedings format. Submissions not in
this format will not be reviewed. (This is to model
program committees for conferences and workshops, which have the option
to automatically reject papers if they do not comply with the
submission guidelines).
Mining
Software Repositories (9/27, 9/29)
- Recommending
Related
Changes
- Recommending
Relevant
Artifacts
- Class
Activity on
Recommendation Systems
- Reading
Assignment
#2 Due (9/26)
(Project) Proposal Due (9/30,
11:59 PM)
Each
person will submit a 3 page proposal describing the research
project that you plan to work on. I expect to see sections on:
- Problem definition and
motivation. What are the goals of your project
and why are these goals important?
- Your approach for addressing
the problem that you defined above.
- How you plan to evaluate
your approach.
- A more in-depth discussion
of
related work. If appropriate, also
explain how
your approach is different from existing approaches.
- A list of milestones and
dates.
Please
use
the blackboard system (link on the course front page) to upload your
project proposal. This proposal is a refined version of your
pre-proposal. It should be in ACM SIG proceedings format.
Delta
Debugging (10/4) and FindBug (10/6)
- Andreas Zeller. "Yesterday,
my program worked. today, it does not. why?",
In ESEC/FSE-7: Proceedings of the 7th European Software Engineering
Conference held jointly with the 7th ACM SIGSOFT International
Symposium on Foundations of Software Engineering, pages
253–267, London, UK, 1999. Springer-Verlag.
- Applications of the Delta
Debugging Algorithm
- David Hovemeyer and William
Pugh, "Finding
Bugs is
Easy", In OOPSLA onward! 2004,
ACM SIGPLAN Notices, pages 92-106,
2004
- Reading
Assignment #3 Due (10/3)
Regression
Testing and Change Impact Analysis (10/11, 10/13)
- Regression Testing Selection
- Alessandro Orso, Nanjuan
Shi, and Mary Jean Harrold, "Scaling
regression testing to large software systems",
In SIGSOFT ’04/FSE-12: Proceedings of the 12th ACM SIGSOFT
twelfth International Symposium on Foundations of Software Engineering,
pages 241–251, New York, NY, USA, 2004. ACM.
- Class Activity on Code
Coverage
- Change
Impact Analysis
- Xiaoxia Ren, Fenil Shah,
Frank Tip, Barbara G. Ryder, and Ophelia
Chesley, "Chianti:
a tool for change impact analysis of java programs",
In OOPSLA ’04: Proceedings of the 19th annual ACM SIGPLAN
Conference on Object-Oriented Programming, Systems, Languages, and
Applications, pages 432–448, New York, NY, USA, 2004.
ACM.
- Class Activity on Change
Impact Analysis
- Reading
Assignment #4 Due (10/10)
Program
Restructuring (10/18) and Software
Design for Ease of Change (10/20)
- Refactoring
Reconstruction
- Information
Hiding
Principle
- Design
Patterns
- Software
Architecture
- Reading
Assignment
#5 Due (10/17)
(Project) Midpoint Review
Report and Presentation Due (10/24, 11:59 PM)
Each person
should submit a
midpoint progress report (max 6 pages) to the blackboard system. This
progress report should detail what you have accomplished so far since
your last checkpoint. List all technical challenges if you are stuck in
making progress. It should be in ACM SIG proceeding's
format.
In
your progress reports, you should
reflect on what you have
accomplished and draw preliminary conclusions from your results.
If
appropriate, you should also explicitly state any additional
experiments or evaluations you may need to perform in order to
strengthen your preliminary conclusions or answer open questions left
by your preliminary conclusions. I expect to see sections on:
- Problem definition and
motivation. What are the goals of your project
and why are these goals important?
- Your approach for addressing
the problem that you defined above.
- Your evaluation plan
- Preliminiary results
- Additional experiments and
evaluations
that you plan to perform
- Related work that explain
how
your approach is different from existing approaches.
- Preliminary conclusions
Here
is a grading
guideline for a midpoint review report (pdf).
Midpoint
Project Presentations in Class (10/25, 10/27)
Crosscutting
Concerns (11/1, 11/3)
- Separation of Concerns
- Concern Management
- Language-based Approaches
toward Crosscutting Concerns
- Optional: Gregor Kiczales,
John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina
Lopes, Jean-Marc Loingtier, and John Irwin, "Aspect-oriented
programming",
In European Conference on Object-oriented Programming, volume 1241,
pages 220–242. Lecture Notes in Computer Science 1241, 1997
- Optional: Michael
VanHilst and David Notkin, "Decoupling
change from design",
In SIGSOFT ’96: Proceedings of the 4th ACM SIGSOFT Symposium
on Foundations of Software Engineering, pages 58–69, New
York, NY, USA, 1996. ACM.
- Activity on Crosscutting
Concerns & Visitor Pattern
- Reading
Assignment
#6 Due (10/30)
Empirical
Studies of Software Evolution (11/8,
11/10)
- Code Decay
- Corrective,
Adaptive, and Perfective Changes
- Reading
Assignment #7 Due (11/7)
Reverse
Engineering and Knowledge Discovery (11/15,
11/17)
- Reflexion Model
- Metrics
and Visualization
- Reading
Assignment #8 Due (11/14)
Clones (11/22, 11/24)
- Automatic Clone
Detection
- Code Clone
Genealogy
- Miryung Kim, Vibha
Sazawal, David Notkin, and Gail Murphy, "An
empirical study of code clone genealogies",
In ESEC/FSE-13: Proceedings of the 10th European Soft-ware Engineering
Conference held jointly with 13th ACM SIGSOFT International Symposium
on Foundations of Software Engineering, pages 187–196, New
York, NY, USA, 2005. ACM.
- Reading
Assignment #9 Due (11/21)
(Project)
Final
Report, Electronic
Presentation, and Implementation Zip File with Manual Due (11/28, 11:59
PM)
Each
person will submit a written report (max 10 pages), as
well as a slide deck, to the blackboard system. Please submit the
report
and the slide deck as separate PDF files. You may include an
appendix beyond 10 pages, but your paper
must be intelligible without it. Submissions not in the
ACM
format will
not be reviewed (this is to model program committees for conferences
and workshops, which have the option to automatically reject papers if
they do not comply with the submission guidelines).
Your
report should be structured like a conference paper, meaning that
your report should contain:
- Abstract
- A well-motivated introduction
- Related work with proper
citations
- Description of your
methodology
- Evaluation results
- Discussion of your approach,
threats to validity, and additional
experiments
- Conclusions and future
work
- Appendix: Describe how to
run and test your implementation (See
below).
If
you are doing a project that
involves implementation, you must submit your souce code in zip file.
This zip file must include test cases and a manual in
addition to source code. Your manual must describe how to run and test
your code and must describe how you achieve empirical results described
in your final report.
Here
is a grading
guideline for a final project report (pdf).
Project
Presentations
(11/29, 12/1)
- Final
Report and Electronic Presentation Due (11/28)