CS 6501: Empirical Software Engineering , Spring 2017

Lecture Details

Instructor: Baishakhi Ray (Rice 340)
Meetings : Tuesday and Thursday 3:30 PM - 4:45 PM at Rice Hall 340
Office Hours: Tuesday 5 pm - 6 pm or by appointment
Teaching Assistant: Chong Tang (ctang at virginia dot edu)

Description

This course will teach how to write better software using diverse data analysis techniques borrowed from Machine Learning, Natural Language Processing, Network Analysis, and Statistical Modeling. We will analyze large-scale open-source software data from GitHub and StackOverflow, and build different tools such as code recommendation systems, automatic bug finders, etc. In addition, we will read research papers to learn the current start-of-the-art.

Prerequisite

The class will primarily focus on Software Engineering Research. You should have a good knowledge about program development and handling moderate to large scale code repository. It will require at least 8-10 hours + class time per week for this class.

Tentative Topics
  • Program Variants
  • Software Enginnering + Natural Language Processing (NLP)
  • Software Enginnering + Information Retrieval (IR)
  • Mining Software Repositories (MSR)
Schedule

Reading & Presentation      Lectures Assignments      Presenter
Introduction Week 1 (1/19/2017)            Overview Baishakhi Ray    
Program Variants Week 2 (1/24/2017) Program Tuning    Chong Tang    
Week 2 (1/26/2017) Cost of maintaining program variant Baishakhi Ray    

Grading
  • Group Project (2-3 students) – 60%
    • Project Proposal - 5%
    • Mid-term report/presentation - 15%
    • End of semester presentations/demo – 20%
    • End of semester project report - 20%
  • Quiz – 25%
  • Class Participation – 15%
    • Paper presentation - 8%
    • Reviews/Questions - 7%