Software engineering is a branch of computer science that uses methods and principles of design, engineering and testing to create and maintain large and sophisticated software products. Modern software is often composed from distributed components, communicating over the Internet, requiring sophisticated designs to ensure they operate efficiently. Software engineers have a variety of concerns, including customer requirements, user interfaces, management and team dynamics, maintenance, reliability, and budgets. Software developers are among the most highly paid and highly sought-after employees in today’s workforce.

About the Major

The Software Engineering Emphasis starts with the fundamentals of programming, data structures, algorithms, software design, mathematics, and statistics. Students take a series of lab courses concurrently with the core to develop experience with common tools used in the field. The emphasis includes additional required courses in software design, testing, and databases. Students can take a variety of electives in subfields of computer science.

All students in this major complete a capstone experience working with a small team on an industry-sponsored project. This offers students an opportunity to demonstrate proficiency as software engineers on a significant project, while also being able to receive mentoring from an industry professional.

See this page for details on the software engineering capstone.

Careers in Software Engineering

The day-to-day tasks of a software engineer are varied and diverse. Some of the tasks that such professionals perform include:

  • Creating Software Plans and Designs
  • Working and communicating with large groups of people
  • Creating new software products
  • Developing new software features for existing products
  • Upgrading systems to ensure continued and future compatibility
  • Working with very large code bases
  • Integrating smaller pieces of software into larger and more complex systems

Not all software engineers focus on the same responsibilities. Each engineer functions as a specialized part of a larger team that works together to accomplish the goals of the organization. Some of the roles that software engineers perform are:

  • Programmer/Software Engineer
  • Quality Assurance Engineer
  • UI/UX Designer
  • Software Architect
  • Manager
  • Software Engineering Director
  • VP of Technology
  • Chief Technology Officer (CTO)

Software engineers are among the best paid professionals.


Thanks to the challenging and rewarding nature of the work, software developer positions are ranked #1 by the 2019 US News and World Report in several categories:

  • #1 in 100 Best Jobs List
  • #1 in Best Stem Jobs
  • #1 in Best Technology Jobs


Requirements can change from year to year. When you declare a major, you follow the requirements that were in force that year. You can see an advisor to switch to the current requirements if desired.