THE DOCTORAL PROGRAM
IN COMPUTER SCIENCE

UNIVERSITY OF SOUTHERN CALIFORNIA
COMPUTER SCIENCE DEPARTMENT
HENRY SALVATORI COMPUTER SCIENCE CENTER
LOS ANGELES, CALIFORNIA 90089-0781
http://www.usc.edu/dept/cs

August 1997

INTRODUCTION
FACULTY AND RESEARCH INTERESTS
RESEARCH FACILITIES
DEGREE REQUIREMENTS
    Screening Procedure
    Guidance Committee
    Qualifying Examination
    Dissertation and Defense
    Time Limits
COURSE REQUIREMENTS
BACKGROUND AND UNITS
APPLICATION PROCEDURES
COMPUTER SCIENCE GRADUATE ORGANIZATION (CSGO)
APPLICABLE COURSES

INTRODUCTION

      The Ph.D program in Computer Science involves the in-depth study of the various areas of computer technology, and an original research contribution to the field. The general areas of focus in the department and corresponding faculty can be broadly categorized as:

      -Artificial Intelligence and Robotics/Neural Computation.
      -Networks and Distributed Systems.
      -Computer Science Theory.
      -Databases.
      -System and Applications.


FACULTY AND RESEARCH INTERESTS
Leonard Adleman (Complexity Theory, Public Key Cryptosystems, ComputerViruses, & Number Theory)
Cengiz Alaettinoglu 2 (Computer Networks, Operating Systems, Distributed Algorithms,& Performance Analysis)
Michael Arbib 1 (Brain Models, Robotics, & Neural Network Informatics)
Robert Balzer 2 (Automatic Programming, AI & Program Specification)
George Bekey (Robotics, Intelligent Manufacturing, & AI in Medicine)
Irving Biederman 7 (Computational, Neural & Biological Models of Shape Recognition)
Edward K Blum 3 (Modeling & Simulation of Neural Prosthesis)
Barry Boehm (Software Engineering: Software Processes, Metrics &Architectures)
Claire Bono (Computer Science Education)
Melvin A Breuer 4 (Testing, Design-for-Test, & CAD of Digital Systems)
Steve Chien (AI: Planning & Scheduling, Machine Learning, & Intelligent Scientific Data Systems)
John Cordero (Computer Science Education)
Peter Danzig (Operating Systems, Computer Networks, Distributed Systems & Performance Analysis)
Alvin Despain 4 (AI: Architecture, Machine Organization & Design Automation)
Deborah Estrin (Computer Networks, Internetwork Routing, & MultimediaCommunication)
Robert Felderman (Parallel & Distributed Systems; High Speed Local Area Networks; Distributed Simulation)
Martin Frank 2 (Human-Computer Interaction, User Interface Software Tools, & End-User Programming)
Shahram Ghandeharizadeh (Multimedia Information Systems, Object-Oriented Databases, & Parallel Databases)
Massoud Ghyam-Khah (Computer Science Education)
Yolanda Gil 2 (AI: Machine Learning, Planning, Knowledge-Based Systems, & Robotics)
Seymour Ginsburg 10 (Database, Automata, & Formal Language and the Human Genome)
Ramesh Govindan 2 (Computer Networks, Operating Systems & Multimedia)
Jonathan Gratch 2 (Machine Learning, Planning, Uncertainty Reasoning, & DecisionTheory)
Mary Hall 2 (Compilers, Program Analysis, & Automatic Parallelization)
Randall Hill 2 (AI: Agent Modelling, Plan Recognition, Perception, & IntelligentTutoring)
Ellis Horowitz (Software Engineering, Programming Environments & Computer-Based Instruction)
Eduard Hovy 2 (AI: Natural Language Processing & Computational Linguistics)
Ming-Deh Huang (Algorithms and Complexity, Algorithmic Number Theory, & Algorithmic Algebraic Geometry)
Kai Hwang 4 (Computer Architecture & Parallel Processing)
Douglas Ierardi (Algorithms in Algebra, Real Geometry & Computational Complexity)
Lewis Johnson 2 (AI: Tutoring & Explanation Systems, & Knowledge-Based Software Engineering)
Kevin Knight 2 (AI: Natural Language Processing & Machine Translation)
Craig Knoblock 2 (AI: Planning, Machine Learning & Information Gathering)
Sukhan Lee 4 (Robotics; AI: Planning & Learning, & Neural Networks)
Stephen Lu (Computer-Supported Collaborative Work; Machine Learning; &Design & Manufacturing Automation)
Raymond Madachy (Software Engineering: Process Modeling, Cost Estimation, & Risk Management)
C. Von Der Malsburg 5 (Brain Theory & Neural Computer Vision)
Maja Mataric (Neurally-Inspired Robot Navigation, Multi-Robot Control and Learning, Modeling of Visuo-Motor Skill Learning)
Larry Matthies (Computer Vision, including 3-D Shape & Motion Estimation; & Mobile Robotics)
Dennis McLeod (Data & Knowledge Base Systems)
Gerard Medioni (Computer Vision & AI)
Steve Minton 2 (Machine Learning, Planning, Scheduling, Constraint-BasedReasoning and Program Synthesis)
Robert Neches 2 (Intelligent Interfaces, Very Large Knowledge Bases & Computer Supported Cooperative Work)
Clifford Neuman 2 (Parallel & Distributed Systems, Operating Systems, Computer Security & Pervasive Computing)
Ulrich Neumann (Computer Graphics, Virtual Environment, Medical Visualization, & Head-Tracking Systems)
Ramakant Nevatia (Computer Vision, Robotics & AI)
Katia Obraczka 2 (Computer Networks, Distributed Systems, & Operating Systems)
Pavel Pezner 3 (Computational Molecular Biology & Combinatorial Pattern Matching)
Keith Price (Computer Vision and AI)
Irving S Reed 4 (Computer Architecture, Error-Correcting Codes, Data Compression & Neural Networks)
Ari Requicha (Computational Geometry & AI; Spatial Reasoning, Automation & Robotics; & Nanotechnology)
Jeff Rickel 2 (Intelligent Tutoring, Knowledge Acquisition & Representation, &Explanation Generation)
Paul Rosenbloom (AI & Cognitive Science: Intelligent Agents, Cognitive Architecture, & Machine Learning)
Rafael Saavedra (Parallel Programming & Architecture, & Performance Analysis)
Stefan Schaal (AI, Neural Networks, Statistical Learning, Biological and ArtificialMotor Control, Robotics, Computational Neuroscience)
Herbert Schorr 2 (Expert Systems, Design Automation & Systems Architecture)
Mark Seidenberg 7,8 (Computational Models of Normal & Disordered Language)
Cyrus Shahabi (Multimedia Database Management Systems, Parallel Databases, &Continuous Media Servers)
Wei-Min Shen 2 (Machine Learning, Autonomous Agents & Robots, Data Mining, & Models of the Brain)
Scott Shenker (Computer Networks & Performance Analysis)
Stuart Stubblebine (Distributed Systems, Networking, Software Engineering & Security)
William Swartout 2 (AI: Expert Systems & Knowledge Acquisition -- Explanation, &Natural Language Generation)
Pedro Szekeley 2 (User Interfaces)
Milind Tambe 2 (Intelligent Agents, Agent Modelling, Multi-Agent Systems, & Rule-Based Systems)
Joseph Touch 2 (Protocols, Networks, & Distributed Systems)
Michael Waterman 3,9 (Human Genome: Algorithms, Mapping & Sequence Analysis)
Richard Weinberg 6 (Computer Graphics and Animation,Scientific Visualization, & Entertainment Technologies)
David Wile 2 (Programming Languages, Domain-Specific Languages, Metaprogramming, & Software Architectures)
Wayne Zhang (Heuristic Search, Distributive Problem Solving, CombinatorialOptimization, & Algorithms)
1 With Biomedical Engineering, Electrical Engineering and Neurobiology
2 With Information Sciences Institute
3 With Mathematics
4 With Electrical Engineering
5 With Neurobiology
6 With School of Cinema & Television
7 With Psychology
8 With Linguistics
9 With Biology

