||This course introduces the key software engineering techniques and practices that are essential in the software development process, including (1) software design, (2) security software programming, and (3) software quality and testing. Software design mainly includes the object-oriented design principles, refactoring, and design pattern. Security software programming includes the development life cycle of security software, security programming standards, and security programming practices. Software quality and testing includes the DevOps process, version control, software testing, and software quality assurance. The course also focuses on the hands-on exercises and the uses of various open source software tools for applying the software development techniques and practices.