COMP 5900: Mining Software Repositories

Software development projects generate impressive amounts of data. Mining software repositories research aims to extract information from the various artifacts produced during the evolution of a software system and inferring the relationships between them. This course will introduce the methods and tools of mining software repositories and artifacts used by software developers and researchers. The course will be seminar-based and will involve weekly reading and discussion. The project component will be flexible but will likely involve some programming. For further details on the course content, please refer to its outline (pdf). This course is offered by the School of Computer Science at the Carleton University.

Seminars are held every Tuesday from 11:35 AM to 2:25 PM in CO 214.

Announcementstop

  • Project presentation details are posted (November 26)
  • Deadline extension! Project reports are due December 16 by 11:59 PM (posted on November 9).
  • There is no class this week but a hackathon is this Friday October 30, 9 am - 1 pm (online or HP 5336). Sign up with your Gmail account here (posted on October 27).
  • Office Hours are available from 9am-11am before the class on Tuesdays in HP 5125D. Send me an email to schedule an appointment (posted on October 19).
  • Hackathon is scheduled for Friday October 30 from 9am-1pm, HP 5336 (posted on October 14).
  • You can publicize your project here to attract other students to join your team.
  • Project proposals are due next Tuesday October 13 by 9 am.
  • Please get and add your GitHub account to this file (posted on September 18)
  • Tutorial for the Assignment is posted (posted on September 17)
  • Submit paper review (Due 9:00 AM every Tuesday)

Content Overviewtop

The course will be adjusted according to students’ interests and experience. This is an overview of the kinds of topics the course could cover:

  • Mining software repositories (data extraction and analysis)
  • Development team processes
  • Software development tools and environments
  • Software analytics
  • Software visualization
  • Mining social data
  • Software evolution
  • Quantitative and qualitative evaluation of software engineering research

Tentative Scheduletop

It is important to note that this schedule is evolving and will change based on your interests and how the class is progressing.

Tuesday September 8 - Introduction

Lecture slides.
Presented by Olga Baysal

Tuesday September 15 - Quantitative vs. Qualitative Empirical Studies

Optional reading:

  1. Baysal, Kononenko, Holmes, and Godfrey "The Influence of Non-Technical Factors on Code Review", WCRE 2013.
  2. Baysal, Holmes, and Godfrey "No Issue Left Behind: Reducing Information Overload in Issue Tracking", FSE 2014.

Lecture slides
Presented by Olga Baysal

Tuesday September 22 - Development Teams

  1. Christian Bird, Nachiappan Nagappan, Premkumar Devanbu, Harald Gall, and Brendan Murphy. "Does distributed development affect software quality?: an empirical case study of Windows Vista". Communications of the ACM, 2009.
    Presented by Aseel Awdeh (slides).
  2. Teasley, S. D., Covi, L. A., Krishnan, M. S. and Olson, J. S."Rapid Software Development through Team Collocation". TSE 2002.
    Presented by Iman Eshraghi (slides).

Tuesday September 29 - Recommender Systems

  1. Thomas Fritz, Jingwen Ou, Gail C. Murphy, and Emerson Murphy-Hill."A degree-of-knowledge model to capture source code familiarity". ICSE 2010.
    Presented by Haifa Alharthi (slides).
  2. Suresh Thummalapenta and Tao Xie. "PARSEWeb: a programmer assistant for reusing open source code on the web". ASE 2007.
    Presented by Kalala Kalonji (slides).

Tuesday October 06 - Distributed development and clones

  1. Herbsleb, J.D., Mockus, A., Finholt, T.A., & Grinter, R.E. "Distance, dependencies, and delay in a global collaboration". CSCW 2000.
    Presented by Howard Needham (slides).
  2. Kalliamvakou, Eirini and Gousios, Georgios and Blincoe, Kelly and Singer, Leif and German, Daniel M. and Damian, Daniela. "The promises and perils of mining GitHub". MSR 2014.
    Presented by Alisher Mansurov (slides).
  3. Daniel E. Krutz and Wei Le. "A Code Clone Oracle". MSR 2014.
    Presented by Wafa Hasanain (slides).

Tuesday October 13 - Research methods and visualization

  1. Zelkowitz and Wallace. "Experimental models for validating technology". Computer, 1998.
    Presented by Djedjiga Outioua (slides).
  2. Richard Wettel, Michele Lanza, Romain Robbes. "Software Systems as Cities: A Controlled Experiment". ICSE 2011.
    Presented by Brian Carignan (slides).
  3. Marat Boshernitsan, Susan L. Graham, and Marti A. Hearst. "Aligning development tools with the way programmers think about code changes". CHI 2007.
    Presented by James Mendek (slides).