RESEARCH FACILITIES

The Computer Science Department research facilities include the following laboratories: Programmable Automation, Robotics, Parallel Knowledge Processing, Computer Vision, Brain Simulation, Parallel Computing, Computer Architecture, Computer Networks and Distributed Systems, Computer Networks and Distributed Systems Performance, VLSI Design and Test, VLSI/CAD, Database, Software Engineering, and Computer Animation. Each lab is run by one or more faculty and each has a wide variety of equipment. Most laboratories have SUN3 and SUN4 workstations, some have IBM Risc System 600 workstations and servers, Symbolics Lisp machines, Hewlett Packard workstations, etc. In addition to the individual laboratory facilities, the department and graduate students have access to a SUN 4/490 with 64MB of memory, which is used for homework, word processing , and general departmental administration. The graduate students have a private laboratory that contains a variety of SUN4, IBM, and DEC workstations, plus personal computers including Apple Macintosh and NeXt machines. Laser printers are available for output. All machines are connected to the local network, and to the Internet, providing access to researchers around the world.


DEGREE REQUIREMENTS

The Doctor of Philosophy in Computer Science is awarded in strict conformity with the general requirements of The 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 Examination 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 each 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.

Screening Procedure
When a student has completed 21 units or more of graduate level studies in Computer Science at USC, he/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. (Typically only two postponements of a screening decision are allowed.)

Guidance Committee
After passing the screening procedure (or prior thereto), 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.

