Software engineers analyze and solve problems through scientific methods. They typically choose to develop and apply their skills in computer applications, computer systems, or systems development and are responsible for designing, maintaining, and evaluating software products and programs.

The demand for software developers with a background in software engineering is positive, with a projected job growth rate of 24% between 2016 and 2026. Much of the growth in software engineering jobs is happening across the United States, and particularly along the coasts and in states like Colorado and Illinois. Industries including healthcare, public relations, and finance are seeking qualified software engineers and developers capable of creating products that solve everyday problems. In 2017, the average national wage for a software developer was $111,780.

Should I Get a Master's in Software Engineering?

Master's programs in software engineering may be a worthwhile investment if you're looking to hone your expertise and better understand the holistic design, development, and management processes of software applications and systems. Software engineers learn first how to identify and analyze user and client needs, and then the skills necessary to implement or create software-based solutions.

Most graduate programs require that aspiring students have a bachelor's degree in computer science or a related domain, and at least a year's worth of work experience in the software development or engineering field. Many programs cater to undergraduates who want to move straight into an accredited engineering program. Full-time professionals looking to boost their credentials may find web-based or hybrid programs appealing, while those transitioning from undergraduate to graduate school might prefer an on-campus program in their home state or preferred location. If you have minimal experience in computer science and are looking to make a career transition, many colleges offer foundational courses in topics like C++ or Java programming. You can take these courses individually before deciding on a career in software engineering.

Master's degrees in software engineering provide students with many benefits, including networking opportunities. If you're looking for more experience or new job opportunities, most schools offer job placement assistance and internships through their career services departments. In a field where many jobs are growing in demand, having a master's degree can increase your competitiveness and set you apart from other candidates.

What Can I Do With a Master's in Software Engineering?

Software engineers focus on the design and development of many different kinds of software, including operating systems and network control systems. The foundation of their work starts with an understanding of user needs, followed by design and implementation of software or application solutions.

Software engineers must commit to a lifetime of learning, since technology changes quickly by nature, and client and employer demands are constantly evolving. Engineers must understand software, and also be experts in computer science, knowing the function and limits of the hardware supporting their systems. A master's in software engineering can lead to several lucrative career paths.

Software Developer

Software developers create software applications that allow businesses and consumers to effectively use computers and mobile devices; many developers also create the computer systems that control integrated networks. Developers have strong programming skills, and at least a bachelor's degree in computer science.

Median Annual Salary: $103,560

Projected Growth Rate: 24%

Computer and Information Research Scientist

Computer and information research scientists investigate and find innovation technology solutions to computing challenges in business, government, science, healthcare, and other fields. This fast-growing position typically requires a master's degree in software engineering or a related domain.

Median Annual Salary: $114,520

Projected Growth Rate: 19%

Computer and Information Systems Manager

Computer and information systems managers, also frequently called IT project managers, help assess the technology needs and goals of an organization or particular department. They may then manage a team of IT assistants responsible for implementing a chosen computer system. A bachelor's degree is required, though many IT systems managers also have a master's degree and some related work experience.

Median Annual Salary: $139,220

Projected Growth Rate: 12%

Computer Network Architect

A computer network architect designs and constructs the data communication networks, like Intranets and local area networks, that connect people within a business or organization. A bachelor's degree with some work experience in the field are typical requirements for a network architect.

Median Annual Salary: $104,650

Projected Growth Rate: 6%

Information Security Analyst

Information security analysts plan and put in place security measures for organizational computer systems and networks. Earning a master's degree with a concentration in cyber security can make you a competitive candidate in what is one of the fastest growing technology jobs in the U.S.

Median Annual Salary: $95,510

Projected Growth Rate: 28%

How to Choose a Master's in Software Engineering Program

A master's in software engineering typically requires students to complete at least 30 credit-hours, and an average of 10 courses. Most students work part- or full-time while enrolled in their program, and can complete all program requirements in two years or less.

Total software engineering program costs vary widely depending on the school and program, ranging from $34,000 to more than $100,000. Part- or full-time attendance, residency status, and financial need all affect the total cost of a software engineering master's program.

