University of Southern California

Viterbi School of Engineering

Computer Science

Graduate Degrees

The requirements listed below are special to this department and must be read in conjunction with the general requirements of the USC Viterbi School of Engineering for master’s degrees and the general requirements of the USC Graduate School for Ph.D. degrees. The graduate program in computer science provides intensive preparation in the basic concepts and techniques related to the design, programming and application of digital computers. Both the Master of Science and Doctor of Philosophy degrees are offered.

A Master of Science degree with specialization in software engineering is also offered. The 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.

A Master of Science degree with specialization in intelligent robotics is also offered. This program seeks to prepare students for an industrial career in the development of computer systems for CAD/CAM (Computer-Aided Design and Manufacturing) and robotics. It also serves as an introduction to this area for students who wish to pursue advanced studies and research leading to a Ph.D. The emphasis is on the domain of mechanical, electromechanical and mechatronic products. (CAD for digital systems is covered by a separate program offered by the Electrical Engineering-Systems department.)

A Master of Science degree with a specialization in computer networks is offered. This specialization prepares students in the areas of computer communications, networks and distributed processing.

A Master of Science in Computer Science (Multimedia and Creative Technologies) is also offered.

A Master of Science in Computer Science (High Performance Computing and Simulations) is also offered.

A Master of Science in Computer Science (Data Science) is also offered.

A Master of Science in Computer Science (Game Development) is also offered.

A Master of Science in Computer Science (Computer Security) is also offered.

A Master of Science in Computer Science Dual Degree with Tsinghua University School of Information Science and Technology – China is also offered.

A Master of Science in Computer Science (Scientists and Engineers) is also offered for students with limited background in computer science.

Admission and Prerequisites

Admission is determined by the Office of Admission and the Viterbi School of Engineering, in consultation with the Computer Science Department. The applicant is required to have a bachelor’s degree or its equivalent from an accredited college or university; satisfactory scores on the verbal and quantitative portions of the aptitude test of the Graduate Record Examinations (one advanced test from computer science, mathematics or engineering is recommended); and a substantial background in computing constitutes a minimum requirement. Foreign students must earn a satisfactory score on the Test of English as a Foreign Language (TOEFL) or International English Language Testing System (IELTS).

Master of Science in Computer Science

Requirements for Graduation without a Thesis

A minimum grade point average of 3.0 must be earned on all course work applied toward the master’s degree in computer science. This average must also be earned on all graduate courses completed at USC (400-level and above). Transfer units count as credit (CR) toward the master’s degree and are not computed in the grade point average. A maximum of 4 units may be taken at the 400 level from approved courses in either electrical engineering or computer science; the remaining units must be approved courses at the 500 or 600 level. M.S. students may complete a maximum of 8 units of 600-level courses for use in the degree program. Approval for enrollment in 600-level courses must come from the faculty instructor and department adviser. The total number of units required for the degree is 28. No examination is required for the degree. Other requirements for the Master of Science in computer science are the same as set forth in the general requirements for Viterbi School of Engineering master’s degrees. The required courses are as follows.

Required course: units
CSCI 570 Analysis of Algorithms 4
Choose two of the following courses (8 units):
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems Interoperability 4
Choose additional 12 units of CSCI courses (only one course may be 400 level):
CSCI 400-599 Select any CSCI elective course from the department’s offerings. Only one course may be 400 level. 12
Complete 4 units from one or more of the following options:
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 594ab Master’s Thesis 2-2
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Non Computer Science Course (such as EE, ISE, etc. from approved list) 3-4
600-level CSCI Course (faculty and department approval required) 4
Additional 500-level CSCI course 4
Thesis Option

With the approval of a supervising professor, qualified students may be allowed to pursue a thesis option. Students pursuing the thesis option must satisfy all of the policies and course requirements for the master’s degree with the following exceptions: A maximum of 4 units from approved courses may be taken at the 400 level in either electrical engineering or computer science. In addition, these students must enroll in a minimum of two semesters of CSCI 594abz for a maximum of 4 units. The total number of units required for the degree is 28. The thesis must comply with all requirements set by the Graduate School. Students interested in a thesis while enrolled in a computer science specialization should consult with their department adviser.

Master of Science in Computer Science (Data Science)

The Master of Science in Computer Science (Data Science) provides students with a core background in computer science and specialized algorithmic, statistical and systems expertise in acquiring, storing, accessing, analyzing and visualizing large, heterogeneous and real-time data associated with diverse real-world domains including energy, the environment, health, media, medicine and transportation.

