MS in Computer Science: Software Engineering Track

The Software Engineering Track is a software-engineering study area that enables students to obtain a Master's of Science in Computer Science. It is project based. Formal requirements include:

  • Being a member of a participating lab.
  • Completing an innovative software development project of the student's choice.
  • Completing two academic years of courses and seminars, providing preparation and support for the project.

Participating Labs

The Software Innovation Lab


For cost of attendance, see here. Below are two ways in which our students frequently offset this cost.

Funding: Because graduate teaching assistants (GTAs) with strong software-engineering skills are in high demand in the School of EECS, it is quite common for students in the SI Track to be appointed to GTA positions. These positions cover tuition and come with a stipend. In addition, students in the SI track are well-positioned to secure summer internships and a large percentage of them regularly do.

Applying for funding: Four weeks before every term, an email is sent over the EECS graduate-student email listserv asking for graduate students to apply to GTA positions. It has a link to a program called "Ideal-Logic" which the school uses to assign and hire GTAs. When the time comes, follow that link to apply for a GTA position.

Attending part time: If you are currently employed full time as a software developer or in a related field and planning to attend our program part time, then your employer might pay for your tuition as you enroll in the program part time. Ask your employer.

Admissions Process

Interested applicants should apply to the Computer Science program using the same admission form as other master's applicants. Within the section of the application entitled "Program Specific Questions," follow these instructions:

  • For "Potential mentor(s)," enter the words "Software Innovation Track."
  • For "Top choice for research interest area," select "Software Engineering and Human-Computer Interaction."
  • For "Top choice for research interest area topic," select one or more topics that are of most interest.

Applicants may also simultaneously apply within the same form to do a traditional research-focused thesis. To do this, applicants may enter the names of relevant professors in the "Potential mentor(s)," in addition to the words "Software Innovation Track," and then select an appropriate option for the form's "Second choice for research interest area."

Applicants must comply with the standard application due date. We may contact top applicants in order to request further information. For example, we may request that applicants email further details about prior professional experience, and request a brief Skype interview to discuss each applicant's qualifications and interests. In addition, we anticipate sending a short questionnaire/quiz to the top applicants, which will help us understand what seminars, courses, or other training we will need to provide for new students.

Admissions Criteria

Software Innovation Track applicants must meet the standard master's admission criteria. Moreover, the track admissions process is selective and holistic. In particular, successful applicants are likely to possess at least some of the following qualifications.

International applicants:

  • Typically, a TOEFL score >= 91 or an IELTS >= 7.0. Being able to interact with your classmates, read relevant materials in English and understand lectures is important.

All applicants:

  • A bachelor's degree in Computer Science is helpful, but not required. But if you lack undergraduate Computer Science prerequisites (which are currently 4 courses), then you will have to take them while in the program.
  • GRE scores are not required to apply, but students with available scores may choose to self-report them when applying.
  • At least several months of experience with multiple programming languages, including at least one language currently in widespread demand among practicing developers. For example: Golang, Swift, Kotlin, Scala, Python, JavaScript/TypeScript, Rust, C++, or similarly common industrial languages.

What can help make your application stronger:

  • A good project idea.
  • The skills to be able to execute your idea or evidence that you will be able to acquire these skills.
  • AWS Solutions Architect - Associate certification. Or similar.
  • Relevant work experience.