Master's program costs can also vary depending on whether the program is online or on-campus. Each option presents pros and cons, depending on your life status and goals. Full-time professionals may find online programs more convenient, while graduate students wanting to relocate and explore a completely new career option may benefit from attending an on-campus program. Some hybrid programs require students to attend at least one semester, or an on-campus residency.

Prospective students should also consider degree completion requirements. Many software engineering programs require you to complete a master's thesis, though a few may offer the option of a final report or capstone project. Some software engineering programs provide a choice of specialization, such as project management or cybersecurity. Choosing a concentration may be a good option if you're interested in pursuing a specific career path and want to build the necessary credentials to do so.

Programmatic Accreditation for Master's in Software Engineering Programs

Programmatic or specialized accreditation indicates that a specific post-secondary program has been evaluated and meets a high level of quality and professional standards, as set by the accrediting organization. The Accreditation Board for Engineering and Technology (ABET) is the leading nonprofit accrediting organization for undergraduate and graduate programs in computer science and engineering, with industry standards recognized by professional engineers and the Council for Higher Education Accreditation.

There are several reasons to choose a master's degree with programmatic accreditation. When you attend an ABET-accredited program, you have assurance that the curriculum aligns with professional engineering standards and expectations, and that the program's faculty is committed to continuous improvement toward optimizing student outcomes.

Graduating from a programmatically accredited program keeps you competitive, as many software-development and Fortune 500 companies may look for evidence of ABET accreditation on your resume. Programmatic accreditation is also a typical requirement for professional licensure and eligibility for federal loans, scholarships, and grants.

Master's in Software Engineering Program Admissions

Both online and on-campus programs for a master's degree in software engineering have similar application requirements, with a few exceptions. Prepare to provide evidence of a bachelor's degree, along with transcripts, letters of recommendation, and potentially a professional resume demonstrating related work experience. Some graduate schools may also require GRE scores.

As a general rule of thumb, apply to at least five schools. Your choices should include a mix of programs: a few you're confident will accept you, plus one or two "reach" schools that present more of a challenge.

When choosing a program, consider how quickly you need to finish it. If you need to earn qualifications as soon as possible to enter the workforce or change jobs, a self-paced program or accelerated graduate certificate may be right for you. On the other hand, if you're seeking a degree to support a long-term career and you have some flexibility in finishing it across two or more years, a traditional master's program may suit you best. Some programs place time limits on how long students can take before completing their degrees, so keep an eye out for any such policies.


  • Bachelor's Degree: A bachelor's degree in computer science, software engineering, or a related field is usually required for a graduate-level degree in software engineering. Students without this background may be able to complete basic graduate courses, like software development, to qualify for admission.
  • Professional Experience: Most master's programs accept students with bachelor's degrees and minimal to no career experience. Some programs prefer students to have at least one year of professional experience in a computer science-related field.
  • Minimum GPA: The typical minimum GPA for admission is a 3.0 in all upper-graduate coursework, or a cumulative GPA of 2.5 for all four years. Some programs have higher GPA standards, while others consider GPA only a small part of an application.

Admission Materials

  • Application: Applications typically take several weeks to a month to complete.
  • Transcripts: Most schools require students to submit official copies of their undergraduate transcripts, which they can usually order online or by phone through each college's registrar office for a fee. Some programs accept unofficial transcripts with applications, but require an official copy by date of enrollment.
  • Letters of Recommendation: Prepare to submit one to three letters of recommendation from former or current academic advisers, supervisors, or employers. Give your letter writers at least a month's notice before your application deadline.
  • Test Scores: Some programs require graduate students to submit recent GRE scores, but they do not usually set a minimum score. Instead, schools generally consider scores in relation to the whole application.
  • Application Fee: Application fees average about $70 and are generally nonrefundable. Some schools waive this fee for online applicants, alumni, active military members, veterans, and applicants who demonstrate financial need.

What Else Can I Expect From a Master's in Software Engineering Program?

No two master's in software engineering programs are exactly alike, with each program offering its own set of options for specific courses and concentrations. Even so, many programs offer at least some common courses and concentrations.

