This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more. The course teaches the principles underlying these techniques as well as imparts hands-on experience with using and implementing tools based on these techniques.
Overview
Syllabus
- A/B Testing Fundamentals
- Understand the fundamentals of A/B testing, including selecting target and control units and variables and the duration of a test.
- Randomized Design Tests
- Select test and control variables and understand the importance of sample size. Design a randomized design A/B test and analyze the results.
- Matched Pair Design Tests
- Match test units to control units. Design a matched pair design A/B test and analyze the results.
- Matched Pair Practice
- Use trend and seasonality as control variables for a matched pair design A/B test.
Taught by
Patrick Nussbaumer