<%@ Language=VBScript %> MS in Computer Science


THE MASTER OF SCIENCE
PROGRAM IN COMPUTER SCIENCE

UNIVERSITY OF SOUTHERN CALIFORNIA
COMPUTER SCIENCE DEPARTMENT
HENRY SALVATORI COMPUTER SCIENCE CENTER
LOS ANGELES, CALIFORNIA 90089-0781
(213)740-4496
FAX: (213)740-7285
email: csdept@pollux.usc.edu
http://cs.usc.edu

November 2000



GENERAL INFORMATION
   RESEARCH FACILITIES
   COMPUTER SCIENCE GRADUATE ORGANIZATION (CSGO)
ADMISSION INFORMATION
   ADMISSION REQUIREMENTS
   APPLICATION PROCEDURES
GENERAL ACADEMIC INFORMATION
   TRANSFER OF CREDIT FROM ANOTHER INSTITUTION
   TRANSFER TO COMPUTER SCIENCE FROM ANOTHER USC GRADUATE PROGRAM
   EXEMPTION FROM REQUIRED COURSES
   MAINTENANCE OF MINIMUM GRADE-POINT AVERAGE
   INTERACTIVE INSTRUCTIONAL TELEVISION NETWORK
   FINANCIAL AID
   ADMISSION CREDIT EVALUATION
REQUIREMENTS FOR THE M.S. DEGREE
   DEFICIENCY COURSES
   REQUIRED CORE COURSES
   REQUIRED COURSES FOR MSCS
   REQUIRED COURSES FOR MSCS-CN
   REQUIRED COURSES FOR MSCS-MC
   REQUIRED COURSES FOR MSCS-RA
   REQUIRED COURSES FOR MSCS-SE
   CHOICE OF ELECTIVES
   GUIDANCE
   THE PH.D. DEGREE
   TIME SCHEDULE
   APPLICATION FOR THE MASTER'S DEGREE
PREREQUISITE COURSES
DEFICIENCY COURSES
COURSES APPLICABLE TO THE MASTER'S DEGREE

 

 

GENERAL INFORMATION

The Master of Science program in the Computer Science Department provides intensive preparation in the concepts and techniques related to the design, programming, and application of computing systems.  The program requires the student to take a broad spectrum of courses, while simultaneously allowing for emphasis in desired areas of specialization.   The Computer Science Department at the University of Southern California offers the following Master of Science Degree:

 

            MSCS             Master of Science in Computer Science

            MSCS-CN      Master of Science in Computer Science with Specialization in                                               
                                    Computer Networks

            MSCS-MC      Master of Science in Computer Science with Specialization in
                                    Multimedia & Creative Technologies 
   
            MSCS-RA      Master of Science in Computer Science with Specialization in
                                   Robotics and Automation

            MSCS-SE       Master of Science in Computer Science with Specialization in
                                   Software Engineering

 

