Learning Outcomes


At the completion of this class, a student should be aware of the fundamental challenges associated with software engineering. Furthermore, students should be comfortable with a wide array of concepts, methodologies, techniques, and tools that they apply to the problem of developing large software systems. A successful student will emerge with more than an understanding of the tools (e.g., text editors, compilers, linters, debuggers, automated testing frameworks, integrated development environments, and version control systems) that a software engineer uses. A student should also have an understanding of the software engineering lifecycle and the activities that take place in each of its phases. Finally, a student should have an understanding of some of the current research and the open questions in the field of software engineering. After completing this class, a student should be equipped for further graduate study in the fields of computer science and software engineering. The student should also be able to participate in real-world software development projects by adeptly using cutting-edge software tools and working with a team of diverse developers.