PhD Course - Automated Program Repair
Organizer(s): Andrzej Wasowski and Mahsa Varshosaz
Lecturer(s): Mahsa Varshosaz, Andrzej Wasowski, and the participants
Date(s) of the course: April 30, May 14 and 21, June 4, 11 and 18
Room preferences: The room is reserved and will be announced on the course website.
Course description: The problem of automatically synthesizing patches that fix bugs in programs is a recently hot topic in Software Engineering, intersecting to semantics and verification, and (simultaneously) to AI and machine learning. In our reading group, we will be looking at papers that use search-based techniques (learning) and testing to fix programs, and some that use more semantics oriented methods (symbolic execution, synthesis).
We plan to have six sessions. In each session, participants present and discuss two papers. Furthermore, the details and interesting points will be discussed among the group.
Programme: Each session will last 90 minutes and will include a presentation and discussion of two research papers.
Prerequisites: Basic knowledge about semantics, verification and testing.
Exam: Credit is given to participants who have presented papers and actively participated in the discussion.
Credits: 1.5 ECTS
Amount of hours the student is expected to use on the course:
Participation: 9 hours.
Preparation: 40-50 hours, about 3 hours for reading each paper, and about 10 hours for preparing a session.
How to sign up: Mahsa Varshosaz, firstname.lastname@example.org
Reading list: The participants will read a list of papers on program repair throughout the course.
- Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. 2009. Automatically finding patches using genetic programming. In Proceedings of the 31st International Conference on Software Engineering (ICSE '09). IEEE Computer Society, Washington, DC, USA, 364-374. DOI=http://dx.doi.org/10.1109/ICSE.2009.5070536
- Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. 2012. GenProg: A Generic Method for Automatic Software Repair. IEEE Trans. Softw. Eng. 38, 1 (January 2012), 54-72. DOI=http://dx.doi.org/10.1109/TSE.2011.104
- Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, and Satish Chandra. 2013. SemFix: program repair via semantic analysis. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 772-781.
- Sergey Mechtaev, Jooyong Yi, and Abhik Roychoudhury. 2016. Angelix: scalable multiline program patch synthesis via symbolic analysis. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, USA, 691-701. DOI: https://doi.org/10.1145/2884781.288480
- Haopeng Liu, Yuxi Chen, and Shan Lu. 2016. Understanding and generating high quality patches for concurrency bugs. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2016). ACM, New York, NY, USA, 715-726. DOI: https://doi.org/10.1145/2950290.2950309
- Peng Liu, Omer Tripp, and Charles Zhang. 2014. Grail: context-aware fixing of concurrency bugs. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 318-329. DOI: https://doi.org/10.1145/2635868.2635881
Additional reading will be published on the course website. We will prioritize the papers collaboratively with the participants.