Instructor: | Francisco Servant [fservant@vt.edu] |
Office hours: | After class, or by email appointment |
Lectures: | Tuesdays 8:00-10:40AM, Knowledge Works II, room 2225 |
Description
Software engineering is a highly complex endeavor. Software engineers today perform complex tasks that involve the creative creation and comprehension of complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and development team dynamics. At the same time, software engineers also spend large amounts of time performing mechanical work — dealing with complex software development tools — to be able to perform their tasks.
The field of software engineering analytics and automation aims to improve the software engineering discipline in two ways: first, by performing analytics on the software development process to achieve an understanding of the problematic software engineering tasks and their efficiency bottlenecks; second, by developing automatic techniques that leverage such understanding to support software developers in performing their tasks more effectively and efficiently.
In this class, we will discuss the state-of-the-art research works in software engineering analytics and automation. The students will also work on research projects to develop novel techniques in this area.
Prerequisites
Graduate or senior standing in the Department of Computer Science and a prior course in software engineering, e.g., CS 4704.
Readings
The majority of the readings in the course will be papers available through the IEEE or ACM Digital Libraries. The instructor will provide all the necessary readings in Canvas.
Grading and Evaluation
Distribution of points:
There are three elements to your grade: a research project, short paper summaries (CTTC), and class attendance and participation. Each assignment will contribute to a different percentage of your grade:
CTTC | 30% |
Research Project | 50% |
Class Attendance and Participation | 20% |
Submission guidelines:
Assignments must be submitted as follows:
- through Canvas. Use the folder for the corresponding assignment
- as a single PDF (Adobe Acrobat) document
- by 8pm Eastern time on the due date
Late submission policy:
Assignments will be turned in electronically through Canvas. Unexcused late assignments will be penalized 25% per 24-hour period.
Grading scale:
A | 93% or higher |
A- | 90% or higher |
B+ | 87% or higher |
B | 83% or higher |
B- | 80% or higher |
C+ | 77% or higher |
C | 73% or higher |
C- | 70% or higher |
D+ | 67% or higher |
D | 63% or higher |
D- | 60% or higher |
F | 0% or higher |
Cut-to-the-chase (CTTC) summaries
The short paper summaries will allow you to demonstrate that you’ve read and thought about the assigned readings. Readings are assigned, as shown in the schedule, each week of the class. You will write a short summary and analysis of each week’s papers. I am not interested in only reading a paraphrase of each paper’s abstract. I am interested in reading your assessment of each paper: what points do you believe to be the important ones? Do you believe those points? Why or why not? What points did the author(s) not address that they should have? Since multiple papers are assigned, you’ll have to learn how to present incisive, cut-to-the-chase (CTTC) analyses in few words.
Each week you will submit a single PDF file with your summary for every paper assigned for that week. Your comments should use at least half a page of a letter-sized document for each assigned paper.
Research project
You will work on a research project related to the topics covered in class. You may work individually or in groups of two people. Groups of two people are expected to deliver a more substantial contribution.
You are expected to design your own research project or select one of the projects proposed by the instructor. To help you design your project, you can look at the Mining challenge of the 2017 International Conference of Mining Software Repositories. You are encouraged to use the dataset proposed for the Mining Challenge if your project is based on analyzing software data. If you define your own project, you should discuss it with me during office hours before writing your proposal report.
You are encouraged to use Bitbucket for your source code and project report documents. Add me (username fservant) as your project member to facilitate my feedback.
All your reports should follow the ACM SIG Proceedings Templates.
Research project deliverables (and project grade percentage):
Project proposal report (15%) and presentation (10%)
Your project proposal should be at least 2 pages, and it should include:
Introduction: describing the problem, why the problem is important, your proposed solution, and how you expect your solution to improve the state of the art.
Related work: describing other published research related to the project that you are proposing. Other research can be related because: it motivates the need for your project, it tries to solve the same problem in a different way, it uses your proposed technique for other problems, etc.
Your project proposal presentation should include the same information, summarized in a 5-minute lightning talk.
Project progress presentation (20%)
Your project progress presentation will take 15 minutes, and it should include:
Problem description (updated from your project proposal)
Solution description (updated and extended from your project proposal)
Progress made so far
Planning for the remaining weeks
Potential roadblocks that you may encounter in the remaining weeks, and how you expect to overcome them
Final project report (40%) and presentation (15%)
Your final project report should be 10 pages (plus up to 2 separate pages for references), and it should include:
Introduction: describing the problem, why the problem is important, your proposed solution, and how you expect your solution to improve the state of the art.
Related work: describing other published research related to the project that you are proposing. Other research can be related because: it motivates the need for your project, it tries to solve the same problem in a different way, it uses your proposed technique for other problems, etc.
Approach: conceptual description of your solution
Implementation: technical description of the solution that you implemented
Evaluation: description of the experiments that you performed, and interpretation of your results.
Conclusion: Did you solve the problem? To what extent? For which cases?
References: Citations of all the research papers relevant to your project
Your final project presentation should take 15 minutes and include:
Short problem description (updated from your project progress presentation)
Short solution description (updated from your project progress presentation)
Challenges that you resolved along the way
Evaluation description and interpretation of your results
What did you learn? What would you have done differently? What other future wor could be performed, inspired by your project?
Schedule (likely to change)
Week | Date | Topic | Meeting Type | Papers introduced by | Assignment |
---|---|---|---|---|---|
1 | 08/23/16 | Introduction | Lecture | ||
08/25/16 | Developer Needs | Discussion | |||
2 | 08/29/16 | Submission by 8pm | CTTC1 | ||
08/30/16 | Software Development Analytics. |
Discussion | |||
09/02/16 | Submission by 8pm | CTTC2 | |||
3 | 09/05/16 | Submission by 8pm | CTTC3 and Project teams | ||
09/06/16 | Software Development Automation | Discussion | |||
4 | 09/12/16 | Submission by 8pm | CTTC4 | ||
09/13/16 | Project proposal presentations and Expertise Finding | Presentations and Discussion | |||
5 | 09/19/16 | Submission by 8pm | CTTC5 and Project proposal report | ||
09/20/16 | Project proposal presentations and Summarization | Presentations and Discussion | Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah | ||
6 | 09/26/16 | Submission by 8pm | CTTC6 | ||
09/27/16 | Effort Estimation | Discussion | Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej | ||
7 | 10/03/16 | Submission by 8pm | CTTC7 | ||
10/04/16 | Collaboration | Discussion | Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik | ||
8 | 10/10/16 | Submission by 8pm | CTTC8 | ||
10/11/16 | Code History Analysis | Discussion | Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah | ||
9 | 10/18/16 | Project progress presentations | Presentations | ||
10 | 10/24/16 | Submission by 8pm | CTTC9 | ||
10/25/16 | API recommendations | Discussion | Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej | ||
11 | 10/31/16 | Submission by 8pm | CTTC10 | ||
11/01/16 | Refactoring | Discussion | Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik | ||
12 | 11/07/16 | Submission by 8pm | CTTC11 | ||
11/08/16 | Defect Prediction | Discussion | Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah | ||
13 | 11/14/16 | Submission by 8pm | CTTC12 | ||
11/15/16 | Software Visualization | Discussion | Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej | ||
14 | 11/22/16 | Thanksgiving break. No class. | |||
15 | 11/28/16 | Submission by 8pm | CTTC13 | ||
11/29/16 | Software Development Practices | Discussion | Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik | ||
16 | 12/06/16 | Final project presentations | Presentations in class | Final project presentation | |
Exams week | 12/13/16 | Submission by 11:59pm | Final project report |
Policies
Virginia Tech Honor Code:
The work you turn in must be your own. Consequences of cheating in this class: a letter in your academic file, and the course grade is lowered, most likely to F. Material that is copied from books or Web pages needs to be quoted and the source must be given. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner.
Accommodations:
If you need special accommodations, please contact the instructor during the first week of classes.