Lectures will take place in Akerman Hall 211.
Office hours will start from the third week of class and will be in 6-207 Keller Hall on M,W 04:00 pm - 05:00 pm. You need to send a message on Piazza 24 hours in advance to book a time slot for office hours.
| Week | Date | Location |
Type | Topic | Slides | Presenter |
Critique |
| 1 | - | - | - | - | - | - |
- |
| 09/06/2023 | Akerman Hall 211 | Class | Introduction | Slides | Instructor | - |
|
| 2 |
09/11/2023 | Zoom | Class | Papers |
Slides | Instructor | - |
| 09/13/2023 | Video |
Class | Projects | Slides | Instructor | - |
|
| 3 |
09/18/2023 | Akerman Hall 211 | Class | An Empirical Study of Functional Bugs in Android Apps | Slides | Instructor | Groups A+B |
| 09/20/2023 | Akerman Hall 211 | Class | Fill in the Blank: Context-aware Automated Text Input Generation for Mobile GUI Testing | Slides | Student | Groups A+B | |
| 4 |
09/25/2023 | Akerman Hall 211 | Class | Efficiency Matters: Speeding Up Automated Testing with GUI Rendering Inference | Slides | Student | Groups A+B |
| 09/27/2023 | Akerman Hall 211 | Class | Read It, Don't Watch It: Captioning Bug Recordings Automatically | Slides | Student | Group A | |
| 5 |
10/02/2023 | Akerman Hall 211 | Class | Project Work | - | - |
- |
| 10/04/2023 | Zoom | Class | Project Work |
- | - |
- |
|
| 6 |
10/09/2023 | Akerman Hall 211 | Class | GIFdroid: Automated Replay of Visual Bug Reports for Android Apps | Slides | Student | Group B |
| 10/11/2023 | Akerman Hall 211 | Class | Automatically Reproducing Android Bug Reports using Natural Language Processing and Reinforcement Learning | Slides | Student | Group A | |
| 7 |
10/16/2023 | Akerman Hall 211 | Class | Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction | Slides | Student | Group B |
| 10/18/2023 | Akerman Hall 211 | Class | Toward Interactive Bug Reporting for (Android App) End-Users | Slides | Student | Group A | |
| 8 |
10/23/2023 | Akerman Hall 211 | Class | TOGA: A Neural Method for Test Oracle Generation | Slides | Student | Group B |
| 10/25/2023 | Akerman Hall 211 | Class | Detecting Non-crashing Functional Bugs in Android Apps via Deep-State Differential Analysis | Slides | Student | Group A | |
| 9 |
10/30/2023 | Akerman Hall 211 | Class | Extracting Inline Tests from Unit Tests | Slides | Student | Group B |
| 11/01/2023 | Akerman Hall 211 | Class | More Precise Regression Test Selection via Reasoning about Semantics-Modifying Changes | Slides | Student | Group A | |
| 10 |
11/06/2023 | Akerman Hall 211 | Class | Project Work | - | - |
- |
| 11/08/2023 | Akerman Hall 211 | Class | Project Work | - | - |
- |
|
| 11 |
11/13/2023 | Akerman Hall 211 | Class | Better Automatic Program Repair by Using Bug Reports and Tests Together | Slides | Student | Group B |
| 11/15/2023 | Akerman Hall 211 | Class | Towards Boosting Patch Execution On-the-Fly | Slides | Student | Group A | |
| 12 |
11/20/2023 | Akerman Hall 211 | Class | An Empirical Study on Software Bill of Materials: Where We Stand and the Road Ahead | - | Student | Group B |
| 11/22/2023 | Akerman Hall 211 | Class | Project Work | - | - |
- |
|
| 13 |
11/27/2023 | Akerman Hall 211 | Class | An Empirical Study of Automation in Software Security Patch Management | Slides | Student | Group A |
| 11/29/2023 | Akerman Hall 211 | Class | Precise and Efficient Patch Presence Test for Android Applications against Code Obfuscation | Slides | Student | Group B | |
| 14 |
12/04/2023 | Akerman Hall 211 | Class | Project Discussion | Slides | Students |
- |
| 12/06/2023 | Akerman Hall 211 | Class | Project Discussion | Slides | Students |
- |
|
| 15 |
12/11/2023 | Akerman Hall 211 | Class | Project Presentation | - | Students |
- |
| 12/13/2023 | Akerman Hall 211 | Class | Project Presentation | - | Students |
- |
You should refer to this course site and our Piazza site for finding information about course meetings, assessments, and grades. We will use Piazza for all communications between students and the instructor. (I will add you to Piazza using your UMN email.) We use Piazza as it is a great place to promote interactions among students and the instructor can keep track of all course-related discussions in one place. You will be using Gradescope and GitHub to complete assessments.
You can find all the assessment tasks on the Assignments page of this Canvas site and on Gradescope. Please check this page at the end of each course meeting for updated information.
Final course grades will be calculated based on the following percentages:
| Percentage | Assessment Type | Submission Type |
| 10% | Participation | Individual |
| 15% | Paper Presentation |
Individual |
| 20% | Paper Critiques | Individual |
| 40% |
Project |
Team |
| 10% |
Project Presentation |
Team |
| 5% | Project Reviews | Individual |
Participation: In this course, attending lectures is mandatory. For execused absences, please contact the instructor on Piazza as soon as possible. The participation grade will be based on attendance and minor assignments related course logistics. At the end of most class meetings, you will need to complete a participation assessment on Gradescope. The assessment will be open for 48 hours. Participation assessments are individual.
Paper Critiques: You will need to write 10 paper critiques, nine of which will count toward your final paper critiques grade (the lowest graded critique will be discarded). Paper critique assessments are individual.
Paper Presentation: You will need to present a research paper. The paper will be selected from one of the top software engineering conferences. This assessment is individual.
Project: In this course, you will need to work on a research project. You will work in a team made by two students. For that reason, the project is a team assessment.
Project Presentation: You will present the results of your research project. You will work with your team on the presentation. For that reason, the project is a team assessment.
Project Reviews: You will need to write a project review for two to three projects carried out by other students in the course. This assessment is individual.
Exams: There is no midterm or final exam.
Late work is not accepted in this class. There are a few reasons for this policy. First, the assessment schedule follows a tight timeline and I would like to grade assessments as quickly as possible. Second, you will have ample time to complete the assessments.
Requests for items to be regraded must be made within seven calendar days of the marks being posted. Be aware, this means that students may not ask for an assignment from early in the term to be regraded after they receive their final grade. If a mistake has been made in recording a student's marks, please bring this to the attention of the instructor prior to the end of the term.
Final grades will be assigned based on the following scale. Grading for this course is on an absolute scale (i.e. no curve, no rounding up, etc.).
| Weighted Score (x) | Letter Grade | S/N |
| 94.0% ≤ x ≤ 100.0% | A | S |
| 90.0% ≤ x < 94.0% | A- | S |
| 87.0% ≤ x < 90.0% | B+ | S |
| 83.0% ≤ x < 87.0% | B | S |
| 80.0% ≤ x < 83.0% | B- | S |
| 77.0% ≤ x < 80.0% | C+ | S |
| 73.0% ≤ x < 77.0% | C | S |
| 70.0% ≤ x < 73.0% | C- | S |
| 65.0% ≤ x < 70.00 | D+ | N |
| 60.0% ≤ x < 65.0% | D | N |
| 0% ≤ x < 60.0% | F | N |
I also would like to share some of my thoughts on final grades. First and foremost, your grade isn't a judgment of who you are as a person. It is not an overarching statement about your fitness for work in this major or this field. It is not even necessarily a statement about how much of the course material you know or how hard you tried. It is a summary of the record of how you did on the required assessments for this course.
Second, if you mention to me that you think that your grade doesn't reflect your effort or your understanding, I want to let you know that I understand that. I want to let you know that you are so much more than that number or letter on a page. But if you ask me whether it is possible to change your grade, please understand that you are asking me to falsify the record of how you did on the required assessments for this course. I cannot do that. I can tell you that even if your grade is not what you would have hoped it would be, I still believe in you and in the dream behind that hope. I 100% believe that you can go on to be successful in this major and in the field throughout your life.
For more information about COVID-19 response measures, please visit this page.
This course does not have formal prerequisites. However, the course assumes knowledge of topics tought in advanced software engineering courses (e.g., software testing, software analysis, and software maintenance).
Software is present in many facets of our lives. It is in the things we use every day (e.g., smartphones, laptops, and cars) and it is also part of the infrastructure of our society (e.g., schools, hospitals, and airports). It is indeed not easy to think about a device, system, or organization that provides some complex functionality and does not rely on software. This situation also means that we are increasingly dependent on software and it is, therefore, vital to ensure that the software we use works as expected. This course provides in-depth knowledge on how to do so through automated software engineering techniques. Specifically, in the course, we will cover state-of-the-art testing and maintenance techniques and show how these techniques can automate tasks such as test input generation, fault localization, bug report analysis, and program repair.
In this course, you will:
Students should expect to spend an average of 9 hours a week on this course.
There is no required textbook. There are a few books that I suggest if you would like to refresh some of the background concepts chracterizing the course. The books are:
All work submitted for this course is required to be your original work or that of your team in the case of team work. You are expected to do your own thinking about how to solve an assessment. If you have any questions about whether discussing something with peers might go beyond what is permitted, then stop and ask the instructor on Piazza for clarification on the policy.
Scholastic dishonesty includes any deceptive means whereby a student attempts to gain an unfair advantage. Examples of scholastic dishonesty include violating the course policies outlined here, especially its “Academic Integrity” section; plagiarizing; cheating on assignments; or engaging in unauthorized collaboration on academic work, either with other students or via the internet. In order to be as clear as possible about your scholastic conduct responsibilities and how these relate specifically to the types of courses that we teach in the Department of Computer Science & Engineering, the faculty have prepared a CS&E Department Academic Conduct Policy. Our course will follow this policy, which stands alongside the broader Board of Regents Student Conduct Code.
Within the course, a student responsible for scholastic dishonesty can be given a penalty, including an "F" or "N" for the course. I am also required to report the incident to the Office for Student Conduct and Academic Integrity, and further disciplinary action may occur.
You are responsible for knowing and following the policies on scholastic conduct that are described in the syllabus and in the related documents discussed above (see especially the CS&E Department Academic Conduct Policy).
University policy is to provide, on a flexible and individualized basis, reasonable accommodations to students who have documented disability conditions (e.g., physical, learning, psychiatric, vision, hearing, or systemic) that may affect their ability to participate in course activities or to meet course requirements. Students with disabilities are encouraged to contact Disability Services and their instructors to discuss individual needs for accommodations. Disability Services, McNamara Alumni Center, Suite 180, 200 Oak Street, East Bank. Staff can be reached by calling (612) 626-1333 (voice or TTY).
As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating, and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce your ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus here.
In this course, we are committed to the University's equal access and opportunity policy. The University of Minnesota shall provide equal access to and opportunity in its programs, facilities, and employment without regard to race, color, creed, religion, national origin, gender, age, marital status, disability, public assistance status, veteran status, sexual orientation, gender identity, or gender expression.
In this course, we are committed to the University's Sexual Harassment, Sexual Assault, Stalking and Relationship Violence policy. The University of Minnesota is committed to taking prompt and effective steps intended to end sexual harassment, sexual assault, stalking, relationship violence, and related retaliation, prevent their recurrence, and, as appropriate, remedy their effects.
Zoom: We will use Zoom for a couple of classes. If you have concerns about your visibility on Zoom, please contact the instructor on Piazza for further information.
Websites: In this course, our use of technology will involve sharing students' names, UMN usernames, and/or coursework information to course-related websites (e.g., Gradescope). All web sites might be affected by security vulnerabilities and it could be possible for them to be the target of software attacks. If you have concerns about the visibility of your name, username, or other information, please contact the instructor on Piazza for further information. Rest assured that it is our priority to keep this information within the boundaries of these websites.
All students are expected to behave as scholars at a leading institute of technology. This includes not talking over each other during the meetings. Disruptive students will be warned and potentially dismissed from the meetings.
We reserve the right to make changes to the syllabus to accommodate for exceptional circumstances that are out of the course staff's control. We will announce any change if it needs to happen.