Qualifying Examination
All doctoral students must pass a qualifying examination in Computer Science before being admitted to candidacy. The purpose of the examination is to evaluate the student's research progress and written and oral communication skills. The exam consists of oral and written components. The written part in effect includes the student's core course work, along with a thesis proposal or substantive statement of research direction. Prior to taking the qualifying examination, the student must complete the core course requirements, with substitutions if appropriate (see below). A determination of pass, fail, or an opportunity to retake the exam is made by the committee at the time of the oral exam.

The written document prepared for the Ph.D. Qualifying Exam shall normally consist of three parts.

I. A thorough review of the relevant literature highlighting inadequacies and open problems that provide the challenges for the proposed thesis.

II. A presentation of completed work which demonstrates the student's ability to conduct research on the proposed topic.

III. A statement of the expected contributions of the thesis, along with a research plan, together with a projected timeline.

The oral part of the Ph.D. Qualifying Exam shall normally be based upon the written document.

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. Prior to the qualifying examination, the student should provide a list of the courses he/she is using for their core requirements, which will be checked by a Ph.D. program advisor, final approval is by the guidance committee. 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.

Dissertation and Defense
A dissertation involving original research in computer science completes the Ph.D. program. A defense of the dissertation must be held as a public oral exam, which is announced via posting and electronic mail at least one week prior to its occurrence. The announcement must include: the title and abstract of the work; the date, time, and place of the exam; and the name of the advisor. The dissertation defense must be completed within seven years of beginning graduate work at USC (six years if the student arrives with a relevant M.S. degree).

Time Limits
Students in the Ph.D. program must pass their qualifying examination within four years and their final Ph.D. examination (thesis defense) within six years of the latter of the following two dates: a) The beginning of the first semester in which the student is enrolled after being admitted to the C.S. Ph.D. program. b) The beginning of the first regular semester (fall or spring) following the semester in which the student completes the equivalent of 27 graduate units applicable towards an M.S. in C.S. degree at USC. All applicable units will count whether they are taken at USC or elsewhere and regardless of whether the student actually plans to apply these units towards a degree at USC. Note that it is not necessary that the student complete all requirements for the M.S. degree or actually obtain the M.S. degree. The above limits may be extended by any allowed "leaves of absences". C.S. doctoral students may be granted a maximum of 24 months (not necessarily consecutive) leave of absence by the department chair or a committee appointed by the chair. However, any leaves longer than 24 months or within four months of the time limit for the examinations must be approved by a 2/3 vote of the CS faculty. Additionally, absences of longer than 24 months may also require graduate school approval. Any extensions to be above time limits must be approved by a 2/3 vote of the C.S. faculty prior to the expiration of the time limits. Students not meeting the time limits will be dropped from the C.S. Ph.D. program. In no case, may the limits exceed those allowed by the graduate school.

Students are notified at least one year in advance of the date (always the end of some month, usually either August or December), by which they should pass their defense. An announcement and date of the defense must be posted prominently at least seven days prior to the defense.

COURSE REQUIREMENTS

Each Ph.D Student must satisfy a breadth requirement, which consists of a "core" and a selected "track"; a student must satisfy both the core requirements and the requirements for the track he/she selects. Core courses must be completed prior to taking the qualifying exam; track courses must be completed before the dissertation defense. The core courses consist of five courses selected from the three groups below:

Systems Group:

    CS 551           Computer Communications (3)
    CS 555           Advanced Operating Systems (3)
    CS 565           Compiler Design (4)
    CS 571           Issues of Programming Language Design (3)
    CS 577a         Software Engineering (4)
    CS 585           Database Systems (3)
    EE 557           Computer Systems Architecture (3)

Theory Group:

    CS 570           Analysis of Algorithms (3)
    CS 572           Advanced Theory of Computation (3)
    CS 581           Logic and Its Applications (3)
    CS 655           Automata and Formal Languages Theory (3)

AI Group:

    CS 545           Robotics (3)
    CS 561a           Artificial Intelligence (3)
    CS 564           Brain Theory and Artificial Intelligence (3)
    CS 574           Computer Vision (3)
    CS 582           Geometric Modeling (3)

Students must take 2 courses from 2 groups and 1 course from the third group. A GPA of at least 3.5 is required for the five courses constituting the student's core.

If the student has had one or more of these courses at another institution, the student may use at most two such courses to satisfy the core requirement. At least 3 courses must be taken at USC and furthermore at least 1 course from each of the three groups must be taken at USC.

A specialization track is selected by the student, which involves further course requirements. The requirements for each of the three tracks are different, and are as follows.

(1) Systems Track Requirements:

    If a student elects the systems track, he/she must take four (4) courses from this list:

        CS 551           Computer Communications (3)
        CS 555           Advanced Operating Systems (3)
        CS 565           Compiler Design
        CS 571           Issues of Programming Language Design (3)
        CS 577a         Design and Construction of Large Software Systems (4)
        CS 585           Database Systems (3)
        EE 557           Computer Systems Architecture (3)

      One (1) course from another institution can be used to reduce to requirement to three (3). Substitutions are allowed, i.e., a more advanced course for one of the above upon approval of an instructor.

