Software engineering is concerned with theories, methods and tools for professional software development. It aims to introduce software engineering and explain its importance, key questions, and ethical and professional issues. Topics covered include FAQs about software engineering, professional responsibility, and a code of ethics.