Software Engineering

The Master of Science 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.  This program seeks to prepare students for an industrial leadership career in software engineering. It also serves as an introduction to this area for students who wish to pursue advanced studies and research leading to a Ph.D.

Total Units: 32

Required course (4 units):

  • CSCI 570 – Analysis of Algorithms (4)

Choose 2 of the following courses (8 units):

  • CSCI 561 – Foundations of Artificial Intelligence (4)
  • CSCI 571 – Web Technologies (4)
  • CSCI 585 – Database Systems (4)

Software Engineering – Take all four courses (16 units):

  • CSCI 510 – Software Management and Economics (4)
  • CSCI 577a – Software Engineering (4)
  • CSCI 577b – Software Engineering (4)
  • CSCI 578 – Software Architecture (4)

Software Engineering – Choose one of the following elective courses (4 units):

  • CSCI 512 – Testing and Analysis of Software Systems (4)
  • CSCI 568 – Requirements Engineering (4)
  • CSCI 590 – Directed Research (1-2, max 2)
  • CSCI 591 – Computer Science Research Colloquium (1, max 2)
  • CSCI 599 – Special Topics (4)

A maximum of 2 units of CSCI 590 and a maximum of 2 units of CSCI 591 may be applied.

Thesis courses (CSCI 594a, CSCI 594b, CSCI 594z) and Internship courses (ENGR 595a, ENGR 595b, ENGR 595z) are not eligible for elective credit.

  • There is no cumulative examination required for the degree.
  • A minimum grade point average of 3.00 must be earned on all course work applied toward the M.S. degree and all graduate course work taken at USC.
  • 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.
  • Only one doctoral (600-level) course can be counted in the degree.
  • Only one Non-CS course can be counted in the degree.
  • Internship and Thesis credits cannot count as elective units toward the degree.
  • CSCI 590 Directed Research is a variable unit course, and can be taken for one or two units. A maximum of two units can apply toward the degree.
  • CSCI 591 Research Colloquium can be taken a maximum of two times for one unit each.
  • Other requirements for the M.S. degree are the same as set forth in the general requirements for graduate degrees.