(2) Theory Track Requirements:

    The following courses are required:

        CS 572           Advanced Theory of Computation (3)
        CS 620           Design and Analysis of Parallel Computation (3)
        CS 655           Automata and Formal Language Theory (3)

    A required theory track course may be waived if an equivalent course has been taken elsewhere. The waiver is administered by the instructor of the course.

(3) Artificial Intelligence Track Requirements:

    The AI track requirement is to take five (5) courses from the AI track list, with at least one course being taken from each of the three groups. Any course on the list (up to a total of two) that is also listed in the Ph.D. core requirements may count towards satisfying both the Ph.D. core and the track requirements.

    Group 1:         CS 564           Brain Theory and Artificial Intelligence (3)
                      CS 566           Neural Network Self-Organization (2)
                      CS 587a         Mathematical Models of Neurons and Neural Networks (3)
                      CS 663           Computational and Cognitive Neuroscience (4)

    Group 2:         CS 545           Robotics (3)
                      CS 574           Computer Vision (3)
                      CS 582           Geometric Modeling (3)

    Group 3:         CS 541           Reasoning about Actions and Plans (3)
                      CS 544           Natural Language Processing (3)
                      CS 561b           Artificial Intelligence (3)
                      CS 567           Machine Learning (3)
                      CS 569           Integrated Intelligent Systems (3)
                      CS 593           Autonomous Learning and Discovery Agents (3)
                      CS 598           Knowledge Based Systems (3)

BACKGROUND AND UNITS

In addition to the above, all doctoral students must have knowledge of the material covered in CSCI 271, 301, or 430, CSCI 402, 410, EE 457L; these subjects are considered "background courses" and completion of these courses will not count for Ph.D. units.

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. (See the departmental graduate student coordinator.)

APPLICATION PROCEDURES

Formal application for admission to the Graduate School is made through the University Office of International and Graduate Admissions. IN ADDITION TO FILING AN APPLICATION AND THE REQUIRED FEE, THE APPLICANT MUST REQUEST THE REGISTRAR OF EACH COLLEGE OR UNIVERSITY ATTENDED TO FORWARD TWO OFFICIAL TRANSCRIPTS OF RECORD DIRECTLY TO THE OFFICE OF ADMISSIONS AT THE ADDRESS PRINTED ON THE APPLICATION. USC does not take responsibility for the collection of transcripts--NOT EVEN THOSE OF CURRENT OR PAST USC STUDENTS. ALL OFFICIAL GRE AND TOEFL SCORES MUST BE SENT TO THE ADMISSIONS OFFICE.

All other required documents should be forwarded directly to the Computer Science Department at the following address:

                            UNIVERSITY OF SOUTHERN CALIFORNIA
                            COMPUTER SCIENCE DEPARTMENT
                            HENRY SALVATORI COMPUTER SCIENCE CENTER,
                            ROOM 300
                            LOS ANGELES, CALIFORNIA 90089-0781
                            Attention: GRADUATE ADMISSIONS

This set of documents should include:

    1. One unofficial copy of all college or university transcripts;

    2. A typewritten essay stating the applicant's scholarly and professional ambitions;

    3. Three letters of recommendation, at least two of which are from professors of the applicant's
        undergraduate or graduate programs. No special form is required; letters should be on
        institutional stationary.

    4. A copy of the applicant's GRE scores;

    5. A copy of the applicant's TOEFL score (for international students only).

IT IS IMPERATIVE THAT THE COMPUTER SCIENCE DEPARTMENT RECEIVE ALL OF THE ABOVE MENTIONED MATERIALS BEFORE ADMISSIONS CONSIDERATION CAN BE GIVEN TO THE APPLICANT'S FILE. Therefore, it is in the applicant's best interest to make certain that all documents are received by the department at the earliest date possible. While applications are considered as they become complete, the deadline for filing application materials is JUNE 1st for the following Fall semester and OCTOBER 1st for the following Spring semester. No personal interview is necessary.

COMPUTER SCIENCE GRADUATE ORGANIZATION (CSGO)

In Spring of 1990 the Computer Science Graduate Organization (CSGO) was formed to improve the quality of research and academic life for graduate students in our department. In support of this, we provide a formal method of communication between the faculty and the graduate students, both by having representatives at faculty meetings, and on most major departmental committees--including admissions and faculty search committees. We also work to promote the professional and social development of the students and facilitate interaction between the faculty and students in a relaxed atmosphere. For further information and assistance e-mail csgo@pollux.usc.edu.

APPLICABLE COURSES

CS 420 CONCEPTS IN PROGRAMMING LANGUAGES (3)
Concepts in programming languages; syntax description, procedures and parameters, scope, recursion, data types; examples from FORTRAN, ALGOL60, PASCAL, SIMULA, EUCLID, ALPHARD, and CLU. Prerequisite: 402 and 410.

