|
The USC Master of Science in Computer Science (Computer Security) is program created in response to a direct need specified by both industry and government. This unique degree highlights courses relevant to the practice of computer security research, development and deployment, and the secure operation of computer systems. Topics include development of systems that enforce security; cryptography and statistical analysis of attacks; and implementation and management of systems that depend on security technologies for correct operation.
In addition to earning the Master of Science in Computer Science (Computer Security), 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 USC M.S. in Computer Science (Computer Security) degree.
- Required General Masters Course: 3 units
- Required Computer Security Courses: 17 units
- Elective Computer Security Courses: 9 units
- Please consult and receive approval from a Computer Science graduate advisor before enrolling in elective courses
- 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 Computer Security Courses (17 units)
|
CSCI530 - Security Systems
|
4
|
Units: 4
Course Description: Protecting data and computing resources. Systems/network/data security; cryptography; authentication; authorization; intrusion prevention/detection/response; wireless technologies and security implications. Prerequisite: CSCI 402x.
|
|
CSCI551 - Computer Communications
|
3
|
Units: 3
Course Description: Protocol design for computer communication networks, network routing, transport protocols, internetworking. Prerequisite: CSCI 402, EE 450 and C-language programming.
|
|
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.
|
|
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.
|
|
CSCI570 - Analysis of Algorithms
|
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.
|
Elective Computer Security Courses (8-10 units) Choose 3 of the following elective courses:
|
CSCI556 - Introduction to Cryptography
|
3
|
Units: 3
Course Description: Modern secret codes. Public key cryptosystems of Rivest-Shamir-Adelman, Diffie-Hellman and others. The underlying number theory and computational complexity theory.
|
Units: 3
Course Description: Explores fundamental techniques such as recursion, Fourier transform ordering, dynamic programming for efficient algorithm construction. Examples include arithmetic, algebraic, graph, pattern matching, sorting, searching algorithms.
|
|
CSCI578 - Software Architectures
|
3
|
| CSCI599 - Special Topics |
2-4 |
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.
|
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
|