Concentrations Offered for a Master's Degree in Software Engineering
Concentration Description Careers
Software Development A software development track focuses on the technical aspects of developing software systems. Coursework typically covers the methodologies, tools, and approaches to solving technical issues of large-scale software. Degree holders are qualified to work in a diverse set of application environments. DevOps engineer, web software developer,UX designer.
Project Management Software engineering with a project management focus prepares graduates to direct teams through the entire software development and creation process, from design to implementation. Foundations cover research and modeling of software design, as well as specific instruction in evaluation of integrated, structural, and functional systems models. Senior software engineer
Cybersecurity A specialization in cybersecurity, also called secure cybersystems, adds a layer of knowledge in how to recognize, analyze, and handle security risks in applications and computer networks. An understanding of how applications and systems are backwards-designed and constructed is at the core of a cybersecurity specialization; this knowledge helps experts diagnose critical issues and assess potential solutions. Cyber security analyst, heads of cyber security operation, cyber security architects.
Game Systems A concentration in game systems provides the skills in designing real-time games and interactive simulations in a variety of areas, including mobile applications, military operations, and medicine. In addition to systems architecture, coursework covers topics like computer graphics, artificial intelligence, and game physics. Game system or simulation designer and developer in law, finance, medicine, and other fields.
Software Architecture Software architecture builds on a foundation in software development and expands your knowledge base in design and management of large-scale software systems. Courses of study include a survey of the unique challenges and global influences on computer networks and how to deal with the architectural components in context. Software architects are prepared for leadership positions of large-scale software development projects across many enterprises and organizations.

Courses in a Master's in Software Engineering Program

Core and elective classes differ greatly between schools. Some master's programs in software engineering may offer foundational courses, like programming in C++, while others may require students already to have already completed a similar course prior to enrolling. Despite these differences, most programs have commonalities in their course offerings. Below is a sample snapshot of a master's level software engineering curriculum.

Advanced Software Engineering

This course focuses on the lifecycle of software development and dives into concepts regarding modeling and management of software engineering. Topics of study include planning, testing, and managing software applications. This background is essential for a position as a software engineer or a leadership role in software development.

Software Design Patterns

Software design patterns, integrated with object-oriented analysis, provides students with the knowledge and skills for creating interactive software applications. Students learn how to critique code and use various design patterns to address complicated software applications and user interface issues. This course is a prerequisite to a career in software development, game design, or software architecture.

Software Testing and Security

Software testing and security is vital to a career as a software engineer, software developer, or IT project manager. Coursework spans the early stages of test planning to final product release. Topics of study include test processes and procedures, software project management, and system acceptance testing.

Intro to Artificial Intelligence

AI is becoming more common in software application development, and a general understanding of AI prepares professionals for innovative career pathways in software engineering and development. Fundamental topics include machine learning, types of computer networks, and natural language processing.

Web and Mobile Architectures

With a focus on web design usability, this course prepares professionals to design and develop software for mobile platforms and stay abreast of emerging trends. This course prepares students to create user-centered software applications and provides them with a deep understanding of underlying information architecture and principles.

How Long Does It Take to Get a Master's in Software Engineering?

A master's in software engineering usually requires at least 30 credit-hours and takes an average of two years to complete. Students may be able to take additional credits each semester at an extra cost to complete their degree more quickly. Working professionals may opt to take fewer credits per semester, which may extend the length of their program and increase costs, depending their school's student fees. The length of time it takes to complete a degree also differs depending on how often the program in question offers its core courses.

How Much Is a Master's in Software Engineering?

Expect to invest about $32,000 in tuition over the course of your master's in software engineering program. A number of factors affect tuition costs, starting with whether you're a resident or nonresident, which is particularly relevant for on-campus students. Out-of-state tuition can cost up to twice as much as in-state tuition; if you're determined to attend a particular school out of state, you may want to research online program options or consider establishing residency in the area, dependent on job opportunities and the quality of living there.

Some programs offering both online and on-campus experiences charge the same per-credit tuition rate for each, and some online programs require an additional distance-learning fee. Most on-campus programs, however, incur expenses for recreation or student activity fees and parking or commuting, which don't apply to distance learners. If you plan to live on campus, also account for university housing and meal plan costs.

Visit your school's financial aid page to find out about institutional or program-specific scholarship and grant opportunities there. Sites like Sallie Mae also provide information on potential graduate scholarship opportunities at the state and federal levels, and many schools also offer tuition discounts to active service members and veterans and their family members. You may also speak with a financial aid admissions counselor to make sure you cover your bases regarding tuition discounts.