CS 430 FINITE AUTOMATA THEORY (3)
Regular sets; finite state acceptors; right-linear grammars; finite state machines; set operations; Kleene theorem; state minimization; incomplete state reduction; selected other topics. Prerequisite: 301 or MATH 410 or departmental approval.

CS 445 INTRODUCTION TO ROBOTICS (3)
Programming robots to identify, avoid, grasp, and relocate objects; mathematics of spatial transforms, kinematics of robot arms: forward, inverse, and differential; robot vision. Duplicates credit in EE/CS 545. Prerequisite: C-language programming or equivalent; 101L and senior standing.

CS 446 ROBOTICS AND SENSING FOR AUTOMATED ASSEMBLY (3)
Fundamental principles of mechanics of parts and devices for automated assembly. Robots, parts feeders, automated guided vehicles, industrial sensing. Programming of robots and sensors. Junior or senior standing or departmental approval. Prerequisite: 101L.

EE 450 INTRODUCTION TO COMPUTER NETWORKS (3)
Network architectures; layered protocols, network service interface; local networks; long-haul networks; internal protocols; link protocols; addressing; routing; flow control; higher level protocols. Prerequisite: junior standing.

EE 454L INTRODUCTION TO SYSTEMS DESIGN USING MICROPROCESSORS (3)
Operation and timing of 8-bit microprocessors: design of microprocessor-based systems; 16-bit microprocessors: bit sliced microprocessors. Prerequisite: EE 102L and EE 357.

MATH 458 NUMERICAL METHODS (4)
Rounding errors in digital computation; solution of linear algebraic systems; Newton's method for nonlinear systems; matrix eigenvalues; polynomial approximation; numerical integration; numerical solution of ordinary differential equations. Prerequisite: MATH 225 or MATH 245.

CS 460 INTRODUCTION TO ARTIFICIAL INTELLIGENCE (3)
Concepts and algorithms underlying the understanding and construction of intelligent systems. Agents, problem solving, search, representation, reasoning, planning, communication, perception, robotics, neural networks. Junior standing. Prerequisite: 102L or 455x.

EE 465 PROBABILISTIC METHODS IN COMPUTER SYSTEMS MODELING (3)
Review of probability; random variables; stochastic processes; Markov chains; and simple queueing theory. Applications to program and algorithm analysis; computer systems performance and reliability modeling. Prerequisite: MATH 407.

CS 466 SIMULATION OF COMPUTER SYSTEMS (3)
Simulation and queueing models, simulation languages, generation of random numbers, analysis of data, model validation, statistical sampling and selected applications. Prerequisite: 102 and either MATH 407 or EE 464.

CS 477L DESIGN AND CONSTRUCTION OF LARGE SOFTWARE SYSTEMS (4)
Programming methodologies; intra-group and inter-group communication; software life-cycle; software economics. A large software project is a central aspect of the course. Laboratory. Prerequisite: 102.

CS 480 COMPUTER GRAPHICS (3)
Hardware for interactive graphic systems; picture representations; data structures for graphics; picture processing techniques; languages for graphics; survey of applications such as animation and simulation. Prerequisite: 102.

CS 482 INTRODUCTION TO GEOMETRIC MODELING (3)
Role of geometry in CAD/CAM. Graphic user interfaces; motions and projections; cubes, surfaces and solids; fundamental algorithms. Applications in analysis, manufacturing, inspection and robots. Junior or senior standing. Prerequisite: 101 or departmental approval.

CS 485 FILE AND DATABASE MANAGEMENT (3)
File input/output techniques, basic methods for file organization, file managers, principles of databases, conceptual data models and query languages. Prerequisite: 201.

MATH 501 NUMERICAL ANALYSIS AND COMPUTATION (3)
Linear equations and matrices, Gauss elimination, error estimates, iteration techniques; contractive mappings, Newton's method; matrix eigenvalue problems; least-squares approximation, Newton-Cotes and Gaussian quadratures; finite difference methods. Prerequisite: linear algebra and calculus.

MATH 502ab NUMERICAL ANALYSIS (3-3)
Computational linear algebra; solution of general nonlinear systems of equations; approximation theory using functional analysis; numerical solution of ordinary and partial differential equations. Prerequisite: Math 425a and MATH 471.

MATH 504ab NUMERICAL SOLUTIONS OF ORDINARY AND PARTIAL DIFFERENTIAL EQUATIONS (3-3)
a: Initial value problems; multistep methods, stability, convergence and error estimation, automatic stepsize control, higher order methods, systems of equations, stiff problems; boundary value problems; eigenproblems. Prerequisite: MATH 501 or MATH 502a or departmental approval.
b: Computationally efficient schemes for solving PDE numerically; stability and convergence of difference schemes, method of lines; fast direct and iterative methods for elliptic equations. Prerequisite: 501 or 502a or departmental approval.