Required Courses (3 courses) units
CSCI 561 Artificial Intelligence 4
CSCI 570 Analysis of Algorithms 4
CSCI 585 Database Systems 4
Group Electives (must take 3 courses with a minimum of 1 course from each group)
(9-12 units):
units
Group 1 (Data Systems):
CSCI 548 Information Integration on the Web 4
CSCI 572 Information Retrieval and Web Search Engines 4
CSCI 586 Database Systems Interoperability 3
CSCI 587 Geospatial Information Management 4
CSCI 653 High Performance Computing and Simulations 4
CSCI 685 Advanced Topics in Database Systems 4
Group 2 (Data Analysis):
CSCI 567 Machine Learning 4
CSCI 573 Probabilistic Reasoning 3
CSCI 686 Advanced Big Data Analytics 4
ISE 520 Optimization: Theory and Algorithms 3
MATH 467 Theory and Computational Methods for Optimization 4
MATH 574 Applied Matrix Analysis 3
Additional Electives (8-11 Units) units
Any 500- or 600-level course in CSCI (including additional group electives or special topics)
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
MATH 458 Numerical Methods 4
MATH 501 Numerical Analysis and Computation 3
MATH 502ab Numerical Analysis 3-3
MATH 505a Applied Probability 3
MATH 601 Optimization Theory and Techniques 3
MATH 650 Seminar in Statistical Consulting 3
The total number of units required for the degree is 32. No more than 4 units may be taken at the 400 level.

Master of Science in Computer Science (Game Development)

The goal of the M.S. in Computer Science (Game Development) program is to graduate students with a core in computer science, an engineering-oriented game development core and a concentration in one of the key research directions in game development infrastructure, cognition and games, immersion and serious games. Infrastructure is researching and developing the software and hardware infrastructure necessary for the development of the future of interactive games and large-scale simulations; massively multiplayer online games (MMOGs) and simulation networks; game engines and tools; instant games; wireless and mobile games and infrastructures; and next generation consoles. Cognition and games is developing theories for modeling and simulating computer characters and story; developing methods for modeling, simulating and displaying human emotion; analyzing large-scale game play; and developing theories for infusing pedagogy with game play. Immersion is researching and developing the technologies to engage the mind of the game player via sensory stimulation; reading the human emotional state and providing that as an input to the game; and emotionally adaptive game software architectures. Serious games and simulations is developing a theory for the deployment of games and simulations for purposes of education and training, health, public policy and strategic communication; game evaluation; serious game development; and human performance engineering. Students graduating from this program will be capable of engineering next generation games and simulations and their required technologies immediately upon graduation in the entertainment and serious game fields. Additionally, graduates from this program will be able to further their education in graduate programs in game development and computer science. The long-term goal with this M.S. degree is to establish research and development directions that create a science of games and an accompanying archival literature that improves game development for both serious and entertainment purposes.

CSCI (8 units) Units
CSCI 570 Analysis of Algorithms 4
Choose one of the following courses (4 units):
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems 4
Game development core (12 units) units
CSCI 423 Native Console Multiplayer Game Development 4
CSCI 522 Game Engine Development 4
CSCI 580 3-D Graphics and Rendering 4
Project Classes (6 units) units
CSCI 529ab Advanced Game Projects 4-2
GAME DEVELOPMENT ELECTIVES units
Complete 5 units from the following:
CSCI 424 Game Engine Tool Development 4
CSCI 425 Immersive Game Development 4
CSCI 499/599 Special Topics (Adviser Approval Required) 4
CSCI 520 Computer Animation and Simulation 4
CSCI 523L Networked Games 4
CSCI 524 Networked Artificial Intelligence 4
CSCI 526L Advanced Mobile Devices and Game Consoles 4
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
CTIN 401L Interface Design for Games 2
CTIN 403L Advanced Visual Design for Games 2
CTIN 404L Usability Testing for Games 2
CTIN 405L Design and Technology for Mobile Experiences 2
CTIN 406L Sound Design for Games 2
CTIN 444 Audio Expression 2
CTIN 456 Game Design for Business 2
CTIN 458 Business and Management of Games 2
CTIN 459L Game Industry Workshop 4
CTIN 462 Critical Theory and Analysis of Games 4
CTIN 463 Anatomy of a Game 4
CTIN 464 Game Studies Seminar (max 4) 2-2
CTIN 482 Designing Online Multiplayer Game Environments 2
CTIN 486 Alternative Control Workshop 2
CTIN 488 Game Design Workshop 4
CTIN 492L Experimental Game Topics 4
Total units: 32

Max 8 units approved 400-level courses.

Master of Science in Computer Science (Computer Networks)

