There will a single final exam. Exam is in person, closed
book. The instructor is unable to accomodate a different
date, other than the final exam date on Tuesday Dec 9,
2024 11:30am-2:30pm.
Each team should submit a written report (max 10 pages)
to the BruinLearn system. Each team should consist of 5 to
6 people. You may include an appendix beyond 10 pages, but
your paper must be understandable without it. Submissions
should be in the ACM
format. In Week 2, I will release a few sample
project ideas to guide you with the process of choosing a
project topic.
Your report should be structured like a conference paper,
meaning that your report should contain:
How Does It Work?
1) Think. The teacher provokes students' thinking
with a question or prompt or observation. The students should
take a few moments (probably not minutes) just to THINK about
the question.
2) Pair. Using designated partners (such as with Clock
Buddies), nearby neighbors, or a desk-mate, students PAIR up
to talk about the answer each came up with. They compare their
mental or written notes and identify the answers they think
are best, most convincing, or most unique.
3) Share. After students talk in pairs for a few moments
(again, usually not minutes), the teacher calls for pairs to
SHARE their thinking with the rest of the class. She can do
this by going around in round-robin fashion, calling on each
pair; or she can take answers as they are called out (or as
hands are raised). Often, the teacher or a designated helper
will record these responses on the board or on the overhead
In-class exercise will be graded based on Satisfactory and
Unsatisfactory basis. It will be in the format of short
quizzes, questionnaires, survey, etc. You can miss up to 3
exercises. The goal of in-class exercise to engage in
discussions and hands-on learning experiences.
Lectures |
Tools |
Reading |
|
Week 1 9/30 (Tue) 10/2 (Thu) |
Introduction to Software
Engineering Syllabus Program Differencing and Program Representation |
GumTree |
JDiff: a differencing technique and
tool for objected-oriented programs (ASE
2004) Fine-grained and Accurate Source Code (ASE 2014) |
Week 2 10/7 (Tue) 10/9 (Thu) |
Code Search DSL for Code Search, Interactive Code Search Automation of Similar Transformation Project Team Formation & Proposal (10/9) |
Comby SemGrep CodeQL |
Scaling Code Pattern Inference with
Interactive What-If Analysis (ICSE
2024) Coccinell: 10 Years of Automated Evolution in the Linux Kernel (ATC 2018) |
Week 3 10/14 (Tue) 10/16 (Thu) |
Testing and Fuzzing (Dr. Seongmin Lee) Control Flow Graph, Coverage, Assertions, Sanitizer Greybox Fuzzing, Mutational Fuzzing Seed Prioritization, Power Scheduling |
AFL++ JQF |
Mutation-based
Fuzzing Greybox Fuzzing Coverage-based Greybox Fuzzing as Markov Chain (TSE 2018) |
Week 4 10/21 (Tue) 10/23 (Thu) |
Grammar-based Testing Parsing, Probablistic Grammar Fuzzing Symbolic Execution Path Conditions |
Major Hypothesis Grammarinator |
Inputs from Hell (TSE
2020) Parsing Inputs Probablistic Grammar Fuzzing White-box Testing of Big Data Analytics with Complex User-Defined Functions (FSE 2019) |
Week 5 10/28 (Tue) 10/30 (Thu) |
Fuzzing with Semantics Semantic Constraints Project Midterm Demo on 10/30 (Thu) |
Fandango |
Fandango: Evolving Language-based
testing (ISSTA
2025) |
Week 6 11/4 (Tue) 11/6 (Thu) |
Statistical Software Testing (Dr.
Seongmin Lee) Residual Risk Estimation Statistical Reachability Analysis |
Statistical Reachability Analysis (FSE
2023) |
|
Week 7 11/11 (Tue) 11/13 (Thu) |
Veterans Day No class on 11/11
(Tue) Debugging |
Perses Picireny |
Simplifying and Isolating
Failure-Inducing Inputs (TSE
2002) |
Week 8 11/18 (Tue) 11/20 (Thu) |
Stateful Fuzzing Hoare Logic Weakest Precondtion |
Schemathesis Evomaster |
AFLNet: A Greybox Fuzzer for Network
Protocols Restful API Automated Test Case Generation with EvoMaster (TOSEM 2019) |
Week 9 11/25 (Tue) 11/27 (Thu) |
Hoare Logic Loop Invariant Thanksgiving No class on 11/27 (Thu) |
Infer Klee |
|
Week 10 12/2 (Tue) 12/4 (Thu) |
Project Presentations |
|
|
Final Week |
Exam Dec 9, 2025 Tuesday 11:30 AM - 2:30 PM |
Each member of the university is expected to uphold
these values through integrity, honesty, trust, fairness, and
respect toward peers and community. In your first week, you
must read and sign UCLA's Academic
Integrity Statement.