MATH 505ab APPLIED PROBABILITY (3-3)
a: Populations, permutations, combinations, random variables, distribution and density functions, conditional probability and expectation, binomial, Poisson, and normal distributions; laws of large numbers, central limit theorem. Prerequisite: departmental approval.
b: Markov processes in discrete or continuous time; renewal processes; martingales; Brownian motion and diffusion theory; randong walks, inventory models, population growth, queueing models, shot noise. Prerequisite: departmental approval.

CS 510 SOFTWARE MANAGEMENT AND ECONOMICS (3)
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.

MATH 533 COMBINATORIAL ANALYSIS AND ALGEBRA (3)
Advanced group theory; algebraic automata theory; graph theory; topics in combinatorial analysis.

CS 541 REASONING ABOUT ACTIONS AND PLANS (3)
Foundations and techniques of automated planning, including representations of actions and plans, approaches to planning, controlling search, learning for planning, and interaction with the environment. Prerequisite: 561b.

CS 544 NATURAL LANGUAGE PROCESSING (3)
Examination of the issues which enable computers to employ and understand natural language; knowledge representation, memory modeling, parsing, language analysis Advanced group theory; algebraic automata theory; graph theory; topics in combinatorial analysis, story understanding, and generation. Prerequisite: 460 or 561b or departmental approval.

CS 545 ROBOTICS (3)
Fundamental skills for programming robots for industrial applications; spatial transforms and kinematics; geometric algorithms for identifying, avoiding, grasping, and relocating objects; current research issues. Duplicates credit in 445. Prerequisite: C-language programming.

EE 547 SOFTWARE METHODS IN ROBOTICS (3)
Robot programming languages; robot architectures and operating systems; design of software interfaces; geometric modeling and simulation; collision avoidance and grasping; planning robot tasks. Prerequisites: EE 457x, EE 545, EE 561.

CS 551 COMPUTER COMMUNICATIONS (3)
Protocol design for computer communication networks, network routing, transport protocols, internetworking. Prerequisite: 402, EE 450 and C-language programming.

EE 552 LOGIC DESIGN AND SWITCHING THEORY (3)
State minimization of incompletely specified sequential circuits; asynchronous sequential circuits; races; state assignments; combinatorial and sequential hazards in logic circuits. Prerequisite: graduate standing.

EE 553 COMPUTATIONAL SOLUTION OF OPTIMIZATION PROBLEMS (3)
Computer algorithms for system optimization. Search techniques, gradient methods, parameter optimization in control systems. Optimization with constraints; linear and nonlinear programming. Random search techniques. Prerequisite: EE 441.

EE 554 REAL TIME COMPUTER SYSTEMS (3)
Structure of real-time computer systems; analog signals and devices; scheduling, synchronization of multiprocessors; reliability, availability; serial/parallel computations; real-time operating systems and languages; design examples. Prerequisite: EE 457x and 455x.

CS 555 ADVANCED OPERATING SYSTEMS (3)
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: 402.

CS 556 INTRODUCTION TO CRYPTOGRAPHY (3)
Modern secret codes. Public key cryptosystems of Rivest-Shamir-Adelman, Diffie-Hellman and others. The underlying number theory and computational complexity theory. Prerequisite: 570 or 572 or 581 or departmental approval.

EE 557 COMPUTER SYSTEMS ARCHITECTURE (3)
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: 455x and EE 457x.

CS 558L INTERNETWORKING AND DISTRIBUTED SYSTEMS LABORATORY (3)
Students complete laboratory exercises in operating system and network management, distributed systems, TCP/IP, SNMP, NFS, DNS, etc. Term project required. Prerequisite: 402 and EE 450; recommended preparation: 551 and 555.

EE 559 MATHEMATICAL PATTERN RECOGNITION (3-3)
Distribution free classification, discriminant functions, training algorithms; statistical classification, parametric and nonparametric techniques, potential functions; non-supervised learning. Prerequisite: EE 464; corequisite: EE 441.

EE 560L ADVANCED MICROCOMPUTER-BASED DESIGN (3)
Design and implementation of advanced microprocessor-based systems; evaluation of new architectural concepts using microprocessors. Prerequisite: EE 454L.

CS 561 ARTIFICIAL INTELLIGENCE (3)
a: Foundations of symbolic intelligent systems. Agents, search, problem solving, representation, reasoning and symbolic programming. Prerequisite: 455x.
b: Advanced capabilities for sumbolic intelligent systems. Planning, reasoning under uncertainty, decision making, learning, natural language communication. Prerequisite: 561a.

CS 564 BRAIN THEORY AND ARTIFICIAL INTELLIGENCE (3)
Introduces neural modelling, distributed artificial intelligence and robotics approaches to vision, motor control and memory. Prerequisite: graduate standing.

CS 565 COMPILER DESIGN (4)
Formal grammars, parsing methods and lexical analysis; code generation; local and global code optimization; and dynamic allocation. Prerequisite: 455x.