units
You must take the following course (4 units)
CSCI 570 Analysis of Algorithms 4
Choose two of the following courses (8 units)
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems 4
Computer Networks – Required Core Courses (14 units) units
CSCI 551* Computer Communications 4
CSCI 555L* Advanced Operating Systems 4
CSCI 558L* Internetworking and Distributed Systems Laboratory 3
EE 450 Introduction to Computer Networks 3
You must take one of the following courses (3-4 units)
CSCI 599 Special Topics 4
CSCI 694a Topics in Computer Networks and Distributed Systems 3
CSCI 694b Topics in Computer Networks and Distributed Systems 3
EE 550 Design and Analysis of Computer Communication Networks 3
EE 555 Broadband Network Architectures 3
Remaining 2-3 units can be completed with the following:
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
*CSCI 402 is a prerequisite for CSCI 551, CSCI 555L and CSCI 558L. CSCI 402 is automatically waived for graduate computer science students.

Master of Science in Computer Science (Computer Security)

Required Courses (19 units) Units
CSCI 530 Security Systems 4
CSCI 531 Applied Cryptography 3
CSCI 551 Computer Communications 4
CSCI 555L Advanced Operating Systems 4
CSCI 570 Analysis of Algorithms 4
Choose two of the following courses (8 units):
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems 4
Complete five units from one or more of the following options:
CSCI 556 Introduction to Cryptography 3
CSCI 558L Internetworking and Distributed Systems Laboratory 3
CSCI 577a Software Engineering 4
CSCI 578 Software Architectures 4
CSCI 599* Special Topics 4
CSCI 694a Topics in Computer Networks and Distributed Systems 3
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Total units: 32
*Topics must be pre-approved by an adviser.

Master of Science in Computer Science (High Performance Computing and Simulations)

REQUIRED COURSES units
CSCI 570 Analysis of Algorithms 4
CSCI 596 Scientific Computing and Visualization 4
Choose two of the following courses (8 units)
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems Interoperability 4
TECHNICAL ELECTIVE COURSES units
Select either (option 1) two courses from Group A and one course from Group B, or
(option 2) one course from Group A and two courses from Group B.
Total group units will be 9-11 units.
A. Computer Science Track
CSCI 503 Parallel Programming 3
CSCI 520 Computer Animation and Simulation 4
CSCI 551 Computer Communications 4
CSCI 558L Internetworking and Distributed Systems Laboratory 3
CSCI 580 3-D Graphics and Rendering 4
CSCI 595 Advanced Compiler Design 4
CSCI 653 High Performance Computing and Simulations 4
CSCI 599 Special Topics 4
B. Computational Science/Engineering Application Track
AME 535a Introduction to Computational Fluid Mechanics, or
AME 535b Introduction to Computational Fluid Mechanics 3
CE 529a Finite Element Analysis 3
CHE 502 Numerical Methods for Diffusive and Convective Transport 3
EE 553 Computational Solution of Optimization Problems 3
EE 653 Advanced Topics in Microarchitecture 3
EE 657 Parallel and Distributed Computing 3
EE 659 Interconnection Networks 3
MASC 575 Basics of Atomistic Simulations of Materials 3
MATH 501 Numerical Analysis and Computation 3
MATH 578a Computational Molecular Biology 3
PHYS 516 Methods of Computational Physics 3
PTE 582 Fluid Flow and Transport Processes in Porous Media 3
Complete 5 to 7 additional units from the following:
CSCI 500- or 600-level course 4
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Total units: Minimum 32
*Adviser approval required

Master of Science in Computer Science (Multimedia and Creative Technologies)

units
You must take the following course (4 units)
CSCI 570 Analysis of Algorithms 4
Choose two of the following courses (8 units)
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems Interoperability 4
You must take four of the following courses (13-16 units)
CSCI 420 Computer Graphics 4
CSCI 520 Computer Animation and Simulation 3
CSCI 574 Computer Vision 3
CSCI 576 Multimedia Systems Design 4
CSCI 580 3-D Graphics and Rendering 4
CSCI 582 Geometric Modeling 3
CSCI 599 Special Topics 4
CSCI 674a Advanced Topics in Computer Vision 3
Complete 4-7 units from one or more of the following options:
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 594ab Master’s Thesis 2-2
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Non Computer Science Course (such as EE, ISE, etc. from approved list) 3-4
600-level CSCI Course (adviser approval required) 4
Additional 500-level CSCI course 4
Total units: Minimum 32

Master of Science in Computer Science (Software Engineering)

Students must satisfy all requirements for the Master of Science degree in Computer Science. In addition, they must take the following courses. Students may also include research for an optional master’s thesis in their programs. 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.

