Teaching
Undergraduate and graduate courses: algorithm design and analysis, software testing techniques and methods, and advanced software engineering.
Courses
- 2014 — 2025
Algorithm Design and Analysis Undergraduate
Divide and conquer, dynamic programming, greedy algorithms, graph algorithms, complexity analysis; course page →
- 2015 — 2025
Algorithm Design and Analysis Graduate
Theory and proofs of algorithm design, modelling and complexity analysis for research
- 2011 — 2021
Software Testing Techniques Undergraduate
Test case design, black-box and white-box testing, unit and automated testing; course page →
- 2016 — 2026
Software Testing Techniques and Methods Graduate
Combinatorial testing, regression testing, defect prediction and intelligent testing; course page →
- 2016 · 2025 · 2026
Advanced Software Engineering Graduate
Software process, requirements and architecture, agile and DevOps, intelligent software engineering
- 2011 — 2013
Advanced Programming Language (C++) Undergraduate
C++ fundamentals, object orientation, STL and course projects
- 2012
Compiler Principles Undergraduate
Lexical and syntax analysis, semantic analysis, intermediate code generation
Course materials
Algorithm design
- Course page
- Textbooks, slides and exercises
- Recommended MOOCs and online judges
Software testing
- Undergraduate course
- Graduate course
- Projects and tool chain
Research training
- Resources and datasets
- Recommended textbooks
- Group handbook (Chinese)