CS 566 NEURAL NETWORK SELF ORGANIZATION (2)
Differential equations for network pattern formation. Dynamic link architecture. Simulation of brain organization processes (retinotopy, orientation columns) and face recognition by elastic matching. Recommended preparation: 564 and either MATH 225 or MATH 245.

CS 567 MACHINE LEARNING (3)
The study of self-modifying computer systems that acquire new knowledge and improve their own performance. Topics include induction, explanation-based learning, analogy, discovery, and connectionist learning. Prerequisite: 561b.

CS 568 COMMONSENSE REASONING (3)
Formalism for representing commonsense knowledge about quantities, time, space, physics, minds, plans, goals, and society. Methods for making commonsense inferences. Prerequisite: 561b.

CS 569 INTEGRATED INTELLIGENT SYSTEMS (3)
Approaches to solving the artificial intelligence problem: combining components of intelligent behavior -- learning, problem solving, planning, knowledge, language, perception, action -- into integrated intelligent systems. Prerequisite: 561b.

CS 570 ANALYSIS OF ALGORITHMS (3)
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.

CS 571 ISSUES OF PROGRAMMING LANGUAGE DESIGN (3)
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. Prerequisite: graduate standing and knowledge of at least two programming languages.

CS 572 ADVANCED THEORY OF COMPUTATION (3)
Machine models of effective computability; subrecursive hierarchies; P and NP problems; effective and efficient reducibility; time, space, and abstract complexity. Prerequisite: 301 or departmental approval.

CS 573 FOUNDATION OF LOGIC PROGRAMMING (3)
Theoretical foundations of logic programming and related paradigms. Least-model semantics, resolution theorem proving, approaches to negation, models of execution, relationships to PROLOG, deductive databases, etc. Prerequisite: 571 and knowledge of PROLOG, or 581, or departmental approval.

CS 574 COMPUTER VISION (3)
Description and recognition of objects, shape analysis, edge and region segmentation, texture, knowledge based systems; image understanding. Prerequisite: 455x.

CS 577ab SOFTWARE ENGINEERING (4-4)
a: Software life cycle processes; planning considerations for product definition, development, test, implementation, maintenance. Software requirements elicitation and architecture synthesis. Team project. Prerequisite: graduate standing.
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: 577a.

CS 579 GRAPH AND COMBINATORIAL ALGORITHMS (3)
Review of basic graph theory and graph searching, connectivity, flows, matching, ear decomposition, planarity, NP-completeness, sorting, geometric algorithms, parallel algorithms, parallel random access machines. Prerequisite: 303.

CS 580L ADVANCED COMPUTER GRAPHICS (3)
The process of creating images from 3D models. Includes transformations, shading, lighting, rasterization, texturing, and other topics. Prerequisite: 480.

CS 581 LOGIC AND ITS APPLICATIONS (3)
Formal systems, first order logic, truth, completeness, compactness, Godel incompleteness, recursive functions, undecidability. Selected applications, e.g., theorem proving, artificial intelligence, program verification, databases, computational complexity. Prerequisite: 430 and MATH 470.

CS 582 GEOMETRIC MODELLING (3)
Mathematical models and computer representations for three-dimensional solids; underlying topics from set theory, geometry and topology. Fundamental algorithms; applications to CAD/CAM and robotics. Prerequisite: EE 441 and 102 or equivalent knowledge of linear algebra and data structures.

CS 583 COMPUTATIONAL GEOMETRY (3)
Geometric algorithms from graphics, vision, geometric modeling, and optimization are studied in a unified way. Topics include proximity, motion planning, Voronoi diagrams, convex hulls. Prerequisite: 303.

CS 585 DATABASE SYSTEMS (3)
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: 485 or departmental approval.

CS 586 DATABASE SYSTEMS INTEROPERABILITY (3)
Federated and multi-database systems, database networking, conceptual and schematic diversity, information sharing and exchange, knowledge discovery, performance issues. Prerequisite: 585.

MATH 587ab MATHEMATICAL MODELS OF NEURONS AND NEURAL NETWORKS (3- 3)
a: Dynamics of discrete and anolog neural networks; qualitative and numerical analysis; computer simulation; learning algorithms and convergence; Kolmagorov theory of feed-forward networks. Prerequisite: MATH 465 and either MATH 501 or MATH 502a.
b: Nernst-Planck and Goldman-Hodgkin-Katz equations; Hodgkin-Huxley theory; cable theory; compartment models of dendritic structures; McCulloch-Pitts networks; perceptron theory. Prerequisite: MATH 587a.

CS 588 SPECIFICATION AND DESIGN OF USER INTERFACE SOFTWARE (3)
The design and implementation of user interface software. Study of issues relating to human/computer interaction. Visual design and real-time interfaces. Prerequisite: 577a.

CS 590 DIRECTED RESEARCH (1-12)
Research leading to the master's degree. Maximum units which may be applied to the degree to be determined by the department. Graded CR/NC.

