Past classroom teaching
-
Software Design and Modeling
Design principles; design approaches; use of architectures and frameworks; applying design patterns; documentation standards; quality analysis and security issues.
-
Data Modeling
Data design and modeling for transactional and analytical systems; the use of relational and object databases; database security issues; database performance issues; and data access.
-
Software Testing
Test levels (unit, integration and system); test objectives testing techniques, measures and process (planning, test case generation and defect tracking)
-
Web Application Testing
Web application testing with an emphasis on modern tools and approaches; unit, system, integration testing; performance and load testing; security testing; cross-browser issues; accessibility and usability.
-
Data Structures
Data structures including binary search trees, priority queues, hash tables, and heaps. Recursion, sorting, and run-time analysis using big-O notation.
-
Object-Oriented Concepts
Object-oriented principles including abstraction, encapsulation, and support for re-use. Object-oriented design essentials: contractual design, containment, composition, inheritance, overloading and polymorphism. Design variants, and their short vs long-term impact, emphasized.
-
Software Architecture
Fundamentals of software architecture design, modeling, and analysis. Impact of architectural design choices on quality. Architectural styles, architectural evolution, domain specific software engineering, and software product families.
-
Princples of Software Engineering
Requirements and specifications, architecture, design, object-oriented software engineering, software testing and quality assurance, maintenance.
-
Invited Talks
Lectures on engineering discipline, software testing, and code review at National Yang Ming Chiao Tung University and National Taiwan University.