This course studies the best ways to design, build, maintain and evaluate software systems. It uses many of the technical aspects of computer science, especially programming, and aims to develop the professional attitudes, interpersonal and technical skills you will need in the software engineering industry.