| Description: | Modern software systems—from web services and mobile platforms to distributed microservices and AI-enabled applications—demand rigorous methods to ensure security, reliability, privacy, and performance. This seminar explores the cutting-edge foundations, techniques, and emerging research directions in software analysis: static, dynamic, hybrid, and AI-augmented approaches. Students will engage deeply with seminal papers and state-of-the-art research. The course is intentionally broad: we study not only program analysis but also system-level, cross-language, and AI-integrated software analysis spanning the full lifecycle of software artifacts. Special emphasis is given to security and privacy applications, but we also investigate analysis for functional correctness, robustness, and performance optimization. Students will learn both classical analysis techniques and how modern advancements (e.g., LLM-based analysis, agentic AI systems, hybrid symbolic-neural analysis, fuzzing with AI guidance) are reshaping software analysis research and practice. =========== Learning Objectives ============== By the end of the course, students will: - Understand foundational and advanced techniques in software analysis, including their theoretical underpinnings and practical tradeoffs. - Analyze and critique research papers, with emphasis on rigor, novelty, and empirical evaluation. - Gain hands-on experience with modern analysis tools (e.g., static analyzers, fuzzers, symbolic executors, LLM-based analyzers). - Connect analysis techniques to impactful applications in software security, privacy, reliability, and performance engineering. - Develop and present a mini research project exploring an emerging direction in the field. =========== Main Topics & Modules =========== Below is a representative outline (topics may be adjusted to align with student interest and cutting-edge developments): 1. Foundations of Software and Program Analysis 2. Modern Software Analysis for Security & Privacy 3. Runtime Support and Techniques 4. AI-Enhanced and Data-Driven Software Analysis 5. Software Analysis for Performance, Reliability, and Testing =========== Format & Expectations =========== This is a research-oriented seminar, emphasizing: 1. paper presentation & discussion. Each student presents several research papers, leading discussion and critique. Papers will include classics as well as the most recent advances. 2. Mini-Project (Recommended for PhD Students) Students may explore new ideas, replicate a recent result, or build a proof-of-concept analysis tool. Projects can be aligned with ongoing research for publication-quality results. 3. Participation Active participation in discussions is required. Students are expected to read each paper carefully and come prepared with insights and questions. ******************** Why Take This Course? ******************** - Front-line relevance: Software analysis is central to modern security, privacy, reliability, and performance engineering—industries are hungry for these skills. - Research value: The seminar reflects the latest research trends, preparing students for top-tier conference publications and dissertation topics. - Cutting-edge content: We cover both foundational principles and emerging AI-driven techniques reshaping program analysis today. - Hands-on exposure: Students learn real tools used in academia and industry: fuzzers, symbolic executors, static analyzers, LLM-based agents, etc. - Interdisciplinary impact: Skills learned here benefit research in software engineering, cybersecurity, systems, and AI. This seminar is aimed at students who want to deeply understand how modern software is analyzed—and how software analysis is evolving with the rise of AI. |