Instructors: Xiangyu Zhang
Office: LWSN 3154K
Meeting Place: BRNG B232
Meeting Times: 11:30AM-12:45PM, MW
Office Hours: 1:00-2:00PM, MW
Schedule and Lecture Notes
Mordern machines become so powerful that they can easily satisfy users' requirements
Besides making software running fast, developers pay more and more
issues such as robustnesss, quality, maintenance, data/code privacy, and
In this course students will study recent innovations in the development
of software based solutions to the reliability related problems.
More specifically, this course covers:
- Fault localization. The techniques include program slicing, static
program analysis, data mining, delta debugging, and statistical
debugging. New directions such as failure oblivious computing, and debugging
multi-threaded programs will also be explored.
- Security. The focus will be on how to apply program analysis to
addressing security related problems. The techniques include information
flow, intrusion detection, malware detection, and sql injection
- Testing. The techniques include test generation,
and the recent advance of combining testing with model checking.
- Hotch-potch. Again, the focus is on how program analysis can be applied to
solving miscellaneous interesting problems such as data uncertainty.
Relevant Conferences and Journals in
Software Engineering, Programming Languages and Compilers
& Operating Systems.
- FSE, ESEC-FSE - ACM SIGSOFT Symposium on Foundations of Software Engineering
- PLDI - ACM SIGPLAN Conference on Programming Language Design and Implementation.
- ASPLOS - International conference on Architectural Support for Programming Languages and operating Systems.
- ICSE - SIGSOFT/IEEE International Conference on Software Engineering.
- ASE - IEEE International Conference on Automated Software Engineering.
- ISSTA - ACM SIGSOFT International Symposium on Software Testing and Analysis.
- ICSM - IEEE International Conference on Software Maintenance.
- POPL - ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.
- AADEBUG - International Symposium on Automated and Analysis-Driven Debugging.
- TACAS - International Conference on Tools and Algorithms for Construction and
Analysis of Systems.
- TSE - IEEE Transactions on Software Engineering.
- JASE - Journal of Automated Software Engineering.
- TOSEM - ACM Transactions on Software Engineering and Methodology.
- TOPLAS - ACM Transactions on Programming Languages and Systems.
- TACO - ACM Transactions on Architecture and Code Optimization.
- MICRO - IEEE/ACM International Symposium on Microarchitecture.
- DSN - International Conference on Dependable Systems and Networks.
- OSDI - USENIX Symposium on Operating Systems Design and Implementation.
- SOSP - ACM Symposium on Operating Systems Principles.
- USENIX - USENIX Annual Technical Conference.
- Two paper presentations (40%).
- Project report (35%).
- Project presentation (15%).
- Attendance and class participation (10%).