|
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.
In addition to earning the Master of Science in Computer Science (Software Engineering), students also have a selection of choosing from other specializations:
- Bachelor's degree in computer science, mathematics or engineering from a regionally-accredited college or university.
- Satisfactory results on the general Graduate Record Examination (GRE). The Advanced Computer Science, Mathematics, or Engineering Area Test is recommended but not required. Tests over 5 years old will not be considered.
- Substantial background in computing (the equivalent of the following USC undergraduate courses constitutes a minimum requirement):
- CSCI 101: Fundamentals of Computer Programming
- CSCI 102: Data Structures
- CSCI 201: Principles of Software Development
- EE 101: Introduction to Digital Logic
- EE 357: Basic Organization of Computer Systems
- Intellectual promise indicating the ability to perform high level graduate work in a rigorous academic environment.
- International students whose native language is not English must earn a satisfactory score on the TOEFL (600 on the paper-based test; 250 on the computer-based test) or take the on-campus International Student English Examination (ISE) prior to initial registration.
ADMISSION STATISTICS**
- Average undergraduate cumulative GPA of students newly enrolled in USC graduate engineering programs is 3.37 (4.00 scale)
- Average GRE scores of students newly enrolled in USC graduate engineering programs is Quantitative 749 and Verbal 478
** These scores are averages. Students with scores both above and below these averages were both admitted and not admitted. The Viterbi School reviews all applications comprehensively and evaluates applicants on the entire application file with an emphasis on undergraduate institution, GPA, grades earned in pre-requisite courses and GRE scores.
A minimum of 27 units is required for the M.S. in Computer Science (Software Engineering) degree.
- Required General Masters Course: 3 units
- Required Software Engineering Courses: 17 units
- Software Engineering Electives: 9 units
- A minimum cumulative GPA of 3.00 is required for graduation.
Thesis Option: With the approval of a supervising professor, qualified students may be allowed to pursue a thesis option. For more information, please refer to the USC Catalogue.
Course Descriptions [back to top]
Required General Masters Course (3 units)
Choose one of the following.
Units: 3
Course Description: Advanced issues in computer organization, naming, kernel design, protection mechanisms and security policies, reliable computing, data base OS, secure networks, systems specification, decentralized systems, real time systems. Prerequisite: CSCI 402.
|
|
CSCI561 - Foundations of Artificial Intelligence
|
3
|
Units: 3
Course Description: Foundations of symbolic intelligent systems, search, logic, knowledge representation, planning, learning. Recommended preparation: good programming and algorithm analysis skills.
|
|
CSCI564 - Brain Theory and AI
|
3 |
Units: 4
Course Description: Formal grammar; parsing methods and lexical analysis; code generation; local and global code optimization; and dynamic allocation. Prerequisite: CSCI 455x.
|
|
CSCI574 - Computer Vision
|
3
|
Units: 3
Course Description: Advanced study of programming languages with application to the Web. Languages for client-side and server-side processing. Examples taken from: HTML, Java, JavaScript, Perl, XML and others. Recommended preparation: knowledge of at least two programming languages.
|
Units: 3
Course Description: Comparative studies of computer system components: the CPU, memory, and I/O; analytical modeling techniques to allow comparative evaluation of architectures; parallelism and supercomputers. Prerequisite: EE 457Lx.
|
Required Software Engineering Courses (17 units)
|
CSCI510 - Software Management and Economics
|
3
|
Units: 3
Course Description: Theories of management and their application to software projects. Economic analysis of software products and processes. Software cost and schedule estimation, planning and control. Prerequisite: graduate standing.
|
| CSCI570 - Analysis of Algorithms |
3 |
|
CSCI577a - Software Engineering
|
4
|
Units: 4
Course Description: a: Software life cycle processes; planning considerations for product definition, development, test, implementation, maintenance. Software requirements elicitation and architecture synthesis. Team project.
|
|
CSCI577b - Software Engineering
|
4
|
Units: 4
Course Description: b: Software development, test, implementation, and maintenance methods. CASE tools and software environments. Software product engineering, configuration management, quality engineering, documentation. Application via projects. Prerequisite: a: graduate standing; b: CSCI 577a.
|
|
CSCI578 - Software Architectures
|
3
|
Units: 3
Course Description: Study of concepts, principles and scope of software system architectures, including architectural styles, languages, connectors, middleware, dynamism, analysis, testing and domain-specific approaches.
|
Software Engineering Electives (9 units) Choose three of the following.
|
CSCI511 - Personal Software Process (PSP) and Project
|
3
|
Units: 3
Course Description: Individual analysis, planning, development and maintenance of a software product or development artifact, using the principles and practices of PSP. Analysis of project's lessons learned. Prerequisite: CSCI 577a.
|
|
CSCI555 - Advanced Operating Systems
|
3
|
Units: 3
Course Description: Advanced issues in computer organization, naming, kernel design, protection mechanisms and security policies, reliable computing, data base OS, secure networks, systems specification, decentralized systems, real time systems. Prerequisite: CSCI 402.
|
|
CSCI585 - Database Systems
|
3
|
Units: 3
Course Description: Database system architecture; conceptual database models; semantic, object-oriented, logic-based, and relational databases; user and program interfaces; database system implementation; integrity, security, concurrency and recovery. Prerequisite: CSCI 485 or departmental approval.
|
|
CSCI588 - Specification and Design of User Interface Software
|
3
|
Units: 3
Course Description: The design and implementation of user interface software. Study of issues relating to human/computer interaction. Visual design and real-time interfaces.
|
|
EE557 - Computer Systems Architecture
|
3
|
Units: 3
Course Description: Comparative studies of computer system components: the CPU, memory, and I/O; analytical modeling techniques to allow comparative evaluation of architectures; parallelism and supercomputers. Prerequisite: EE 457Lx.
|
In order to evaluate any application for admission, application materials must be submitted by the deadlines listed:
June 15th Fall admission
October 1st Spring admission
Click here to complete the USC graduate application.
Please arrange to have the following sent to the USC Office of Admission as a hard copy (USC Graduate Office of Admission, University Park Campus, Los Angeles, CA 90089-0915):
- Official Transcript(s) from all post-secondary schools you have attended, and official translations if they are not in English.
- General GRE scores (no older than 5 years). Official scores must be sent through ETS to the University of Southern California, ETS code 4852)
- TOEFL scores (required for international students)
NOTE: If you meet our minimum qualifications, you can get started BEFORE you are formally admitted to USC, as a "LIMITED" student! Click here for more information.
For the USC Computer Science Department:
Student Services Advisor
Computer Science
Tel: (213) 740-4494
Fax: (213) 740-7285
For the USC Distance Education Network (DEN):
Ray Fujioka
Master's & Professional Programs [MAPP]
Tel: (213) 740-4488
Fax: (213) 821-0851
Email: info@den.usc.edu
|