USC Viterbi - School of Engineering

You are here

Master of Science in Computer Science with Specialization in Software Engineering

Program Description: 
The M.S. in Computer Science (Software Engineering) focuses on providing its graduates not only software development skills, but also systems engineering, customer collaboration, and management skills necessary for non-outsourceable careers and for leadership in software engineering. It emphasizes education for the future, including such emerging trends as software-intensive systems of systems, high assurance, agile methods, COTS integration, mobile and distributed network-centric architectures, and rapid software development and evolution. The program includes experience in real-client class projects and state-of-the-art evaluation assignments.
Application Info: 

Application Criteria

An undergraduate degree in engineering, math or hard science from a regionally-accredited university.

Applicants whose background is not in computer science may consider the M.S. in Computer Science (Scientists and Engineers).

Satisfactory cumulative undergraduate GPA (grade point average)
Satisfactory GRE test scores. All scores must be officially reported to the university directly by ETS.
Substantial background in computing constitutes a minimum requirement.
Apply Online:

Application Materials for All Applicants

USC Online Application: All applicants must complete and submit the USC Online Application.
Transcripts: Official transcripts from all colleges and universities attended, sealed by the institution.

By regular mail (ONLY):

University of Southern California
USC Office of Graduate Admission
3601 South Flower Street, Room 112
Los Angeles, CA 90089-0915

By courier service, such as DHL or FedEx:

University of Southern California
USC Office of Graduate Admission and Financial Aid
3601 South Flower Street, Tyler 1
Los Angeles, CA 90089-0915 
(213) 740-1111

By electronic transcripts:

USC also now accepts official electronic transcripts, provided they meet the following guidelines:

  • The transcript originates from a secure site formally linked to the sending institution.
  • The school is located in the United States. We do not accept electronic transcripts from any institution overseas.

Please instruct the vendor to email the transcript to Do not send any materials or correspondence to this email address yourself. To avoid delays, do not provide vendor with any other email.

GRE General Test: Satisfactory scores less than five years old. Official scores must be reported from ETS directly to USC using ETS school code 4852. A department code is not required.
Letters of Recommendation (Optional): Letters of recommendation should be from faculty or others (supervisors, professional colleagues, etc.) qualified to evaluate your potential for graduate study. 
Statement of Purpose (Optional): The statement of purpose should describe succinctly your reasons for applying to the proposed program at the Viterbi School of Engineering, your preparation for this field of study, study interests, future career plans, and other aspects of your background and interests which may aid the admissions committee in evaluating your aptitude and motivation for graduate study.

Additional Application Materials for International Applicants

English Language Proficiency: In addition to the general admission criteria listed above, international students whose first language is not English are required to take the TOEFL or IELTS examination to be considered a candidate for admission.  There is no minimum TOEFL or IELTS score required for admission to the Viterbi School. For possible exemption from additional language requirements, you must achieve an Internet Based TOEFL (iBT) score of 90, with no less than 20 on each section or an IELTS score of 6.5, with no less than 6 on each band score. For more details on English Proficiency Criteria for the University of Southern California, please visit USC Graduate Admission - Proficiency in English.
Program Details: 
Please Note: Requirements for graduation, course offerings, course availability, track offerings and any other degree requirements are subject to change.  Students should consult with an academic advisor prior to registering for any classes.
A minimum of 27 units is required for the M.S. in Computer Science (Software Engineering) degree.
1 required general Master’s course: 3 units
5 required Software Engineering courses: 17 units
Elective Software Engineering courses: 7-9 units (consult with an advisor before enrolling in elective courses).
A maximum of 4 units may be taken from approved 400-level courses in either Electrical Engineering or Computer Science; the remaining units must be approved courses at the 500 or 600 level.
A minimum cumulative GPA of 3.00 is required for graduation.
**Students who began their program prior to Fall 2013 may take up to 9 units of approved 400-level courses.
Available Online: 

This program is also available online to professional engineers through the Distance Education Network (DEN@Viterbi). Because the DEN@Viterbi program provides a fully equivalent academic experience, the degree a USC engineering student earns is the same whether they are on-campus or online.

If you are interested in beginning classes as a DEN@Viterbi student next semester, explore the requirements and steps to enrolling as a Limited Status Student

More information about DEN@Viterbi

DEN@Viterbi Online Course Offerings

The following courses and program requirements serve as program planning for DEN@Viterbi students. Course offerings and availability are subject to change. Please consult with advisor if you have any questions.

Required Software Engineering Courses

5 Courses - 17 units total.
CSCI 510 | Software Management and Economics
CSCI 570 | Analysis of Algorithms
CSCI 577a | Software Engineering
CSCI 577b | Software Engineering
CSCI 578 | Software Architecture
Required General Masters Course
Students must take one of the following courses - 3 units total.
CSCI 561 | Foundations to Artificial Intelligence (OR CSCI 564, or 574)
CSCI 564 | Brain Theory and A.I. (OR CSCI 561, or 574)
CSCI 574 | Computer Vision (OR CSCI 561, or 564)

Elective Software Engineering Courses

Students must take three of the following courses - 9 units total.
CSCI 555 | Advanced Operating Systems
CSCI 585 | Database Systems
CSCI 588 | Specification and Design of User Interface Software 
EE 557 | Computer Systems Architecture