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 is also offered. Click here for more information.
A master of science in computational linguistics is also offered as a separate program in conjunction with the Linguistics Department. See the listing under Linguistics.
A master of science in integrated media systems is offered. See the listing under Multimedia and Creative Technologies.
Admission and Prerequisites
Admission is determined by the Office of Admission 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); substantial background in computing -- the equivalent of USC's undergraduate courses CSCI 101L, CSCI 102L, CSCI 201L, EE 101, EE 357 -- constitutes a minimum requirement; and completion of several courses in college level mathematics (at minimum, one discrete mathematics course). Students lacking these prerequisites should complete them at other institutions. Foreign students must earn a satisfactory score on the Test of English as a Foreign Language.Deficiency requirements | Units | |
---|---|---|
CSCI 402x | Operating Systems | 3 |
CSCI 410x | Translation of Programming Languages | 4 |
EE 457x | Computer Systems Organization | 3 |
All applicants for the master's program should have a general breadth in computer science equivalent to the above-listed USC undergraduate courses. Unsatisfactory background in any of these courses is considered a deficiency. Conditional admission may be granted to otherwise qualified students with breadth requirement deficiencies. Students with deficiencies in breadth requirements must take the appropriate courses at USC. All master's students must have an official form from the Computer Science Department in their academic records as the evidence of fulfillment of the breadth requirement, prior to completion of their program of study. No student may take any of the deficiency courses listed above for credit toward a graduate degree in Computer Science.
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 achieved on all 400-level and above course work attempted at USC beyond the bachelor's degree. Transfer units count as credit (CR) toward the master's degree and are not computed in the grade point average. The required courses are three of the following seven courses: EE 557, CSCI 555, CSCI 561 or CSCI 573, CSCI 565, CSCI 571, CSCI 577a and CSCI 585. A maximum of 9 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. CSCI 590 may be counted for a maximum of six units. Total units required for the degree is 27. 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.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 six units from approved courses may be taken at the 400 level in either electrical engineering or computer science; and CSCI 590 maybe counted for a maximum of 2 units. In addition, these students must enroll in a minimum of two semesters of CSCI 594abz for a maximum of 4 units. Total units required for the degree is 27. The thesis must comply with all requirements set by the Graduate School. The thesis option is available to students pursuing degrees in the following programs: M.S. in Computer Science and M.S. in Computer Science with specializations in computer networks, software engineering, intelligent robotics, multimedia and creative technologies, and computer security.Master of Science in Computer Science with Specialization in Computer Networks
Under the networks option students must satisfy the requirements for the Master of Science in Computer Science and the following courses must be included in the program: EE 450, CSCI 551, CSCI 555 and three of the following: CSCI 558; CSCI 599 or CSCI 694a or CSCI 694b; EE 549, EE 550 and EE 555. Total units required for the degree is 27. Students who can demonstrate that they have already taken these courses (or equivalent) may be waived out of the requirement by a memo from their faculty advisor. All courses must be approved by a faculty advisor. A list of suggested electives is available from the department office.Master of Science in Computer Science with a Specialization in Computer Security
Students must satisfy all the requirements for the Master of Science degree in Computer Science. In addition they must take the following courses: CSCI 530, CSCI 551, CSCI 555, CSCI 577a or CSCI 578 (CSCI 555 and CSCI 577a may be used to satisfy both the general master's degree requirements and the specialization requirements); plus three of the following elective courses: CSCI 556, CSCI 558L, CSCI 570, CSCI 578, CSCI 599 (topic must be approved), and CSCI 694a or CSCI 694b. Total units required for the degree is 27.Master of Science in Computer Science with Specialization in Higher Performance Computing Simulations
Students in the MSCS-HPCS program must satisfy the current core requirements for the Master of Science degree in Computer Science and the following elective courses must be included in the program:Required Core course | units | |
---|---|---|
CSCI 653* | High Performance Computing and Simulations | 3 |
Technical Elective courses | units | |
---|---|---|
Three of the following courses -- students must take courses from both the computer science track and the computational science/engineering application track. | ||
Computer Science Track | ||
CSCI 520 | Computer Animation and Simulation | 3 |
CSCI 551* | Computer Communications | 3 |
CSCI 558L | Internetworking and Distributed Systems Laboratory | 3 |
CSCI 580 | 3-D Graphics and Rendering | 3 |
CSCI 583* | Computational Geometry | 3 |
CSCI 595 | Advanced Compiler Design | 4 |
CSCI 596* | Scientific Computing and Visualization | 3 |
EE 653 | Advanced Topics in Microarchitecture | 3 |
EE 657* | Parallel and Distributed Computing | 3 |
EE 659* | Interconnection Networks | 3 |
MATH 501 | Numerical Analysis and Computing Using Matlab/C++ | 3 |
Computational Science/Engineering Application Track | ||
AME 535a* | Introduction to Computational Fluid Dynamics, or | |
AME 535b* | Introduction to Computational Fluid Dynamics | 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 |
MASC 575* | Basics of Atomistic Simulations of Materials | 3 |
PHYS 516 | Methods of Computational Physics | 3 |
PTE 582* | Fluid Flow and Transport Processes in Porous Media | 3 |
Advisor approved remainder of elective units | 6 |
Master of Science in Computer Science (Multimedia and Creative Technologies)
See the listing under Multimedia and Creative Technologies.Master of Science in Computer Science with Specialization in Software Engineering
Students must satisfy all requirements for the Master of Science degree in Computer Science. In addition, they must take the following courses, CSCI 510, CSCI 577ab and CSCI 578, plus three of the following five courses: CSCI 511, CSCI 555, CSCI 585, CSCI 588 and EE 557 (EE 557, CSCI 555, CSCI 577a, and CSCI 585 may be used to satisfy both the general master's degree requirements and the specialization requirements.) Students may also include research for an optional master's thesis in their programs.Certificate in Software Engineering
The certificate program prepares software practitioners for lifetime leadership in software-intensive systems. This program is designed for practicing software developers, engineers and technical managers, who typically study off campus while working full-time. The Distance Education Network (DEN) of the Viterbi School of Engineering administers and delivers all courses in the program. Students must complete five 3-unit classes, CSCI 510, CSCI 578, CSCI 591ab and CSCI 592, with a minimum grade of B-, and must complete the program with a minimum average of B (3.0).Admission and Prerequisites
Applicants must have an undergraduate or graduate degree from an accredited university with a minimum grade point average of 3.0. If the degree is not in engineering, mathematics or science, then the applicant must present work experience adequate to satisfy the program director that the applicant can successfully complete the course work. GRE scores are not required. Applicants should have practical experience developing software or managing software development and working knowledge of C++, Java or an equivalent programming language. Those who lack the practical experience, or language familiarity, may apply to take CSCI 455x Introduction to Programming Systems Design, which must be passed with a grade of B or better.Applicants to the program must submit the USC graduate application form and official academic transcripts, undergraduate and graduate (if any), to the USC Office of Admission. Applicants who do not have a technical degree but believe they have adequate background to complete the course work successfully must also include a letter requesting special consideration, explaining the circumstances in reasonable detail.
Applicants may begin study as a limited student by submitting the Distance Education Network (DEN) enrollment form along with a resume for evaluation by the program director at least two weeks before the start of the semester.
Limited students may take up to two program classes before applying for admission. A maximum of 12 units taken as a limited student may be transferred toward the unit requirements of the certificate. Enrollment as a limited student does not guarantee admission to the certificate program.
The DEN Web site (den.usc.edu) has information about applying, enrolling, tuition and fees.
Master of Science in Computer Science with Specialization in Intelligent Robotics
Students must take CSCI 545 and three of the following courses: CSCI 445, CSCI 547, CSCI 584, and CSCI 593. Other requirements are the same as for the Master of Science degree in Computer Science, described above. (CSCI 561 may be used to help satisfy both the general master's requirements and the specialization requirements.) Students may include in their programs research for an optional master's thesis conducted in collaboration with industry.Master of Science in Computational Linguistics
See the listing under Computational Linguistics.Master of Science in Integrated Media Systems
See the listing under Multimedia and Creative Technologies.Doctor of Philosophy in Computer Science
The Doctor of Philosophy degree in computer science is awarded in strict conformity with the general requirements of the USC Graduate School.Admission to the Ph.D. program in Computer Science is highly selective, based upon a superior academic record, prior training in computer science, letters of recommendation, a statement of purpose and Graduate Record Examinations scores. Particular attention is given to the applicant's potential to perform original research in an area of computer science. Once admitted, the progress of each Ph.D. student is reviewed once a semester by the entire faculty and a determination is made as to whether the student will be allowed to continue in the program. Since research potential is a key factor in the evaluation, new students are strongly urged to begin research with a Computer Science faculty member as soon as possible. See general requirements for graduate degrees.
Screening Procedure
When a student has completed 21 units or more of graduate level studies in computer science at USC, he or she must apply for screening. The screening evaluation takes place during the regular review of Ph.D. students; based upon the student's performance in course work, overall record, and research potential, the screening evaluation determines whether or not the student will be allowed to continue toward the Ph.D. A screening determination of "pass," "no pass" or "postpone" is made; in the latter case, the student must reapply for screening the subsequent semester(s) until a "pass" or "no pass" determination is made.Guidance Committee
After passing the screening procedure, the student must select a dissertation advisor and form a guidance committee consisting of the dissertation advisor and at least four other faculty members. The committee must include a faculty member from another department who does not hold a joint appointment in Computer Science. All guidance committees must be approved by the department chair and the Graduate School.Course Requirements
Each Ph.D. student is expected to demonstrate breadth of knowledge as well as depth in a chosen area of concentration. Hence, the required courses fall into two groups: (1) a common core, required of all doctoral students, and (2) additional required courses which depend on the student's area of concentration. The common core consists of five courses selected from the following five groups. Students must complete one class from each group: Group 1: EE 557 Computer Systems Architecture, CSCI 551 Computer Communications, CSCI 555 Advanced Operating Systems; Group 2: CSCI 577a Software Engineering, CSCI 571 Web Technologies, CSCI 585 Database Systems; Group 3: CSCI 545 Robotics, CSCI 561 Foundation of Artificial Intelligence, CSCI 564 Brain Theory and Artificial Intelligence; Group 4: CSCI 574 Computer Vision, CSCI 580 Graphics and Rendering, CSCI 582 Geometric Modeling; Group 5: CSCI 570 Analysis of Algorithms, CSCI 581 Logic and its Applications, MATH 501 Numerical Anaysis and Computation. A minimum GPA of 3.5 must be obtained in these five core courses.In addition, all Ph.D. students must register for two semesters of CSCI 597 Seminar in Computer Science Research for a maximum of 2 units during their first year.
Ph.D. programs in computer science are grouped into the following specializations: Network and Systems (Interaction); Databases (Interaction); Software Engineering (Interaction); Robotics (Autonomy); Intelligent Agents and Organizations (Autonomy); Natural Language Processing (Autonomy); Graphics and Multimedia (Immersion); Vision (Immersion); Theory of Computation: Genomic, Molecular and Quantum Computation (Computation); Brain Theory and Neural Networks (Computation); High Performance Computing and Parallel Computation (Computation).
Each student must select a specialization as his or her area of concentration. Each specialization requires a minimum of three additional courses. Specific specialization requirements (which may change as the fields change) will be provided to the students by the department.
Required courses may be taken in any chronological order, with due attention to prerequisites, and may precede or follow the Screening Evaluation.
Deficiencies
In addition to the above, all doctoral students must have knowledge of the material covered in CSCI 271, CSCI 402x, CSCI 410x, EE 457x; these subjects are considered "deficiency courses."A total of 60 units, at least 40 at the 500 level or above, beyond the bachelor's degree is required (including the above required courses). A minimum grade point average of 3.5 must be maintained. Students with a Master of Science degree may transfer up to 27 units.
Qualifying Examination
All doctoral students must pass a qualifying examination in computer science within four years before being admitted to candidacy. The qualifying examination tests the student's broad knowledge of computer science and deep insight into a chosen area of research.Permission to take the qualifying examination must be obtained from the dean of graduate studies at least 60 days prior to its occurrence, and must be taken in the semester for which permission is granted. The guidance committee administers the qualifying examination and evaluates the student's performance. If the examination is failed, the guidance committee may recommend that the student repeat the examination 6-12 months later. The examination cannot be taken more than twice.