We also offer an M.S. in Computational Linguistics jointly with the Linguistics Department (http://www.isi.edu/natural-language/MSCompLing/) and an interdisciplinary M.S. program in Integrated Media Systems (http://sipi.usc.edu/~mendel/msp.).

RESEARCH FACILITIES:


 

The Computer Science research facilities are divided into 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 which is too long to summarize here.  Most laboratories have SUN3 and SUN4 workstations, some have IBM Risc System 600 workstations and servers, while others have Symbolics Lisp machines.  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 all over the world.

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 regarding CSGO email "csgo@pollux.usc.edu".

 

ADMISSION INFORMATION

ADMISSION REQUIREMENTS:

Admission to the University is determined by the Computer Science Department and the University Office of Admissions and is highly competitive.  General requirements for admission to the graduate program are the same as those for the School of Engineering as described in the School of Engineering Bulletin of the University.  The following are basic requirements: 

  A bachelor's degree in computer science, mathematics or engineering from an accredited college or university.

 

• Satisfactory results on the Graduate Record Examination (GRE).  Applicants must take the General Aptitude Test.  The Advanced Computer Science, Mathematics, or Engineering Area Test is recommended but not required.  Test scores over five years old will not be considered.  General test information and testing dates can be obtained from the Educational Testing Service (ETS) at (609) 921-9000. (www.ets.org)

 

• Substantial background in computing (the equivalent of USC's undergraduate courses CS 101, 102, 110, 201, 357 constitute a minimum requirement) and must have completed several courses in college level mathematics (at minimum one discrete mathematics course and one year of calculus). Students lacking these prerequisites must complete them at other institutions before applying to USC.  In addition, students lacking breadth in Computer Science are required to take certain deficiency courses upon admission to the program. It is highly recommended that all the deficiency courses are completed before filing an application for admission.

 

• Intellectual promise indicating the ability to perform high level graduate work in a rigorous academic atmosphere.

 

• International students are required to take the Test of English as a Second Language (TOEFL).  This requirement applies to anyone who is a native of a foreign country who does not meet the minimum standard on the verbal section of the GRE.  Prior coursework in the U.S. will not be considered adequate to waive this requirement.  Information on this test can also be obtained from ETS.

Because of the high degree of competition present, the applicant should make certain that he or she meets all of the required prerequisites BEFORE applying to the master's program.  THE DEPARTMENT DOES NOT ADMIT STUDENTS IN PROBATIONARY STATUS; APPLICANTS WITHOUT ADEQUATE BACKGROUND AND/OR VALID TEST SCORES WILL BE REJECTED. Since GRE and TOEFL scores usually take at least six weeks to process, the applicant should plan his or her test date(s) accordingly.  It is the applicant's responsibility to make certain scores are received by the department by the deadline date.

APPLICATION PROCEDURES:


Formal application for admission to the School of Engineering is made through the University Office of 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 ONE OFFICIAL TRANSCRIPT 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 BY ETS 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 1 for Fall semester and OCTOBER 1 for the following Spring semester for MS applicants. For PhD applicants, the deadlines are JANUARY 1 for Fall semester and SEPTEMBER 1 for the following Spring semester.  No personal interview is necessary.

 

 

GENERAL ACADEMIC INFORMATION
 


TRANSFER OF CREDIT FROM ANOTHER INSTITUTION:

The School of Engineering permits a master's student in Computer Science to receive a maximum of 4 transfer units of graduate credit.  All graduate courses taken elsewhere for which the student wishes to petition transfer of credit should be of "500" level or above, be of quality of "B" or better and have course content directly related with computer science.  All transfers are subject to evaluation by the Computer Science Department and the Office of Admissions of the University.  Transfer courses must be taken no more than seven years prior to the student’s graduation date.  Once accepted to the program, the student must initiate the action by filing out a "Request for Transfer of Credit" form available in the department office.  This form must be submitted along with an Admission Credit Evaluation form available from the Degree Progress Department.

TRANSFER TO COMPUTER SCIENCE FROM ANOTHER USC GRADUATE PROGRAM:

Students enrolled in other M.S. programs at USC who wish to transfer into Computer Science should see the CS Department advisor for consultation.  Students currently not enrolled in the School of Engineering must fill out a supplemental application form available at the Admissions office. 
 
EXEMPTION FROM REQUIRED COURSES:

A student who is proficient in a required course, e.g., by having had an equivalent one elsewhere, may be excused from taking that course.  The student must present evidence of his or her proficiency and then acquire a written waiver from a faculty advisor.  Exemption from a course is not equivalent to the awarding of credit.  Thus, if one course is waived, the student must take another course in its place.

MAINTENANCE OF MINIMUM GRADE-POINT AVERAGE:

 A minimum grade-point average of 3.0 must be maintained for all graduate work undertaken at USC leading to the M.S. degree.  A minimum grade of C (2.0) is required in all courses for graduate credit. In addition, students must have achieved a grade of "B" or better on all units taken elsewhere for which transfer credit is requested .

DISTANCE EDUCATION NETWORK (DEN):

The University's School of Engineering, of which the Computer Science Department is a part, televises a number of its most popular courses live via the Distance Education Network. This network allows students to take all core graduate computer science courses, as well as many electives, at remote sites both in and outside the Los Angeles area, including most of the local aerospace installations.  For further information on the television program, contact the Distance Education Network Office at (213) 740-0114, or check the DEN website at http://den.usc.edu.


FINANCIAL AID:

 Unfortunately, there is little financial assistance available directly from the Computer Science Department to support master's study.  Assistantships and fellowships generally are allocated to students who are working toward Ph.D. degrees.  Only in the most extreme circumstances does the department award financial aid to master's candidates.   Applicant's interested in university aid, i.e., insured loans, fellowships, and scholarships, should contact the University Financial Aid Office at (213) 740-1111.   In addition, The Graduate School also awards certain scholarships and fellowships.  Interested students should contact The Graduate School Fellowship division at (213) 740-9056.
 
ADMISSION CREDIT EVALUATION:

 Once a student is admitted and the certification fee paid, the Degree Programs Department will prepare a Credit Evaluation for the student.  Generally this is done during the first semester of enrollment if your admission file is complete and final transcripts verifying the baccalaureate degree have been received by the Office of Admissions.  This document, prepared by the University Admissions Office, is the final step in the admissions process.  Its purpose is to verify that the student has received a bachelor's degree and to list any coursework available for transfer credit.  Therefore, it is important that the student provide a complete official transcript if one has not already been submitted to the  Admissions Office.
 
 
 

REQUIREMENTS FOR THE M.S. DEGREE

 

DEFICIENCY COURSES:

            CS 301                         Theory of Computation (3)
            CS 402                         Operating Systems (3)
            CS 410                         Translation of Programming Languages (4)
            EE/CS 457Lx               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 towards a graduate degree in Computer Science.

  REQUIRED CORE COURSES:

A total of 27 units is required for the Master's degree.  The core course requirements for the M.S. in Computer Science (MSCS), M.S. in Computer Science with Specialization in Computer Networks (MSCS-CN), M.S. in Computer Science with Specialization in Multimedia and Creative Technologies (MSCS-MC), M.S. in Computer Science with Specialization in  Robotics and Automation (MSCS-RA) and the M.S. in Computer Science with Specialization in Software Engineering (MSCS-SE) are:


                                        Three of the following courses:

                                             CS 555                   Advanced Operating System
                                             CS 561(a or b)        Artificial Intelligence (3-3)

                                             CS 565                   Compiler Design (4)
                                             CS 571                    Issues of Programming Language Design (3)
                                             CS 577A                 Software Engineering I (4)

                                             CS 585                    Database Systems (3)

                                            
EE 557                    Computer Systems Architecture (3)

 


REQUIRED COURSES FOR MSCS:

 Students in the MSCS program must satisfy the current core requirements, the remaining units can be accomplished by taking other 400 and 500 level computer science courses or field-related courses in electrical engineering or mathematics that form a cohesive program of study in Computer Science, subject to approval by an advisor in the department.

REQUIRED COURSES FOR MSCS-CN:

 Students in the MSCS-CN program must satisfy the current core requirements for the MSCS and the following courses must be included in the program:  

            EE/CS 450          Introduction to Computer Networks (3)
            EE 465                Probabilistic Methods in Computer Systems Modeling (3)
                        or
            EE 549                Queuing Theory for Performance Modeling (3)
            EE 550                Design & Analysis of Computer Communication Networks (3)
            CS 551               Computer Communications (3)
            CS 555               Advanced Operating Systems (3)
            CS 558               Advanced Operating Systems Laboratory (3)
            CS 590               Directed Research (1-12)
                        or
            CS 694(a or b)    Topics in Computer Networks & Distributed Systems (3-3)
 
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.

REQUIRED COURSES FOR MSCS-MC:
 
Students in the MSCS-MC program must satisfy the current core requirements for the MSCS plus the following additional requirements:
          ·        Every student must complete Multimedia CSCI 576 Multimedia Systems Design (3).  

         
·        Students must also complete at least two courses selected from one of the two specialization tracks: Graphics  
                and Vision, or Networks and Databases.

           Graphics and Vision Track

             CSCI 480           Computer Graphics (3)
             CSCI 482           Introduction to Geometric Modeling (3)
             CSCI 574           Computer Vision (3) 
             CSCI 580           3D Graphics and Rendering (3) 
             CSCI 582           Geometric Modeling (3)
             CSCI 674           Advanced Topics in Computer Vision (3) 
             EE 569                Introduction to Digital Image Processing (3)

         Networks and Databases Track

            CSCI 485          File and Database Management (3) 
            CSCI 551          Computer Communications (3) 
            CSCI 558L        Internetworking and Distributed Systems Laboratory (3) 
            CSCI 585          Database Systems* (3) 
            CSCI 586          Database Systems Interoperability (3)
            CSCI 694ab      Topics in Computer Networks and Distributed Systems (3-3) 
            CSCI 695          Seminar in Advanced Database Systems (1-4)
            
EE 450               Introduction to Computer Networks (3)
Suggested Core and Elective Courses
Since this specialization is systems oriented, it is recommended (but not required) that students select Advanced Operating Systems (CSCI 555) and Computer Systems Architecture (EE 557) as two of their three core courses.

REQUIRED COURSES FOR MSCS-RA:

 Students in the MSCS-RA program must satisfy the current core requirements for the MSCS plus the following required course: 
                               CS 545                         Robotics (3) 

Three courses selected from:
 
            CS 561a               Artificial Intelligence (3)
            CS 574                 Computer Vision (3)
            CS 582                 Geometric Modeling (3)
            CS 584                 Intelligent Systems for Design and Manufacture (3)
 
Students may include in their programs research for an optional master's thesis conducted in collaboration with industry. This can be accomplished be registering in CS 590 (Directed Research).
 
REQUIRED COURSES FOR MSCS-SE:

 
For students in the MSCS-SE program, they must satisfy the current core requirements for the MSCS plus the following required courses:
 
            CS 510                 Software Management and Economics (3)
           
CS 577a               Software Engineering I (4)
            CS 577b               Software Engineering II (4)
            CS 578                 Software Architectures (3)
 
In addition to the above required courses, the SE specialization requires 3 additional courses to be selected from the following 5 courses:           
CS 511                 Personal Software Process(PSP) and Project (3)
            CS 555                 Advanced Operating Systems (3)
            CS 585                 Database Systems
            CS 588                 Specification and Design of User Interface Software (3)
            EE 557                 Computer Systems Architecture (3)
 
Students may also include research for an optional master's thesis in their programs by registering for CSCI 590 (Directed Research).

CHOICE OF ELECTIVES:

 Any remaining units can be accomplished by taking other 400 and 500 level computer science courses or field-related courses in electrical engineering or mathematics that form a cohesive program of study in Computer Science, subject to approval by an advisor in the Department.  In addition, UPON APPROVAL FROM AN ADVISOR, the student may enroll in a maximum of one closely related class outside the usual department curriculum.  No comprehensive exam or Master's thesis is required for the M.S. degree. All generally allowable courses are listed at the end of this brochure.  The student is permitted a rather wide latitude in selecting the remaining elective courses.  Of the 27 units required, not more than 9 units at the 400 level in either Computer Science or Electrical Engineering may be counted toward the degree. (deficiency courses not accepted)  CS 590 - Directed Research may be counted for a maximum of 6 units toward the Master's degree.  All students are urged to specifically discuss with an advisor any "400" level course he or she wishes to take, since not all such courses are applicable to the Master's degree.

GUIDANCE:

 The student's program of study for the Master's degree is subject to the approval of an advisor. Staff and faculty advisors are available to counsel students on a first-come, first-served basis during registration and at their respective office hours during the regular school year. A continuing student in the M.S. program may have his or her Permit to Register approved in classes for which all prerequisites have been met, as long as a departmental advisor form has been filled out by the student and initialed by an advisor.  However, the student is held responsible for course decisions made without prior advisor consultation.  Similarly, although it is sometimes possible to register for courses at remote television sites without prior approval, it is the responsibility of the student to make certain that such coursework is appropriate for the M.S. program.
 
THE PH.D. DEGREE:

 If the Ph.D. is the ultimate degree objective, the applicant should contact the Computer Science Department Ph.D. Advisor as soon as possible.  Failure to do so at the beginning of the first semester of graduate work could seriously jeopardize the applicant's chances of being successfully screened into the Ph.D. program.

TIME SCHEDULE:

 It is expected that students who do not have to take any deficiency courses will be able to complete this program in 2-3 semesters of intensive full-time study.  All requirements for the Master's degree must be completed within five calendar years from the date on which the student is granted graduate standing.  Those students planning to attempt the program on a part-time basis should keep in mind that computer science courses are generally not offered in the evening nor are they offered during the summer session.

APPLICATION FOR THE MASTER'S DEGREE:


Students working toward the Master's degree should acquire the appropriate form, titled "Application for the Master's Degree" from the Graduate Studies Office, Olin Hall Room 330, and complete and return it to the department office during the semester preceding the one in which the student expects to receive the degree.


PREREQUISITE COURSES


CS 101L FUNDAMENTALS OF COMPUTER PROGRAMMING (3)
Introduction to the design of solutions to computer solvable problems.  Algorithm design, solution implementation using a high-level programming language, program correctness and verification.

 CS 102L DATA STRUCTURES (4)
Linear lists, strings, arrays, and orthogonal lists, graphs, trees, binary trees, multilinked structures, sorting techniques; dynamic storage allocation; applications.  Prerequisite: CSCI 101L.

 EE 110 INTRODUCTION TO DIGITAL LOGIC (3)
Boolean algebra; number systems; binary arithmetic; codes; gates; Boolean expression; Boolean switching function synthesis; iterative arrays; sequential machines; state minimization; flip/flops; sequential circuits; simple processors. 

 CS 201L INTRODUCTION TO SOFTWARE DEVELOPMENT (4)
The object-oriented paradigm for programming-in-the-large (using the C++ language); UNIX tools for software development; developing window-based applications under X-windows.  Prerequisite: CSCI 102

 EE 357 BASIC ORGANIZATION OF COMPUTER SYSTEMS (3)
Organization and operation of the processor, memory and I/O of a minicomputer at the machine language level; assembly language programming; data representation and computer arithmetic.  Prerequisite: EE 101, 102, and a high level programming languages.

 
 

DEFICIENCY COURSES

CS 301 THEORY OF COMPUTATION (3)
Finite state automata, regular sets; context-free grammars, pushdown automata; turing machines, undecidability, the halting problem, Church's thesis, recursive functions, effective procedures.  Prerequisite: CSCI 102 and CSCI 271.

 

 CS 402x OPERATING SYSTEMS (3)
Basic issues in concurrency, deadlock control, synchronization scheduling, memory management, protection and access control, inter-process communication and structured design.  Laboratory experiences with Unix like operating system. Not available  for graduate credits to computer science majors.  Recommended preparation: CSCI 201L or CSCI 455x.

 CS 410x TRANSLATION OF PROGRAMMING LANGUAGES (4)
Concepts of assemblers, compilers, interpreters and their design; macro assemblers, Polish Notation and translation techniques; operator precedence parsing, code generation. Not available  for graduate credits to computer science majors .Prerequisite: CSCI 102; corequisite: EE 357.  

 EE 457Lx COMPUTER SYSTEMS ORGANIZATION (3)
Register transfer level machine organization; CPU data paths and control; micro-programming; timing, simple arithmetic units; basic I/O organization; design using register transfer languages.  Recommended preparation: EE 102L, EE 357.

 
 

APPLICABLE COURSES


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:  CSCI 301 or MATH 410 or departmental approval.

CS 445 INTRODUCTION TO ROBOTICS (4)
Designing, building and programming mobile robots; sensors, effectors, basic control theory, control architectures, some advanced topics, illustrations of state state-of-the-art. Teamwork; final project tested in a robot contest. Junior standing or higher. Prerequisite: CSCI 101L or C language programming.

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: CSCI 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: EE102L and EE357.  

MATH 458 NUMERICAL METHODS (4)
Rounding errors in digital computation; solution of linear algebraic systems; Newton's method for nonlinear systems; matrix eigen-values; 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: CSCI 102L or CSCI 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 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: CSCI 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:  CSCI 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: CSCI 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: CSCI 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 different 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: MATH 501 or MATH 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; random walks, inventory models, population growth, queuing 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: CSCI 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, story understanding, and generation.  Prerequisite: CSCI 460 or CSCI 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 CSCI 445.  Prerequisite: C-language programming.

 

EE 547 SENSING AND PLANNING IN ROBOTICS (3)
Introduction to software methods in robotics including sensing , sensor fusion, estimation, fault tolerance, sensor planning, robot control architectures, planning and learning. Prerequisite:  CSCI 561a.

CS 551  COMPUTER COMMUNICATIONS (3)
Protocol design for computer communication networks, network routing, transport protocols, internetworking. Prerequisite: CSCI 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 systems optimization; search techniques, gradient methods, parameter optimization in control systems; optimization with constraints; linear and non-linear 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, CSCI 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: CSCI 402 

CS 556 INTRODUCTION TO CRYPTOGRAPHY (3)
Modern secret codes. Public key cryptosystems of Rivest-Shamir-Adleman, Diffie-Hellman and others. The underlying number theory and computational complexity theory.  Prerequisite: CSCI 570 or CSCI 572 or CSCI 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 457Lx.   

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: CSCI 402 and EE 450; recommended preparation: CSCI 551 and CSCI 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 560 DIGITAL SYSTEM DESIGN-TOOLS AND TECHNIQUES (3)
ASIC design ,  FPGAs , VHDL , verilog , test benches , simulation, synthesis, timing analysis, post-synthesis simulation, FIFOs, handshaking, memory interface, PCI bus protocol, CAD tools, design lab exercises. Prerequisite: EE 457, EE 454L; recommended preparation: familiarity with CAD tools.

CS 561ab  ARTIFICIAL INTELLIGENCE (3-3)
a: Foundations of symbolic intelligent systems. Agents, search, problem solving, representation, reasoning and symbolic programming. Prerequisite: CSCI 455x.
b: Advanced  Problem-solving techniques in artificial intelligence; search methods, game-playing, knowledge-based systems, formal logic representations and theorem proving, planning systems, natural language understanding.  Prerequisite: CSCI 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: CSCI 455x.

CS 566  Neural Network SELF ORGANIZATION (3)
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: CSCI 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: CSCI 561b.

CS 568  COMMONSENSE REASONING (3)
Formalism for representing commonsense knowledge about quantities, time, space, physics, minds, plans, goals, and society. Methods form making commonsense inferences.  Prerequisite: CSCI 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: CSCI 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. Language for client-side and server-side processing. Examples taken from HTML, Java, Javascript, Perl, SML and others. Recommended preparation: 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: CSCI 301 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: CSCI 455x.  

CS 576 MULTIMEDIA SYSTEMS DESIGN (3)
State-of-the-art technology for networked multimedia systems such as: system design, I/O technologies, data management, data compression, networking and telecommunications. Design of real-world multimedia solution. Recommended preparation: familiarity with C or C++.

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: a: graduate standing b: CSCI 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: CSCI 303.

CS 580 3D GRAPHICS AND RENDERING(3)
The process of creating images from 3D models. Includes transformations, shading, lighting, rasterization, texturing, and other topics. Prerequisite: CSCI 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: CSCI 430 and MATH 470.       

                  

CS 582  GEOMETRIC MODELLING (3)
Mathematical models and computer representations for three-dimensional solids, and underlying topics from set theory, geometry and topology.  Fundamental algorithms, and applications to CAD/CAM and robotics.  Prerequisite: EE 441 and CSCI 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: CSCI 303.

CS 584  CONTROL AND LEARNING IN MULTI-ROBOT/ AGENT SYSTEMS(3)
Survey of control and learning methods from technical papers. Distributed multi-robot/agent systems. Mobile robotics, distributed AI, control architectures, adaptation, learning, cooperative and competitive systems. Prerequisite: CSCI 460 or CSCI 445 or CSCI 561a.

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: CSCI 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: CSCI 585 or departmental approval.

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.  Prerequisites: 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: CSCI 577a.

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

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

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

CS 598  KNOWLEDGE BASED SYSTEMS (3)
Comparative 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 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: CSCI 570.

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: CSCI 564

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: CSCI 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: CSCI 574 or CSCI 569a.

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:  CSCI 551 and CSCI 555.

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