CSCE 990: Ensuring Software Dependability
Time: TR 2–3:15 p.m. (WEB CONF)
Instructor: Nguyen, ThanhVu
This class focuses on testing and ensuring the quality and security of software applications in several emerging and challenging domains including IoT, ML (DNN’s), and Networking. This course consists of 2 parts
1. Fundamental Techniques: we will cover practical software testing and verification techniques such as Symbolic Execution, Abstract Interpretation, and Invariant Generation. We also look at tools implementing these techniques and being used in the industry to detect real-world problems (e.g., software from NASA, Microsoft, Google, and Facebook).
2. Applications: we will look at how software analysis, testing, and verification techniques and tools are adapted and applied to problems in several emerging domains such as IoT (e.g., finding misconfiguration and security issues in IoT smart home connection), ML (e.g., verifying and testing Deep Neural Networks), Networking (e.g., analyzing networking protocols).
The class consists of reading research papers and a final project, where you apply testing and verification techniques to a problem you are interested in(e.g., in the past, many students apply learned techniques to their own research projects). The course is under the Applications track. Undergraduate students, especially those who are into software engineering or research, are also welcome to attend for credits.