learning objectives: * explain the basics of symbolic execution * use KLEE to test simple programs activities: * Watch these Software Security Lectures from University of Maryland on Coursera: - Introducing Symbolic Execution [10:52] + https://www.coursera.org/lecture/software-security/introducing-symbolic-execution-agCNF - Symbolic Execution: A Little History [3:05] + https://www.coursera.org/lecture/software-security/symbolic-execution-a-little-history-vnzFY - Basic Symbolic Execution [14:17] + https://www.coursera.org/lecture/software-security/basic-symbolic-execution-U9R38 - Symbolic Execution as Search and the Rise of Solvers [12:45] + https://www.coursera.org/lecture/software-security/symbolic-execution-as-search-and-the-rise-of-solvers-ruN1n - Symbolic Execution Systems [8:26] + https://www.coursera.org/lecture/software-security/symbolic-execution-systems-XRwQx * KLEE Tutorials - http://faculty.cs.tamu.edu/ritchey/courses/csce489/spring20/homework/klee_activity.txt * Suggested: MIT OpenCourseWare 6.858 Session 10: Symbolic Execution [1:22:15] https://www.youtube.com/watch?v=yRVZPvHYHzw