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
Student Learning Outcomes
Graduates of the Master of Science in Software Engineering will be able to:
- Understand software engineering concepts, techniques, practices and tools, and apply them to real problems in a variety of contexts.
- Define and apply a software process to large-scale real-world problems, including requirements analysis and specification, software design and implementation, verification, validation and quality assurance, and the maintenance of software.
- Analyze and estimate software process costs and manage software development from concept to delivery.
- Identify, analyze and apply software standards in software engineering practice.
- Analyze, assess and interpret professional codes of ethics and regulatory documents pertaining to software engineering, and understand societal issues.
- Generate and apply appropriate solutions to solve problems based on reasoned rationale.
- Work productively in a team or collaborative settings to achieve common goals or purposes, including the ability to lead a team.
- Analyze, evaluate and synthesize research, and apply theoretical ideas to practical settings.
- Effectively present ideas, designs and solutions in a logical framework in a variety of forms with proper language structure and mechanics, and produce appropriate written documentation.
- Recognize the need for and show an ability to deal with constantly changing technology and continuing professional development.