The Software engineering consists of the principled application of repeatable processes and methods for the design, development, maintenance, and evolution of software systems. The field is distinguished from programming and computer science by its emphasis on practical techniques supporting the team-based development of large-scale and long-lived software systems that are required to operate reliably and within specified functional and non-functional constraints.
Students in the program will be provided with skills in software engineering processes, including requirements analysis, software design and architecture, software testing, multiple programming languages and libraries, cloud computing technologies, project management, and foundational areas such as data structures and algorithmic complexity. Elective selections will permit students to specialize in other application areas, including human-computer interaction, socio-technical computing, computer networks, high-performance computing, and cybersecurity. A capstone project will allow students to exercise the full breadth of their skillset by working with clients on real-world projects.