The Master of Software Engineering (MSWE) is a professionally oriented, programming-intensive, degree program designed to train students from a variety of backgrounds for Software Engineering careers. The program’s characteristics are as follows:
- A 16-month, 49-unit, on-campus program, spanning from September of the first year to December of the second year.
- Dedicated room (“the lab”) where students study and work on their projects. All lectures are in the lab.
- Tutors are available 8 hours/day in the lab.
- The program starts off with a first quarter of intensive programming exercises designed to solidify and broaden the students’ knowledge of the large computing landscape, covering essential knowledge in Computer Science and Computer Systems.
- 6 courses cover the foundations of software construction, maintenance, and quality, via hands-on projects.
- 2 courses help prepare students for the non-technical aspects of professional careers.
- There is an internship requirement for this program, in which students are responsible for finding a summer internship between year one and year two. Career counseling staff are available to provide advising during your search and throughout your internship and program.
- A quarter-long capstone project, where students will be responsible for designing and implementing a substantial piece of software, be it standalone or an add-on to an existing system. This project includes challenging aspects, such as information classification and machine learning modules, strict performance requirements, very large code bases, deployment in the cloud, etc.
- We estimate students will spend close to 1,300 hours learning through programming and analyzing code.
Part-time attendance for working professionals is also possible. Part-time students are expected to complete the degree within two years and one quarter (27 months), with 39 months as the maximum. To accommodate working and part-time students, lectures are held in the evening. Domestic students who are employed full-time will be given special attention by program staff to ensure that they obtain a suitable internship that they can engage with while not necessarily having to give up their current job. Examples of possible arrangements are: faculty-supervised participation in an open source project or development of specific software for the School, among others.