units
You must take the following course (4 units)
CSCI 570 Analysis of Algorithms 4
Choose two 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 – Choose three of the following Core Courses (11-12 units)
CSCI 510 Software Management and Economics 3
CSCI 577a Software Engineering 4
CSCI 577b Software Engineering 4
CSCI 578 Software Architectures 4
Software Engineering Electives – Complete one of the following courses (3-4 units)
CSCI 511 Personal Software Process (PSP) and Project 3
CSCI 512 Testing and Analysis of Software Systems 4
CSCI 568 Requirements Engineering 3
CSCI 588 Specification and Design of User Interface Software 3
CSCI 589 Software Engineering for Embedded Systems 4
Complete 4-6 units from one or more of the following options:
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 594ab Master’s Thesis 2-2
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Non Computer Science Course (such as EE, ISE, etc. from approved list) 3-4
600-level CSCI Course (faculty and department approval required) 4
Additional 500-level CSCI course 4
Total units: Minimum 32

Master of Science in Computer Science (Intelligent Robotics)

units
You must take the following course (4 units)
CSCI 570 Analysis of Algorithms 4
Intelligent Robotics – Required Core Courses (8 units) units
CSCI 545 Robotics 4
CSCI 561 Foundations of Artificial Intelligence 4
Choose one of the following courses (4 units)
CSCI 571 Web Technologies 4
CSCI 585 Database Systems 4
Complete 16 units from the following:
CSCI 445L* Introduction to Robotics 4
CSCI 534 Affective Computing 3
CSCI 540 Self-Organization 3
CSCI 546 Intelligent Embedded Systems 3
CSCI 547 Sensing and Planning in Robotics 3
CSCI 549 Nanorobotics 3
CSCI 567 Machine Learning 4
CSCI 573 Probabilistic Reasoning 3
CSCI 574 Computer Vision 3
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
CSCI 599 Special Topics 4
*CSCI 445 must be taken BEFORE CSCI 545

**Alternate Robotics/AI related courses may be substituted in the elective area.

Master of Science in Computer Science (Scientists and Engineers)

Designed for students with engineering or science bachelor’s degree but limited background in computer science, this comprehensive, two-year, 37-unit program combines an introductory sequence of undergraduate preparatory and foundational course work with all the graduate breadth requirements necessary to satisfy the traditional master’s degree. Note: The preparatory programming requirement and foundational requirements must be completed at USC and cannot be transferred in or waived. Applicants to this program must meet the admissions standards of the Viterbi School of Engineering.

Preparatory Programming Requirement units
CSCI 455x* Introduction to Programming Systems Design 4
Foundational Requirements units
CSCI 402 Operating Systems 4
EE 457 Computer Systems Organization, or
EE 450 Introduction to Computer Networks 3
Breadth Requirements units
You must take the following courses (16 units)
CSCI 561 Foundations of Artificial Intelligence 4
CSCI 570 Analysis of Algorithms 4
CSCI 571 Web Technologies 4
CSCI 585 Database Systems 4
Recommended Elective Courses units
Select two courses, 7-8 units, from approved 500-level or 600- level course work from Computer Science 7-8
CSCI 577a Software Engineering 4
CSCI 577b Software Engineering 4
CSCI 576 Multimedia Systems Design 4
CSCI 580 3-D Graphics and Rendering 4
CSCI 588 Specification and Design of User Interface Software 3
Remaining 2-3 units can be completed with the following:
CSCI 590 Directed Research (variable units, max 4) 1-4
CSCI 591 Computer Science Research Colloquium (1 unit, max 2) 1
CSCI 598 Professional Writing and Communication for Computer Scientists, and 1
ENGR 596 Internship in Engineering (each internship = 1 unit, max 3) 1
Total Program units: 37
Total Degree units: 33
*Note: CSCI 455 is a preparatory requirement for this program, but the units for this course do not count toward the 33 units required for the degree.

Master of Science in Computer Science Dual Degree with Tsinghua University School of Information Science and Technology – China

