Program: M.S., Software Engineering
Students in the Software Engineering M.S. program complete 30 units of graduate work, including 6 units involving a thesis. The core of the program comprises advanced courses in software engineering processes, including requirements analysis, software design and implementation, verification and validation, quality assurance, software maintenance and software project management. The electives may be chosen to form a concentration in an area of specialization or to provide a broadly based program of study, whichever is more consistent with the selected thesis.
A. Requirements for Admission
For admission to the Master of Science program in Software Engineering, applicants must meet the requirements of the University as listed in this Catalog, take the Graduate Record Examination (GRE), submit the results to the University and be accepted to the program by the Computer Science department. Each applicant’s transcripts and GRE scores will be reviewed by the Computer Science department to determine if the student shows high promise of success in the program. Applicants who have completed an ABET-accredited Computer Science Bachelor of Science program with a GPA of 3.0 or better and have met all other entry requirements are exempt from the GRE requirement.
Requirements for Classified Status
To attain fully classified graduate status in the program, students must complete any required prerequisite undergraduate material or demonstrate equivalent work experience and have a 3.0 GPA for all work taken as a conditionally classified student. Information about the prerequisite material can be obtained from the graduate coordinator.
B. Degree Requirements
All courses in the student’s graduate program must be completed with a grade of “C” or better. No course taken more than 7 years prior to the date of which all requirements for the degree are completed may be counted as part of the 30 units in the degree program. No time limit applies to courses taken to satisfy Software Engineering M.S. prerequisite requirements.
1. Required Courses (18 units)
a. Breadth Requirement (12 units)
b. Culminating Experience (6 units)
Each Software Engineering M.S. candidate must submit a proposal for a thesis to be done under the supervision of a faculty member. When the thesis is approved by that faculty member, the graduate coordinator and the department chair, the proposal becomes a contract between the student and the department as to the work to be done for the thesis. A three-member thesis committee is formed with that faculty member as its chair. When the work is done, the student must prepare a report and defend or present the results of the thesis before the committee.
2. Electives (12 units)
Select two courses from each of the areas shown below:
Software Engineering Electives
COMP 584 Advanced Web Engineering (3)
COMP 585 Graphical User Interfaces (3)
COMP 586 Object-Oriented Software Development (3)
COMP 587 Software Verification and Validation (3)
COMP 589 Software Engineering Metrics (3)
Computer Science courses at the 400-, 500- or 600-level (not COMP 450, 480/L, 482, 490/L, 491L, 492, 494, 499, 696, 698 and 699).
Requests for elective courses that do not meet the requirements stated above must be approved by the student’s thesis committee chair, the department graduate coordinator and the department chair prior to course enrollment. The student’s thesis committee chair may require that specific elective courses be taken prior to enrollment in COMP 696 and COMP 698. Students should seek approval from their committee chair prior to enrolling in elective courses.
Total Units Required for the M.S. Degree: 30
Department of Computer Science
Chair: Adam Kaplan
Jacaranda Hall (JD) 4503
Graduate Coordinator: Ani Nahapetian
Program Learning Outcomes
Students receiving a Master of Science in Software Engineering will be able to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply software engineering theory and software development fundamentals to produce computing-based solutions.