Tuesday October 20 - Information needs and clones

  1. Begel, Andrew, Yit Phang Khoo, and Thomas Zimmermann. "Codebook: discovering and exploiting relationships in software repositories". ICSE 2010.
    Presented by Aseel Awdeh (slides).
  2. Reid Holmes and Andrew Begel. "Deep Intellisense: A Tool for Rehydrating Evaporated Information". MSR 2008.
    Presented by Kalala Kalonji (slides).
  3. Ripon K. Saha, Chanchal K. Roy, Kevin A. Schneider, and Dewayne E. Perry. "Understanding the Evolution of Type-3 Clones: An Exploratory Study".  MSR 2013.
    Presented by Wafa Hasanain (slides).

Tuesday October 27 - NO CLASS (Hackathon on October 30, 9 am - 1 pm, HP 5336.)

Tuesday November 3 - Code review

  1. Georgios Gousios, Andy Zaidman, Margaret-Anne Storey, and Arie van Deursen. "Work Practices and Challenges in Pull-Based Development: The Integrator's Perspective". ICSE 2015.
    Presented by Alisher Mansurov (slides).
  2. Sillito, Murphy and De Volder. "Questions programmers ask during software evolution tasks". FSE 2006.
    Presented by Haifa Alharthi (slides).

Tuesday November 10 - VCS and bugs

  1. Kivanc Muslu, Christian Bird, Nachiappan Nagappan, and Jacek Czerwonka. "Transition from Centralized to Decentralized Version Control Systems: A Case Study on Reasons, Barriers, and Outcomes". ICSE 2014.
    Presented by Iman Eshraghi (slides).
  2. Matthieu Foucault, Jean-Remy Falleri and Xavier Blanc "Code ownership in open-source software". EASE 2014.
    Presented by Junaid Maqsood (slides).
  3. Brittany Johnson, Yoonki Song, Emerson R. Murphy-Hill, Robert W. Bowdidge. "Why don't software developers use static analysis tools to find bugs?". ICSE 2013.
    Presented by Sandarbh Bhadauria (slides).

Tuesday November 17 - Refactoring and more

  1. Emerson Murphy-Hill, Chris Parnin, Andrew P. Black. "How we refactor, and how we know it". ICSE 2009.
    Presented by Sandarbh Bhadauria (slides).
  2. Zhenchang Xing, Eleni Stroulia. "Refactoring practice: How it is and how it should be supported: An Eclipse case study". ICSM 2006.
    Presented by Howard Needham (slides).
  3. Xin Chen and Vorvoreanu, M. and Madhavan, K.P.C. "Mining Social Media Data for Understanding Students' Learning Experiences". TLT 2014.
    Presented by Kenneth Byrd (slides).

Tuesday November 24 - Mining Social Media and Web Data

  1. Yanhong Zhai and Bing Liu. "Web Data Extraction Based on Partial Tree Alignment". WWW 2005.
    Presented by Junaid Maqsood (slides).
  2. Thomas Fritz and Gail C. Murphy. "Using Information Fragments to Answer the Questions Developers Ask". ICSE 2010.
    Presented by Djedjiga Outioua (slides).
  3. Leif Singer, Fernando Marques Figueira Filho, Margaret-Anne D. Storey. "Software engineering at the speed of light: how developers stay current using Twitter". ICSE 2014.
    Presented by Brian Carignan (slides).
  4. Marcel Salathe, Shashank Khandelwal "Assessing Vaccination Sentiments with Online Social Media: Implications for Infectious Disease Dynamics and Control". PLoS Computational Biology, 2011.
    Presented by Kenneth Byrd (slides).

Tuesday December 1 - Project Presentations (20 minutes for each group)

Evaluationtop

  • Weekly paper reviews: 10%
  • Assignment (PROMISE Hackathon): 10%
  • Class participation and discussion: 10%
  • Paper presentations: 20%
  • Course Project: 50% (10% project presentation + 40% project report)

Weekly Paper Reviewstop

Each week you are expected to carefully read two papers. In addition, you are to submit a review of one of the papers (you choose which one). However, if you are doing a paper presentation, then you are excused for that week.

Reviews are due by 9:00 AM on the morning of the class. Please send me email with the Subject "[COMP 5900] Paper Review".

A review should be about 500-1000 words long, and submitted as a PDF file.

