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 Dec 9, 2024
Monday 3pm-6pm.
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 deskmate, 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. The goal of in-class exercise to engage
in discussions and hands-on learning experiences.
Lectures |
Tools |
Reading |
|
Week 1 10/1 (Tue) 10/3 (Thu) |
Introduction to Software
Engineering Syllabus Code Search and Taint Analysis |
CodeQL SemGrep |
Interactive Code Search for Systematic
Changes (ICSE
2015) |
Week 2 10/8 (Tue) 10/10 (Thu) |
Testing Statement, Branch, and Path Coverage Testing Symbolic Execution Bounded Iteration, Infeasible Path, Test Generation |
Jacoco Jpf-symbc Hypothesis |
Code
Coverage White-Box Testing of Big Data Analytics with Complex User-Defined Functions (FSE 2019) |
Week 3 10/15 (Tue) 10/17 (Thu) |
Testing Regression Testing Mutation Testing Project Proposals |
Major AFL++ |
Mutation-based
Fuzzing Greybox Fuzzing |
Week 4 10/22 (Tue) 10/24 (Thu) |
Parsing / Grammar based
Fuzzing No class on 10/24 |
ANTLR Grammarinator |
Inputs from Hell (TSE
2020) Parsing Inputs Probablistic Grammar Fuzzing |
Week 5 10/29 (Tue) 10/31 (Thu) |
Fuzzing with Semantics Input Specification Langauges Custom Mutation Synthesis Project Meetings |
ISLA SynthFuzz |
Fuzzing with Custom Mutation Synthesis
(ICSE
2025) |
Week 6 11/5 (Tue) 11/7 (Thu) |
Hoare Logic Weakest Precondition, Hoare Triple, Loop Invariant |
CVC5 Infer SpotBugs |
|
Week 7 11/12 (Tue) 11/14 (Thu) |
Debugging Delta debugging Project Midterm Demo |
Perses Picireny |
Simplifying and Isolating
Failure-Inducing Inputs (TSE
2002) |
Week 8 11/19 (Tue) 11/21 (Thu) |
Design Patterns |
Klee Comby |
|
Week 9 11/26 (Mon) 11/28 (Wed) |
Thanksgiving No class |
||
Week 10 12/3 (Tue) 12/5 (Thu) |
Project Presentations |
|
|
Final Week |
Exam Dec 9, 2024 Monday 3pm-6pm |
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.