A career as a software developer requires much more than just knowing how to program. You also need to know: what it takes to work in teams; how to make decisions regarding the underlying architecture of the software; how to work with customers to develop the requirements: techniques for making sure your software meets its quality requirements; when to apply which tools, methods and programming languages; and more.
While the typical undergraduate course in software engineering might touch upon these issues, to be proficient in them is another matter. To be a successful team member or project lead at a company, or perhaps run your own startup, you inevitably need to know the ins and outs of software engineering.
The M.S. program in software engineering at UC Irvine is aimed at students with a computer science (or related) bachelor’s degree, who may or may not have been out in the workforce already, and who seek to build a strong background in software engineering. Students who do not have a CS degree, but have experience in the industry and wish to expand their skills, are also welcome.
The program is designed around a set of core courses that introduces the fundamentals of software engineering, followed by a broader range of courses through which students can choose to focus their learning. Students could choose to augment their core with more computer science-oriented courses (e.g., network and distributed systems security, next generation search systems), data science courses (e.g., machine learning, data mining), end-user oriented courses (e.g., user interface design and evaluation, ubiquitous computing and interaction), or advanced software engineering courses (e.g., requirements engineering and specification, software environments).
Throughout, students are exposed to the theory, tools, methods, approaches and practicalities of software engineering. Many of the courses include project work, often performed in teams, and frequently culminating in a system, prototype or conceptual design.
For students who are interested in obtaining a Ph.D. after completing their M.S., or who want to simply get a sense of what research is like, the program offers a thesis option. For two (or more if you wish) quarters, you will join a research group, contribute to a research project, and write a thesis summarizing your efforts. With no fewer than six faculty members running software engineering research groups, you will have a diverse range of projects from which to choose.
Why study at UC Irvine?
- Excellence. You will be part of a world-class group of faculty and students who have an outstanding track record of delivering innovative, relevant education.
- Placement. We prepare our students for rich, fulfilling careers; they frequently move on quickly from early jobs as programmers and software engineers to positions of technical and managerial leadership.
- Support. You join a team that strongly believes that working together is essential to learning. Whether in the classroom, in your M.S. research, or simply as part of a hallway conversation, we encourage you to speak up, join the discussion and contribute.
- Connections. Our alumni have gone on to study in some of the most prestigious Ph.D. programs, work for well-known, innovative corporations, and found successful startups. We stay in touch with them, and can help connect you with for internships that complement your studies.
- Diversity. UCI was founded with a focus on diversity of thought, experiences, and ideas. Our department faculty represent a wide variety of disciplinary backgrounds and have in-depth collaborations across campus.
We are always looking for talented students to join! To learn more about our courses and accomplishments, we encourage you to explore this website, as well as the sites of the many research labs and centers in the department. Should you have any questions, please do not hesitate to contact us via our vice chair for graduate affairs or by e-mailing one of the software engineering faculty directly.
Please see the catalogue for a detailed description of the requirements of the software engineering M.S. program.