Your review should address the following points:

  1. What were the primary contributions of the paper as the author sees it?
  2. What were the main contributions of the paper as you (the reader) see it?
  3. How does this work move the research forward (or how does the work apply to you)?
  4. How was the work validated?
  5. How could this research be extended?
  6. How could this research be applied in practice?

Assignmenttop

The assignment will done as a part of the PROMISE Hackathon (no actual coding is required!).
Before you participate in the hackathon, please read the following post (aka tutorial on how to read research papers) written by Tim Menzies

Class Participationtop

Each week you are expected to read two papers, as well as participate in the class discussion.

Paper Presentationstop

In a typical week, we will examine two research papers. I will present a few of them on my own, but the other presentations will be done by students.

You will get to select the two papers you want to present from the course. Please make your selections from this list. Once you have selected your papers, email me your selection. I will generate a cohesive class schedule once everyone has selected their papers.This must be done by September 13 via email.

You are then to design a presentation of about 20-25 minutes that is both informative and entertaining. Don't feel limited to just the content of the papers.

You should also come prepared with a set of questions to foster a 15-20 minute discussion session that you will lead to follow the presentation (this is where the other students earn their class participation marks).

When you design your talk, keep in mind that the audience has already read the papers. Remind us of the motivation, the big ideas, the context of the problem being addressed, and how all of this relates to what we've already seen in the course.

Presentations can be done using Open Office, Powerpoint, Keynote, or PDF. You must supply a set of slides (originals or PDF) to me prior your talk and I will put them on the course web page.

Course Projecttop

The project forms an integral part of this course. The projects can be done individually or completed in groups of two or three students.

You have two options: either create a submission for the 2016 MSR challenge or come up with an idea of your own that relates to the course material. In either case, the project topic will require my approval (via the proposal).

If you decide to do the MSR challenge, you can optionally decide to submit it to the conference, but note that the deadline is February 19, 2016. Talk to me if you are interested in exploring this. Otherwise, you can just decide to do the challenge as your class project and ignore the actual conference submission.

There are three deliverables for your project:

  1. Project proposal. Before you undertake your project you will need to submit a proposal for approval. The proposal should be short (max 2 page PDF in ACM format). The proposal should include a problem statement, the motivation for the project, and set of objectives you aim to accomplish. I will read these and provide comments. The proposal is not for marks but must be completed in order to pass the course. This will be due on October 13 by 9:00 AM via email.
  2. Written report. The required length of the written report varies from project to project (8-10 pages, double column format); all reports must be formatted according to the ACM format and submitted as a PDF. This report will constitute 100% of the project report grade. This will be due on December 16 by 11:59 PM via email.
  3. Project presentation. Each group will have the opportunity to present their project in class on December 01 . This presentation should take the form of a 20 minute (hard maximum) conference-style talk and describe the motivation for your work, what you did, and what you found. If a demo is the best way to describe what you did, feel free to include one in the middle of the talk. Please allocate 3-5 minute time for questions after the project has been presented.

    The proposed structure of your presentation:

    1. Introduction (describe the problem and motivation)
    2. Research questions
    3. Methodology: data collection, data cleanup, data mining, data analysis (statistics, machine learning), etc.
    4. Results (achieved, preliminary, or anticipated)
    5. Implications (why does this study matter? how can your findings be used?)
    6. Conclusion (summary, main contributions)

Contacttop

The best way to get in touch with me is via email: olga.baysal[at]carleton.ca.

University Policiestop

Academic Integrity

Academic Integrity is everyone’s business because academic dishonesty affects the quality of every Carleton degree. Each year students are caught in violation of academic integrity and found guilty of plagiarism and cheating. In many instances they could have avoided failing an assignment or a course simply by learning the proper rules of citation. See the academic integrity for more information.

Academic Accommodations for Students with Disabilities

The Paul Menton Centre for Students with Disabilities (PMC) provides services to students with Learning Disabilities (LD), psychiatric/mental health disabilities, Attention Deficit Hyperactivity Disorder (ADHD), Autism Spectrum Disorders (ASD), chronic medical conditions, and impairments in mobility, hearing, and vision. If you have a disability requiring academic accommodations in this course, please contact PMC at 613-520-6608 or pmc@carleton.ca for a formal evaluation. If you are already registered with the PMC, contact your PMC coordinator to send me your Letter of Accommodation at the beginning of the term, and no later than two weeks before the first in-class scheduled test or exam requiring accommodation (if applicable). After requesting accommodation from PMC, meet with me to ensure accommodation arrangements are made. Please consult the PMC website for the deadline to request accommodations for the formally-scheduled exam (if applicable).

Religious Obligation

Write to the instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details visit the Equity Services website.