CS 593 AUTONOMOUS LEARNING AND DISCOVERY AGENTS (4)
Active systems, using their own actions, percepts, and mental constructions, abstract a model from an unfamiliar environment in order to accomplish their missions. Prerequisite: 561b.

CS 595 ADVANCED COMPILER DESIGN (4)
Code generation, data-flow analysis, global optimization, register allocation, data dependency analysis, unimodular transformations, vectorization, parallelization, data and computation decomposition. Prerequisite: 565.

CS 598 EXPERT SYSTEMS (3)
Comparitive studies of classical expert systems, real-time systems, intelligent agents; techniques of rule, model, constraint-based and probabilistic reasonings; tools for knowledge acquisition. Prerequisite: 561b or departmental approval.

CS 599 SPECIAL TOPIC (2-4, max. 9)
Course content to be selected each semester from recent developments in computer science.

CS 612 SOFTWARE ANALYSIS AND FORMAL METHODS (3)
Techniques and tools for analyzing software performance, reliability, safety, security, and correctness. Formal methods; specification, verification, constructive correctness. Prerequisite: Graduate standing.

CS 615 ROBOT MOTION PLANNING (3)
Current research topics in robot motion planning, focusing on geometric algorithms for grasping, manipulation, manufacturing, and navigation. Prerequisite: 545.

CS 620 DESIGN AND ANALYSIS OF PARALLEL COMPUTATION (3)
Routing and algorithm design for parallel machines. PRAM model, fixed connection models, circuit depth, randomization. Parallel algorithms including independent set, matching, evaluation, linear system, sparse techniques. Prerequisite: 570.

CS 655 AUTOMATA AND FORMAL LANGUAGE THEORY (3)
Phase structure languages, especially context-free and context-sensitive; grammars, acceptors, and characterization results; ambiguity; operations; transducers; solvability; applications. Prerequisite: 430.

CS 656 AFL THEORY (3)
Elementary properties; AFA and multitape AFA; AFA representation of AFL properties and operations; principal AFL; applications to well-known families of formal languages. Prerequisite: 655.

EE 658 DIAGNOSIS AND RELIABLE DESIGN OF DIGITAL SYSTEMS (3)
Fault models; test generation; fault simulation; self-checking and self-testing circuits; design for testability; fault tolerant techniques; case studies. Prerequisite: graduate standing.

CS 664 NEURAL MODELS FOR VISUALLY GUIDED BEHAVIOR (3)
Review of neural mechanisms of visuo-motor coordination, and methods for constructing models of these mechanisms. Topics include locomotion, cognitive maps, looking, reaching and grasping. Prerequisite: 564.

CS 665 ADVANCED SOFTWARE ENGINEERING PROJECT (3)
Team analysis, planning, development, and maintenance of a software product, using principles and practices from CS 577ab. Analysis of project lessons learned. Prerequisite: 577a; corequisite: 577b.

CS 667ab SEMINAR IN ADVANCED TOPICS IN MACHINE LEARNING (2-2, max 8)
Seminar covering the latest results published in the field of machine learning and the research currently ongoing at USC. Prerequisite: 567.

CS 674 ADVANCED TOPICS IN COMPUTER VISION (3)
Selected topics from current active research areas including image segmentation, shape analysis and object recognition, inference of 3-D shape, motion analysis, knowledge-based system, neural nets. Prerequisite: 574 or 569.

CS 685 RELATIONAL DATABASE THEORY (3)
Relational model; algebraic operators; dependencies and inference rules; dependency families; query languages and processing; tableaux; applications to design and query optimization; selected other topics. Prerequisite: 585 and MATH 470, or departmental approval.

CS 690 DIRECTED RESEARCH (1-4, max. 8)
Study of problems of an advanced nature by graduate students in computer science. Graded CR/NC. Prerequisite: departmental approval.

CS 693ab SEMINAR IN THEORETICAL DATABASES (1-3,1-3)
Study of recent literature on theoretical aspects of databases. Prerequisite: 585.

CS 694ab TOPICS IN COMPUTER NETWORKS AND DISTRIBUTED SYSTEMS (3-3)
Current topics in network and distributed systems; verbal and written presentation skills, effective critiquing, and evaluation. Prerequisite: 551 and 555.

CS 695ab SEMINAR IN ADVANCED DATABASE SYSTEMS (1-4, 1-4)
Study of recent literature on techniques in database systems. Emphasis on developing skills in critical reading, technical writing, oral presentation, and database implementation techniques. Departmental approval is required. Prerequisite: 484 or 585.

CS 790 RESEARCH (1-12)
Research leading to the doctorate. Maxiumum units which may be applied to the degree to be determined by the department. Graded CR/NC.

794abcdz DOCTORAL DISSERTATION (2-2-2-2-0)
Credit on acceptance of dissertation. Graded IP/CR/NC.



Computer Science Home Page
Questions, Comments, or Suggestions