Software engineering ethics, software processes, project planning, requirement engineering, agile methods, system modeling, architectural design, testing, security, resilience, distributed software engineering, consideration of tradeoffs, and impact of software solutions.