Certifications and Licenses a Master's in Software Engineering Prepares For

Back End Web Development Certification

This certification equips professional software engineers with the knowledge and skills to build a website from scratch using various scripting languages such as JavaScript, along with the processes and technologies underlying communication between web platforms. This certification usually requires students to take four or more courses, which they may complete online through a college's extension program or open online course provider.

Web Technologies Certification

Learn how to develop websites, build online programs, and develop and bring to market new mobile apps with a web technologies certification. Through coursework, students learn how to use scripting languages and database-driven web applications and build an understanding of database management systems. This certification usually requires students to complete at least four courses, which are available online through a college's extension program or open online course provider.

Professional Engineering Licensure

Professionals who have a minimum of four years of work experience can apply for a license in computer engineering. Applicants must pass their principles and practice of engineering exam, which is offered through the National Council of Examiners for Engineering and Surveying. Topics include computer systems, hardware, embedded system software, and networks.

Cybersecurity Certification

A certification in cybersecurity builds your qualifications for implementing effective enterprise-level security policies and solutions to both national and international network security threats. Coursework may also shine a light on the political, social, and legal implications of cyber security threats. This certification usually requires students to complete at least four courses, which are available online through a college's extension program or open online course provider.

Advanced Software Developer Certification

For professionals interested in taking their programming to a deeper level, an advanced development certification can enhance knowledge and skills in areas such as open-source and enterprise intelligent device applications and coding security. A graduate-level certificate in software development may be available through college extension programs, a professional organization such as IEEE, or an online learning platform. Certification generally takes less than a year to complete.

Resources for Software Engineering Graduate Students

Khan Academy Tutorials for Computing

For graduate students who need a refresher on the basics, Khan academy offers free instructional videos and practice exercises in computer science and programming. Khan Academy also occasionally posts internship and job opportunities on its site for software developers.

Martindale's Virtual Engineering Center

This engineering-focused site features more than 22,000 calculators and spreadsheets, more than 4,000 linked courses and lectures, and thousands of videos and simulations on a range of engineering domains, including computer engineering.

Google's Guide to Technical Development

Google's go-to computer science guide provides courses and practice exercises, videos, and recommended sites in software development and engineering, all curated by college-level faculty and Google engineers.

IEEE's Guide to the Software Engineering Body of Knowledge

The industry-standard SWEBOK guide covers 15 knowledge areas in software engineering. Each area includes an overview of basic concepts and a reference list for more detailed information.

Carnegie Mellon's Software Engineering Institute

Carnegie Mellon hosts a robust software engineering resource hub that includes research papers, a podcast and webinar series, and global projects and technology updates in software engineering and related domains.

Professional Organizations in Software Engineering

There are several professional organizations in the field of computer science and engineering, with each offering an array of benefits for current or aspiring software engineers. Most host conferences or local events that provide educational and networking opportunities, and many offer specialized continuing education trainings and industry-leading research publications. Many professional organizations welcome student members and provide discounted membership rates, opportunities to volunteer at events, and special scholarships for undergraduates and postgraduates.

National Society of Professional Engineers

NSPE is a national organization geared toward aspiring and licensed professional engineers. Members have access to licensure and ethics resources, a continuing education institute, and an annual professional engineers conference. Students enrolled full time in an ABET-accredited engineering program receive free membership.

The Institution of Engineering and Technology

One of the largest engineering organizations worldwide, IET provides essential professional resources and opportunities for networking through local, national, and global events. IET also offers a number of postgraduate awards and scholarships to engineering majors.

Computing Research Association

The research-based CRA brings together academics and governmental groups to further research and policy in various computing domains. Postgraduate students can find a CRA-published graduate student information guide and a job board for computer researchers.

Association for the Advancement of Artificial Intelligence

AAAI promotes research and ethical use of artificial intelligence through professional trainings, events, and published reports and proceedings. Members are eligible for AAAI-specific scholarships and to volunteer at conferences and other events.

Electric Power Research Institute

For professionals with a specific interest in the energy sector, EPRI helps identify and spotlight critical industry issues through research and development. EPRI's renowned digital journal covers technology news, interviews with thought leaders, and sector-specific reports and software.