CSCI 8980 Automated Software Engineering
(Fall 2023)

Automated Software Engineering

 

General Information

  • Semester: Fall 2023
  • Credit hours: 3 Credits
  • Instructor: Mattia Fazzini

 

Course Schedule

Location

Lectures will take place in Akerman Hall 211.

Meeting Time

  • M,W 02:30 pm - 03:45 pm

Office Hours

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.

 

Topics

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
-

  

Course Logistics

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.

Quick Links

  • Quick Links:
    • Piazza

Assessment

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.

Grade Components

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 Policy

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.

Regrades/Grade Changes

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 Grade

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

Considerations on Final Grade

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.

   

COVID-19 Response

For more information about COVID-19 response measures, please visit this page.

 

Detailed Course Information

Prerequisites

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).

Course Topics

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.

Learning Outcomes

In this course, you will:

  • Gain understanding of some automated techniques in software engineering
  • Gain research experience in software engineering

Expected Effort and Participation

Students should expect to spend an average of 9 hours a week on this course.

Textbook

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:

 

 Tips for Doing Well in the Course

  • Embrace this opportunity: Many of us are in computer science because we find software development rewarding. This class is an invitation to become a better software engineer.
  • Keep pace with the class: Our class meetings will mix presentations with in-class discussions. This is the kind of course that relies upon participation rather than book learning. For this reason, it is highly reccomended that you suitably prepare for each class.
  • Give yourself a buffer on assignment deadlines​: One common occurrence in software engineering is that there are often unexpected delays. This class has rigid deadlines on many assessments, so stay on pace in course activities. Plan to get crucial work done ahead of time so if/when unexpected issues arise you have time to address them and still meet the deadline.

 

Academic Integrity

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 Conduct: Course, Department, and University Policies

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).

 

Additional Information

Disability Information

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).

Mental Health Information

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.

Equal Opportunity

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.

Sexual Harassment, Sexual Assault, Stalking and Relationship Violence

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.

 

Visibility on the Web

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.

Class Climate

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.

Exceptional Circumstances

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.