CS/SE 7301.501 - Software Analysis & Security
Fall 2020Course Information
Location:
MS Teams
Time: Monday & Wednesday 05:30PM - 06:45PM
Time: Monday & Wednesday 05:30PM - 06:45PM
Course Style
This course is taught in a seminar-course style. Each student will be expected to:
- Read and present research papers from the reading list (25 minutes presentation + 10-20 minutes Q&A) (30%)
- Programing Assignments (15%)
- Online Discussion & Class Participation (15%)
- Perform an individual or group research project (40%)
Textbooks
We do not have textbooks but you can refering to following books for background knowledge.
Static Program Analysis
The Fuzzing Book
The Art and Science of Analyzing Software Data (using UTD email to access)
Dive into Deep Learning
Building Intelligent Systems: A Guide to Machine Learning Engineering (using UTD email to access)
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow (using UTD email to access)
Course Project Topic and Grading Policy
Topic: Propose your own projects (Feel free to talk to the instructor about the proposed topic). A list of topics will be provided in the class.
Grading Policy:
- Proposal (5%)
- Midterm Report (5%)
- Midterm Demo (10%)
- Final Report (20%)
- Final Demo (10%)
- Project Document (10%)
- Project Website, README, Example subjects
- Code Evaluation (10%)
- Readability, Reusability
- Effectiveness Evaluation (30%)
- Evaluate based on the metrics proposed in the proposal.
- Level of difficulty will be taken into consideration (e.g., achieving or exceeding the state of the art).
Schedule and Lecture Slides
Week | Dates | Topic |
1.1 | Aug. 24th | Course Overview [Slides] [Video] |
1.2 | Aug. 26th | Software Analysis Foundation [Slides] [Reading1] [Reading2] |
2.1 | Aug. 31st | Testing [Slides] [Reading1] [Reading2] |
3.1 | Machine Learning Basics[Slides] [Video] [Reading] | |
3.2 | Automated Testing[Slides] [Reading1] [Reading2] | |
4.1 | Automated Testing[Slides] [Reading1] [Reading2] | |
4.2 | Symbolic Execution [Slides] [Reading1] [Reading2] | |
5.1 | ML for Code Analysis [Presentation1] [Reading1] [Reading2] | |
5.2 | Analysis for ML Software [Presentation1] [Presentation2] [Reading] | |
6.1 | Symbolic Execution (cont.) [Slides] [Presentation1] [Reading1] [Reading2] | |
6.2 | Embedding [Slides] [Reading] | |
7.1 | Adversarial Machine Learning-Evasion Attacks [Slides] [Presentation1] | |
7.2 | Adversarial Machine Learning-Other Attacks [Slides] [Reading] | |
8.1 | Privacy of Machine Learning [Slides] [Reading] | |
8.2 | Fairness of Machine Learning [Slides] [Reading] | |
9.1 | Testing of Machine Learning Models [Slides] [Reading] | |
9.2 | Debugging of Machine Learning Models [Slides] [Reading] | |
10.1 | Detecting Issues in Deep Learning Applications [Slides] [Reading] | |
10.2 | Trending Security Topics [Slides] [Reading] | |
11.1 | Project Presentation [Slides] [Reading] |