Logistics:
Course Overview:
Building secure and reliable software systems is essential as modern society heavily relies on software for critical functions and daily operations. Formal reasoning provides a rigorous foundation for enhancing software reliability and security, while cutting-edge research leverages machine learning to improve the scalability and efficiency of these formal methods. This research-oriented course lies at the intersection of software engineering, formal methods, and machine learning. In general, this course contains two parts. In the first part, the course introduces fundamental concepts in software verification (including popular tools and techniques), formal reasoning (e.g., constraint solving), and machine learning (e.g., Graph Neural Networks, LLM, Reinforcement Learning). The second part focuses on interdisciplinary research, where students will read papers and undertake projects integrating these fields. External speakers may also be invited to give talks on relevant topics.
Prerequisites:
Graduate standing or permission from instructor. The students are expected to have basic knowledge of data structures and algorithms, and to have considerable programming experience.
Grading:
Thanks Yu Meng for his suggestions in the grading instructions.
Late Submission Policy:
Assignments are expected to be submitted on time. Late submissions will be penalized as follows. Note that this late policy will not be applied to the presentation slides.
Extensions and Exceptions: Extensions will only be granted in exceptional circumstances, such as medical emergencies or other unforeseen, serious situations. If you need an extension, please contact me as soon as possible and provide appropriate documentation to support your request.
Grace Period: Each student is allowed one "grace period" per semester, where they can submit an assignment up to 24 hours late without penalty. This grace period does not require prior approval but must be requested within the first 24 hours after the deadline.
Schedule:
Note: This schedule is tentative and may be adjusted as the semester progresses.
Date | Topic | Contents | Slides |
---|---|---|---|
8/28, Wed | Introduction | Logistics, Overview of the course | overview |
9/2, Mon | No lecture, Travel | N/A | |
Fundamental Knowledge in Formal Methods and Software Engineering | |||
9/4, Wed | Symbolic Execution | Guest Lecture:
Presenter: Yang Hu (Applied Scientist in AWS, PhD in UT Austin) Readings:
Quiz before the lecture |
symbolic execution |
9/9, Mon | SAT Solving I |
Readings:
Quiz before the lecture |
sat |
9/11, Wed | SAT Solving II and SMT Solving |
Part 1: Part 2: SMT introduction Readings:
Quiz before the lecture |
|
9/16, Mon | Software Modeling and Verification |
Readings:
Quiz before the lecture |
|
9/18, Wed | Software Testing | Guest Lecture:
Presenter: Pengyu Nie (Assistant Professor at University of Waterloo) Readings: Quiz before the lecture |
testing |
Fundamental Knowledge in Machine Learning (especially for Software Engineering) | |||
9/23, Mon | Neural Networks |
Guest Lecture:
Presenter: Mingtian Tan (TA, PhD at UVA) Readings: |
nn_models |
9/25, Wed | Deep Learning |
Part 1:
Guest Lecture:
Supervised and Unsupervised Learning Introduction Presenter: Mingtian Tan (TA, PhD at UVA) Part 2: GNN and Reinforcement Learning Introduction Readings: |
|
9/30, Mon | Large Language Model | Guest Lecture:
Presenter: Yuxiang Wei (PhD at UIUC) Readings: |
llm4code |
Research in the intersection of Machine Learning, Formal Methods and Software Engineering | |||
10/2, Wed | ML for SAT Solving | rishov_slides | |
10/7, Mon | Testing for ML | ||
10/9, Wed | Project Proposal Presentation | Schedule | |
10/14, Mon | No class, Fall Reading Days | N/A | |
10/16, Wed | LLM for Software Testing I | ||
10/21, Mon | LLM for Software Testing II | ||
10/23, Wed | LLM for Fuzzing | ||
10/28, Mon | LLM for Software Verification I | ||
10/30, Wed | LLM for Software Verification II | ||
11/4, Mon | LLM Safety | ||
11/6, Wed | LLM for Code Generation I | ||
11/11, Mon | LLM for Code Generation II | ||
11/13, Wed | Improving LLM Generated Code Quality | ||
11/18, Mon | LLM for Program Repair | ||
11/20, Wed | Fast and Slow Thinking Systems | ||
11/25, Mon | Final Project Presentation | N/A | |
11/27, Wed | No lecture, Thanksgiving | N/A | |
12/2, Mon | Final Project Presentation | N/A | |
12/9, Wed | Project Final Report Due | N/A |
Students with disabilities or learning needs:
It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at cmacmasters@virginia.edu to schedule an appointment. For general questions please visit the SDAC website. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.
Religious accommodations:
It is the University's long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
Students who wish to request academic accommodation for a religious observance should submit their request to me by email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
Harassment, Discrimination, and Interpersonal Violence:
IThe University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available.
The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, or veteran status. UVA policy also prohibits retaliation for reporting such behavior.
If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It or contact EOCR, the office of Equal Opportunity and Civil Rights.
If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (“CAPS”) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).
As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and by federal law to report certain kinds of conduct that you report to me to the University's Title IX Coordinator. The Title IX Coordinator's job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.
Support for your career development:
Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an external/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. I wish to encourage and support you in activities related to your career development. To that end, please notify me by email as far in advance as possible to arrange for appropriate accommodations.
Student support team:
You have many resources available to you when you experience academic or personal stresses. In addition to your professor, the School of Engineering and Applied Science has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!
Learning:
Lisa Lampe, Assistant Dean for Undergraduate Affairs
Georgina Nembhard, Director of Student Success
Courtney MacMasters, Accessibility Specialist
Free tutoring is available for most classes.
Health and Wellbeing:
Kelly Garrett, Assistant Dean of Students, Student Safety and Support
Elizabeth Ramirez-Weaver, CAPS counselor*
Katie Fowler, CAPS counselor*
*You may schedule time with the CAPS counselors through Student Health. When scheduling, be sure to specify that you are an Engineering student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.
Community and Identity:
The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.