This document discusses the synergy between artificial intelligence and software engineering. It begins with an overview of intelligent software engineering and how AI techniques can be applied to software engineering problems. Specific examples discussed include using dynamic symbolic execution for automated test generation for binary code, .NET code, and mobile app code. The document also discusses using machine learning for software analytics, testing, and natural language interfacing for IDEs. Open challenges in the field of intelligent software engineering are mentioned at the end.