computer science (CSCI)CSCI overview programs available
courses of instruction flowcharts
Computer scientists and engineers design and implement efficient softwareand hardware solutions to computer-solvable problems. They are involved inthe development of areas such as high-speed networks, multimedia and cre-ative technologies, systems design and virtual reality.
The Computer Science program prepares students to enter the industry inthe areas of software design, development, application and maintenance. Italso provides intensive study in algorithmic design and analysis and the theoryof computing, which are needed for graduate studies.
Computer engineers integrate hardware and software processes to form solu-tions to problems arising from complex systems such as atomic reactors, guid-ance systems and manufacturing systems. They design and engineer com-puters and computer networks.
Programs Available Computer Science
Bachelor of Science128 units
Computer Engineering andComputer ScienceBachelor of Science131 units
Physics/Computer ScienceBachelor of Science128 units
Multimedia and Creative Technologyminor
See pages 63-64 for the curricula of eachof the B.S. programs listed above.Information on each degree emphasisand minors can be found below.
See page 82 for information on minorprograms offered by the USC ViterbiSchool of Engineering.
Physics/ComputerScience DegreeThis program is intended for studentswith dual interests in physics andcomputer science who wish to completethe essential courses for both majorswithin their normal four year career. Seethe Physics and Astronomy Departmentsection of the USC Catalogue for courserequirements.
Minor in Interactive MultimediaSee page 82 for information on the Minorin Interactive Multimedia. Note that thisminor is not open to students in theSchool of Engineering (these studentsshould pursue the Multimedia andCreative Technologies Minor instead).
Minor in Multimedia andCreative TechnologiesSee page 82 for information on the Minorin Multimedia and Creative Technolo-gies.
Courses of InstructionThe terms indicated are expected but arenot guaranteed. For the courses offeredduring any given term, consult theSchedule of Classes.
C O M P U T E R S C I E N C E( C S C I )
101L Fundamentals of ComputerProgramming (3, FaSp) Introduction tothe design of solutions to computersolvable problems. Algorithm design,solution implementation using a high-level programming language, programcorrectness and verification.
102L Data Structures (4, FaSp) Linearlists, strings, arrays, and orthogonal lists;graphs, trees, binary trees, multilinkedstructures, sorting techniques; dynamicstorage allocation; applications. Prerequi-site: CSCI 101L.
105 Object-Oriented Programming (2,Sp) The principles of object-orientedprogramming are examined using Java.Topics include graphics, graphical userinterfaces and multi-threaded program-ming. Prerequisite: CSCI 101L.
107 Computers and Society (3, FaSp)What computers are and how theyfunction. Impact of computer technologyon society. Economic, political and socialissues raised by computers.
110 Introduction to Digital Logic (3)(Enroll in EE 101)
201L Principles of Software Develop-ment (4, FaSp) The object-orientedparadigm for programming-in-the-large(using the C++ language); UNIX tools forsoftware development; developingwindow-based applications under X-windows. Prerequisite: CSCI 102.
271 Discrete Methods in ComputerScience (3, FaSp) Models for discretestructures; finite state automata, regularsets. Selected applications of logic andcombinatorics to program correctness,algorithms and complexity, programminglanguage semantics and databases.Prerequisite: CSCI 102.
303 Design and Analysis of Algorithms(3, FaSp) Upper and lower bounds onsorting and order median. Deterministicand random computation, data structures,NP-completeness, cryptography, Turingmachines and undecidability. Prerequisite:CSCI 102 and CSCI 271.
320 Digital Media Basics for Multime-dia (3, FaSp) (Enroll in EE 320)
351 Programming and Multimedia onthe World Wide Web (3, Sp) HTMLprogramming for creating home pages,installation and modification of Webserver, writing programs that offerenhanced services, manipulation ofgraphics, video and sound. Prerequisite:CSCI 102L.
357 Basic Organization of ComputerSystems (3) (Enroll in EE 357)
Dr. Barry BoehmComputer Science
377 Introduction to Software Engi-neering (3, Fa) Introduction of prin-ciples, methods, techniques and tools formulti-person construction of multi-version software systems. Prerequisite:CSCI 102.
390 Special Problems (1-4) Supervised,individual studies. No more than oneregistration permitted. Enrollment bypetition only.
402x Operating Systems (3, FaSp)Basic issues in concurrency, deadlockcontrol, synchronization scheduling,memory management, protection andaccess control, inter-process communica-tion, and structured design. Laboratoryexperiences with Unix-like operatingsystem. Not available for graduate creditto computer science majors. Prerequisite:CSCI 201L or CSCI 455x; EE 357.
410x Translation of ProgrammingLanguages (3, Fa) Concepts of assem-blers, compilers, interpreters and theirdesign; macro assemblers, Polish notationand translation techniques; operatorprecedence parsing, push down au-tomata, code generation. Not available forgraduate credit to computer sciencemajors. Prerequisite: CSCI 201; corequisite:EE 357.
445 Introduction to Robotics (4, Fa)Designing, building and programmingmobile robots; sensors, effectors, basic con-trol theory, control architectures, some ad-vanced topics, illustrations of state-of-the-art. Teamwork; final project tested in a ro-bot contest. Junior standing or higher. Pre-requisite: CSCI 101L or C language pro-gramming.
450 Introduction to Computer Net-works (3) (Enroll in EE 450)
454L Introduction to Systems DesignUsing Microprocessors (4) (Enroll in EE454L)
455x Introduction to Programming Sys-tems Design (4, FaSp) Intensive introduc-tion to programming principles, discretemathematics for computing, software de-sign and software engineering concepts.Not available for credit to computer sciencemajors, graduate or undergraduate. Prereq-uisite: departmental approval.
457x Computer Systems Organization(3) (Enroll in EE 457Lx)
458 Numerical Methods (4) (Enroll inMATH 458)
459 Computer Systems and ApplicationsModeling Fundamentals (3, Sp) Tech-niques and tools needed to construct/evalu-ate models of computer systems and appli-cations. Analytical and simulation methods,capacity planning, performance/reliabilityevaluation, and decision-making. Prerequi-site: MATH 225, CSCI 201.
460 Introduction to Artificial Intelli-gence (3, FaSp) Concepts and algo-rithms underlying the understanding andconstruction of intelligent systems.Agents, problem solving, search, repre-sentation, reasoning, planning, communi-cation, perception, robotics, neuralnetworks. Junior standing. Prerequisite:CSCI 102L or CSCI 455x.
465 Probabilistic Methods in ComputerSystems Modeling (3) (Enroll in EE465)
477 Design and Construction of LargeSoftware Systems (3, Sp) Programmingmethodologies; intra-group and inter-group communication; software lifecycle;software economics. A large softwareproject is a central aspect of the course.Prerequisite: CSCI 201, CSCI 377.
480 Computer Graphics (3, FaSp)Hardware for interactive graphic systems;picture representations; data structuresfor graphics; picture processing tech-niques; languages for graphics; survey ofapplications such as animation andsimulation. Prerequisite: CSCI 102.
485 File and Database Management (3,FaSp) File input/output techniques,basic methods for file organization, filemanagers, principles of databases,conceptual data models, and querylanguages. Prerequisite: CSCI 201.
490x Directed Research (2-8, max 8)Individual research and readings. Notavailable for graduate credit. Prerequisite:departmental approval.
495 Senior Project (3) (Enroll in PHYS495)
499 Special Topics (2-4, max 8)Selected topics in computer science.
G R A D U A T E C O U R S E S
501 Numerical Analysis and Computa-tion (3)
502ab Numerical Analysis (3-3)
504ab Numerical Solutions of Ordinaryand Partial Differential Equations (3)
505ab Applied Probability (3-3)
510 Software Management andEconomics (3, Fa)
511 Personal Software Process (PSP)and Project (3, Fa)
520 Computer Animation and Simula-tion (3, Sp)
530 Security Systems (3)
533 Combinatorial Analysis andAlgebra (3)
541 Artificial Intelligence Planning (3,Irregular)
542 Neural Computation with ArtificialNeural Networks (3, Sp)
543 Software Multiagent Systems (3,Sp)
544 Natural Language Processing (3)
545 Robotics (3, Sp)
546 Intelligent Embedded Systems (3,Sp)
547 Sensing and Planning in Robotics(3, Fa)
548 Information Integration on theWeb (3, Sp)
549 Nanorobotics (3, Sp)
551 Computer Communications (3, Sp)
552 Logic Design and Switching Theory(3)
553 Computational Solution of Optimi-zation Problems (3)
554 Real Time Computer Systems (3)
555 Advanced Operating Systems (3,FaSp)
556 Introduction to Cryptography (3)
557 Computer Systems Architecture(3)
558L Internetworking and DistributedSystems Laboratory (3)
559 Mathematical Pattern Recognition(3-3)
560L Advanced Microcomputer-BasedDesign (3)
561 Foundations of Artificial Intelli-gence (3, Sp)
562 Empirical Methods in NaturalLanguage Processing (3, 2 years, Fa)
564 Brain Theory and Artificial Intelli-gence (3, Fa)
565 Compiler Design