The Master of Science in Computer Science Dual Degree with Tsinghua University School of Information Science and Technology – China (THU) leads to two Master of Science degrees in Computer Science, one from each institution. The dual degrees are subject to the following stipulations:

  1. All required courses for each degree are required for the dual degree.
  2. The program description for the Tsinghua University Master of Science in Computer Science and Technology is online at http://www.tsinghua.edu.cn/publish/csen/4906/index.html.
  3. The general requirements for the M.S. in Computer Science at USC in this dual degree program are the same as those for the USC general M.S. in Computer Science without a thesis, except that at least 19 units (of the minimum total of 28) must be completed at USC, and 9 units of pre-approved course work transferred from THU may be counted toward the degree requirements at USC. This is due to:
    • a special partnership in this area established by a Memorandum of Understanding at the University level to amplify cooperation between USC and THU and between the United States and China in an intellectual and economic arena of great importance to both, where many shared interests exist;
    • the similarity of the USC and THU curricula, which allows expanded course substitution due to interchangeable content;
    • the desirability of providing students with a wider array of relevant courses than they can get at either institution;
    • the opportunity to provide students a unique transcultural experience that will position them to be global leaders in their field.
  4. The two M.S. degrees must be earned at the same time, generally at the end of two and one-half to three years of study. The THU degree requirements must be completed for students to receive the USC M.S. in Computer Science as part of the dual degree program.
  5. Students who elect to receive only the USC degree must change their degree objective from the USC-Tsinghua University dual degree to a different M.S. degree objective in Computer Science. In this case they will be allowed to transfer only the standard 4 adviser-approved units from Tsinghua University toward the USC degree.
  6. The following required courses must generally be taken at USC: CSCI 570 and one course from each of the following two categories: I. CSCI 551, CSCI 555, CSCI 571, CSCI 577a, CSCI 585, EE 557; II. CSCI 545, CSCI 561, CSCI 564, CSCI 574, CSCI 580, CSCI 582. There must be justification for the omission of a required course in either degree, for example a certain course in one degree may provide comparable content to the omitted course in the other degree.
  7. The USC Computer Science Department has identified a list of transferrable THU courses that can be considered USC equivalents but is also willing to entertain transfer, on a case by case basis, of unique THU CSCI courses for which no obvious mapping to a USC CSCI course exists.
  8. Courses taken at Tsinghua University by students sent from USC will be taught in English.
  9. Other requirements for the Master of Science in Computer Science are the same as set forth in the general requirements for Viterbi School of Engineering Master of Science degrees.

Graduate Certificate in Software Architecture

This certificate program will provide engineers with the skills required to face the increasingly complex future in architecting systems, systems of systems and software-intensive systems. Students will be exposed to the concepts, principles and state-of-the-art methods in software architectures. This program introduces principles and approaches for modeling systems using SysML; applies software engineering process models and management approaches to the design and architecture of large software systems; and guides the architect through every phase of the conception, implementation, deployment and finally retirement of software systems. It is expected that participants in the certificate program will have completed an undergraduate degree in computer science or a related field and will have several years of practical experience in software engineering and/or systems engineering. If students are later admitted to the Master of Science in Computer Science, the courses taken for the certificate may be applied to that program.

Required Courses Units
CSCI 568 Requirements Engineering 3
CSCI 578 Software Architectures 4
SAE 547 Model-Based Systems Architecting and Engineering 3
SAE 549 Systems Architecting 3
Electives (Choose One) Units
CSCI 510 Software Management and Economics 3
CSCI 530* Security Systems 4
CSCI 555* Advanced Operating Systems 4
CSCI 577a Software Engineering 4
CSCI 577b Software Engineering 4
CSCI 589 Software Engineering for Embedded Systems 4
EE 557** Computer Systems Architecture 3
SAE 541 Systems Engineering Theory and Practice 3
Total units: 16-17
*Prerequisite: CSCI 402
**Prerequisite: EE 457

Doctor of Philosophy in Computer Science

The Doctor of Philosophy with a major in computer science is awarded in strict conformity with the general requirements of the USC Graduate School. See general requirements for graduate degrees. Departmental requirements for this degree consist of a concentrated program of study and research and a dissertation. Consult a separately published guide, available from the department office and Website, for more information concerning course requirements, the screening procedure, the teaching requirement, the qualifying examination, the thesis proposal and other requirements.

Course Requirements

Each student is required to complete two semesters of CSCI 697 (1 unit each, 2 maximum) and CSCI 670 (4 units). In addition, students are required to pass two semesters of CSCI 698 (1-2 units each, no maximum) as part of a teaching requirement.

Elective courses: In addition to the mandatory courses, each student must complete five CSCI courses at the 500 level and above, 4 units each. No more than two of these courses (8 units total) may be at the 500 level; the remaining must be CSCI courses at the 600 level. Directed Research units or thesis credits do not satisfy this requirement. Students are strongly advised to take at least one of their elective courses in an area of computer science that is different from their proposed area of research. The Ph.D. adviser is expected to provide guidance on this matter to the student.

The CSCI 670 course requirement may be waived by examination only. Each course in the department has a faculty member who is designated as the course “owner.” The owner of CSCI 670 is in charge of creating and grading the waiver examination. CSCI 697 and CSCI 698 may not be waived.