May 20, 2024  
USC Catalogue 2017-2018 
    
USC Catalogue 2017-2018 [ARCHIVED CATALOGUE]

Computer Science


Return to: USC Viterbi School of Engineering  

Henry Salvatori Computer Science Center 104
(213) 740-4494
FAX: (213) 740-7285
Email: csdept@usc.edu

Chair: Cyrus Shahabi, PhD

Faculty

Chan Soon-Shiong Chair: Maja Matarić, PhD (Neuroscience Center)

Dean’s Chair in Chemical Engineering and Materials Science: Priya Vashishta, PhD (Computer Science, Physics)

Andrew and Erna Viterbi Early Career Chair: Nora Ayanian, PhD

Andrew and Erna Viterbi Early Career Chair: Jernej Barbic, PhD

Gordon S. Marshall Chair in Engineering: Urbashi Mitra, PhD

Jack Munishian Early Career Chair; Zohrab A. Kaprielian Fellow in Engineering: Fei Sha, PhD

Niki and Max Nikias Chair in Engineering: Shrikanth (Shri) Narayanan, PhD

Northrup Grumman Chair in Engineering: Ramesh Govindan, PhD

Fletcher Jones Foundation Endowed Chair in Computer Science: Gaurav Sukhatme, PhD

David Packard Chair in Manufacturing Engineering: Stephen C-Y Lu, PhD (Mechanical Engineering, Industrial and Systems Engineering)

Charles Lee Powell Chair in Engineering: Viktor Prasanna, PhD (Electrical Engineering)

Charles Lee Powell Chair in Electrical Engineering and Computer Science: Massoud Pedram, PhD (Electrical Engineering)

Henry Salvatori Chair in Computer Science: Leonard M. Adleman, PhD

Andrew and Erna Viterbi Early Career Chair: Ilias Diakonikolas, PhD

Andrew and Erna Viterbi Early Career Chair: Hao Li, PhD

Philip and Cayley MacDonald Endowed Early Career Chair: Yan Liu, PhD

Dean’s Professor of Computer Science: Kevin Knight, PhD

Dean’s Professor of Computer Science: Ramakant Nevatia, PhD

Dean’s Professor of Computer Science: Gaurav Sukhatme, PhD

Helen N. & Emmett H. Jones Professorship in Engineering: Milind Tambe, PhD (Industrial and Systems Engineering)

Seeley G. Mudd Professor of Engineering: Shanghua Teng, PhD

TRW Professor of Software Engineering: Barry Boehm, PhD

WISE Jr. Gabilan Chair in Computer Science: Aleksandra Korolova, PhD

Professors: Leonard Adleman, PhD (Molecular Biology); Barry Boehm, PhD (Industrial and Systems Engineering); Leana Golubchik, PhD (Electrical Engineering); Ramesh Govindan, PhD; Ellis Horowitz, PhD (Electrical Engineering); Ming-Deh Huang, PhD; Laurent Itti, PhD (Neuroscience Center); Kevin Knight, PhD; Sven Koenig, PhD; Maja Matarić, PhD (Neuroscience Center); Dennis McLeod, PhD; Gerard Medioni, PhD (Electrical Engineering); Nenad Medvidovic, PhD; Aiichiro Nakano, PhD (Biomedical Engineering, Materials Science, Physics); Ulrich Neumann, PhD (Electrical Engineering); Ramakant Nevatia, PhD (Electrical Engineering); Paul Rosenbloom, PhD; Stefan Schaal, PhD (Neuroscience Center); Cyrus Shahabi, PhD (Electrical Engineering); Gaurav Sukhatme, PhD (Electrical Engineering); Milind Tambe, PhD (Industrial and Systems Engineering); Shanghua Teng, PhD

Associate Professors: Jernej Barbic, PhD; Shahram Ghandeharizadeh, PhD; William GJ Halfond, PhD; David Kempe, PhD; Fei Sha, PhD; Yan Liu, PhD

Assistant Professors: Nora Ayanian, PhD; Ilias Diakonikolas, PhD; Shaddin Dughmi, PhD; Aleksandra Korolova, PhD; Hao Li, PhD; Joseph Lim, PhD; Wyatt Lloyd, PhD; Haipeng Luo, PhD; Chao Wang, PhD

Joint Professors: Murali Annavaram, PhD (Electrical Engineering); Irving Biederman, PhD (Psychology, Neuroscience); Melvin Breuer, PhD (Electrical Engineering); Todd Brun, PhD; Tim Ting Chen, PhD (Biological Sciences); Michael Crowley, PhD (Information Technology Program); Morteza Dehghani, PhD (Psychology and Computer Science); Panayiotis Georgiou, PhD (Electrical Engineering; Kai Hwang, PhD (Electrical Engineering); Rahul Jain, PhD (Electrical Engineering); Rajiv Kalia, PhD (Physics); Carl Kesselman, PhD (Industrial and Systems Engineering); Bhaskar Krishnamachari, PhD (Electrical Engineering); C-C Jay Kuo, PhD (Signal and Image Processing); Stephen Lu, PhD (Industrial and Systems Engineering); Urbashi Mitra, PhD (Electrical Engineering); Shrikanth (Shri) Narayanan, PhD (Electrical Engineering); Hamid Nazerzadeh, PhD (Data Sciences and Operations); Viktor Prasanna, PhD (Electrical Engineering); Konstantinos Psounis, PhD; Xuehai Qian, PhD (Electrical Engineering); C.S. Raghavendra, PhD (Electrical Engineering); Benjamin Reichardt, PhD (Electrical Engineering); Remo Rohs, PhD (Computational Biology); Nicolas Schweighofer, PhD (Biokinesiology and Physical Therapy); Francisco Valero-Cuevas (Biomedial Engineering); Priya Vashishta, PhD (Chemical Engineering and Materials Science, Physics); Michael Waterman, PhD (Mathematics, Biological Sciences); Richard Weinberg, PhD (Cinematic Arts); John Wilson, PhD (Spaital Sciences, Computer Science); Xianghong Zhou, PhD (Biological Sciences)

Adjunct Professors: Danny Cohen, PhD; Paul Debevec, PhD; Rick Selby, PhD

Adjunct Associate Professors: David Chiang, PhD; Mary Hall, PhD; Stacy Marsella, PhD; Larry Matthies, PhD; Chris Mattmann, PhD; Zhengyou Zhang, PhD

Adjunct Assistant Professors: Aude Billard, PhD; David DeVault, PhD; Ethan Katz-Bassett, PhD; Auke Ijspeert, PhD; Marco Papa, PhD; Sethu Vijayakumar, PhD; Minlan Yu, PhD; Roger Zimmermann, PhD

Research Professors: Ewa Deelman, PhD; Yolanda Gil, PhD; Jonathan Gratch, PhD; John Heidemann, PhD; Randall Hill, PhD; Jerry Hobbs, PhD; Craig Knoblock, PhD; Premkumar Natarajan, PhD; Herbert Schorr, PhD; William Swartout, PhD

Research Associate Professors: Aram Galstyan, PhD; Andrew Gordon, PhD; Kristina Lerman, PhD; Robert Lucas, PhD; Daniel Marcu, PhD; Stacey Marsella, PhD; Wei-Min Shen, PhD; Pedro Szekely, PhD; Joseph Touch, PhD

Research Assistant Professors: Jose Luis Ambite, PhD; Ron Artstein PhD; Young Cho, PhD; Emilio Ferrara, PhD; Rafael Ferreira da Silva, PhD; Kallirroi Georgila, PhD; Anton Leuski, PhD; Jonathan May, PhD; Jelena Mirkovic, PhD; Stefan Scherer, PhD; Ari Shapiro, PhD; Evan Suma Rosenberg, PhD; David Traum, PhD; Ning Wang, PhD; Greg Ver Steeg, PhD

Professors of Engineering Practice: Victor Adamchik, PhD; Michael Zyda, PhD

Associate Professors of Engineering Practice: Jeffrey Miller, PhD; Clifford Neuman, PhD;

Lecturers: Claire Bono; William Cheng, PhD; Aaron Cote, PhD; Scott Easley, BA; Andrew Goodney, PhD; Saty Raghavachary, PhD (Senior Lecturer); Tatyana Ryutov, PhD (Senior Lecturer); Shawn Shamsian, PhD (Senior Lecturer); Michael Shindler, PhD; Sheila Tejada, PhD (Senior Lecturer)

Emeritus Professors: Michael A. Arbib, PhD (Biological Sciences, Biomedical Engineering, Electrical Engineering, Neuroscience and Psychology), George Bekey, PhD (Electrical Engineering, Biomedical Engineering), Aristides A.G. Requicha, PhD (Electrical Engineering)

Bachelor of Science

Undergraduate Program Educational Objectives

Graduates of the undergraduate program in Computer Science are expected to attain the following objectives within a few years of graduation:

  1. Graduates apply the computational and analytical approaches of computer science to their chosen professions.
  2. Graduates successfully engage in life-long learning to continue to be contributing members of their communities in fields within and outside the traditional scope of computer science.
  3. Graduates exhibit high professional and ethical standards to become productive leaders in society.

Undergraduate Program Criteria

The program leading to a Bachelor of Science in Computer Science includes at least one and one-third years of computer science that covers the fundamentals of algorithms, data structures, software design, concepts of programming languages and computer organization and software; provides an exposure to a variety of programming languages and systems, including at least one higher-level language; and includes advanced course work that builds on the fundamental course work to provide depth.

The program includes at least one year of science and mathematics, including at least one-half year of mathematics, including discrete mathematics. Additional mathematics might consist of calculus, linear algebra, numerical methods, probability, statistics, number theory, geometry, or symbolic logic. The science component develops an understanding of the scientific method and provides an opportunity to experience this mode of inquiry in courses for science or engineering majors that provide some exposure to laboratory work.

Physics/Computer Science Major Requirements for the Bachelor of Science

This program is intended for students with dual interests in physics and computer science who wish to complete the essential courses for both majors within their normal four year career. See the Physics and Astronomy  Department section for course requirements.

Bachelor of Science in Computer Engineering and Computer Science

See the listing under Computer Engineering Program .

Minor in 2-D Art for Games

This interdisciplinary minor integrates three major disciplines (fine arts, computer science and interactive media) to develop the 2-D visual skills necessary to conceptualize and illustrate images for games. For more information, see USC Roski School of Art and Design .

Minor in 3-D Art for Games

The focus of the 3-D Art for Games minor is a trans-disciplinary approach that incorporates the creative, technological and team-based communication skills necessary to develop 3-D art skills for video games. For more information, see USC Roski School of Art and Design .

Graduate Degrees

The requirements listed below are special to this department and must be read in conjunction with the general requirements  of the USC Viterbi School of Engineering for master’s degrees and the general requirements  of the USC Graduate School for PhD degrees. The graduate program in computer science provides intensive preparation in the basic concepts and techniques related to the design, programming and application of digital computers. Both the Master of Science and Doctor of Philosophy degrees are offered.

A Master of Science degree with specialization in software engineering is also offered. The program seeks to prepare students for an industrial leadership career in software engineering. It also serves as an introduction to this area for students who wish to pursue advanced studies and research leading to a PhD.

A Master of Science degree with specialization in intelligent robotics is also offered. This program seeks to prepare students for an industrial career in the development of computer systems for CAD/CAM (Computer-Aided Design and Manufacturing) and robotics. It also serves as an introduction to this area for students who wish to pursue advanced studies and research leading to a PhD. The emphasis is on the domain of mechanical, electromechanical and mechatronic products. (CAD for digital systems is covered by a separate program offered by the Electrical Engineering-Systems department.)

A Master of Science degree with a specialization in computer networks is offered. This specialization prepares students in the areas of computer communications, networks and distributed processing.

A Master of Science in Computer Science (Multimedia and Creative Technologies) is also offered.

A Master of Science in Computer Science (High Performance Computing and Simulations) is also offered.

A Master of Science in Computer Science (Data Science) is also offered.

A Master of Science in Computer Science (Game Development) is also offered.

A Master of Science in Computer Science (Computer Security) is also offered.

A Master of Science in Computer Science Dual Degree with Tsinghua University School of Information Science and Technology – China is also offered.

A Master of Science in Computer Science (Scientists and Engineers) is also offered for students with limited background in computer science.

Admission and Prerequisites

Admission is determined by the Office of Admission and the Viterbi School of Engineering, in consultation with the Computer Science Department. The applicant is required to have a bachelor’s degree or its equivalent from an accredited college or university; satisfactory scores on the verbal and quantitative portions of the aptitude test of the Graduate Record Examinations (one advanced test from computer science, mathematics or engineering is recommended); and a substantial background in computing constitutes a minimum requirement. Foreign students must earn a satisfactory score on the Test of English as a Foreign Language (TOEFL) or International English Language Testing System (IELTS).

Programs

Bachelor’s Degree

Minor

Joint Degree

Master’s Degree

University Certificate

Doctoral Degree

Courses

Computer Science

  • CSCI 100xg Explorations in Computing

    Units: 4
    A behind-the-scenes overview of the computational/algorithmic principles that form the basis of today’s digital society. Exploration areas include social media, web search, videogames and location-based services.
    Satisfies New General Education in Category F: Quantitative Reasoning
    Instruction Mode: Lecture, Lab
    Grading Option: Letter

  • CSCI 101L Fundamentals of Computer Programming

    Units: 3
    Terms Offered: FaSp
    Introduction to the design of solutions to computer solvable problems. Algorithm design, solution implementation using a high-level programming language, program correctness and verification.
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 102L Fundamentals of Computation

    Units: 2
    Fundamental concepts of algorithmic thinking as a primer to programming. Introduction to C++.
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 103L Introduction to Programming

    Units: 4
    Terms Offered: FaSp
    Basic datatypes, assignments, control statements (if, switch, for, while), input/output (printf, scanf, cin, cout), functions, arrays, structures, recursion, dynamic memory, file handling. Programming in C/C++.
    Corequisite: CSCI 109  or EE 109 
    Instruction Mode: Lecture, Lab Required, Quiz
    Grading Option: Letter

  • CSCI 104L Data Structures and Object Oriented Design

    Units: 4
    Terms Offered: FaSp
    Introduces the student to standard data structures (linear structures such as linked lists, (balanced) trees, priority queues, and hashtables), using the C++ programming language.
    Prerequisite: CSCI 103L ;
    Corequisite: CSCI 170 .
    Instruction Mode: Lecture, Lab Required, Quiz
    Grading Option: Letter

  • CSCI 109 Introduction to Computer Science

    Units: 2
    Terms Offered: FaSp
    An introduction to, and overview of, Computer Science; both as a discipline and a body of knowledge. 
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 110 Introduction to Digital Logic

    Units: 3
    (Enroll in EE 101 )
  • CSCI 170 Discrete Methods in Computer Science

    Units: 4
    Terms Offered: FaSp
    Sets, functions, series. Big-O notation and algorithm analysis. Propositional and first-order logic. Counting and discrete probability. Graphs and basic graph algorithms. Basic number theory.
    Prerequisite: CSCI 103L  and (CSCI 109  or EE 109L )
    Duplicates Credit in former CSCI 271
    Instruction Mode: Lecture, Discussion, Quiz
    Grading Option: Letter

  • CSCI 201L Principles of Software Development

    Units: 4
    Terms Offered: FaSp
    Object-oriented paradigm for programmingin- the-large in Java; writing sophisticated concurrent applications with animation and graphic user interfaces; using professional tools on team project.
    Prerequisite: CSCI 104L .
  • CSCI 270 Introduction to Algorithms and Theory of Computing

    Units: 4
    Terms Offered: FaSp
    Algorithm analysis. Greedy algorithms, divide and conquer, dynamic programming, graph algorithms. NP-completeness and basic recursion theory and undecidability. Sorting lower bounds. Number-theory based cryptography.
    Prerequisite: CSCI 104L  and CSCI 170 .
    Duplicates Credit in CSCI 303.
    Instruction Mode: Lecture, Quiz
    Grading Option: Letter

  • CSCI 280 Video Game Production

    Units: 4
    Terms Offered: FaSpSm
    (Enroll in ITP 280 )
  • CSCI 281 Pipelines for Games and Interactives

    Units: 4
    Terms Offered: FaSp
    Explores the aesthetic development/technical implementation necessary to achieve unique, compelling, intuitive visual design in games. Students will develop group visual game design portfolios.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 310 Software Engineering

    Units: 4
    Terms Offered: Sp
    Introduction to the software engineering process and software lifecycle. Covers project management, requirements, architecture, design, implementation, testing, and maintenance phase activities in team based projects.
    Prerequisite: CSCI 201L  
    Duplicates Credit in former CSCI 377
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 350 Introduction to Operating Systems

    Units: 4
    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. Duplicates credit in CSCI 402.
    Prerequisite: CSCI 201L  and (CSCI 356  or EE 354L )
    Duplicates Credit in CSCI 402 
    Instruction Mode: Lecture, Quiz
    Grading Option: Letter

  • CSCI 352L Computer Organization and Architecture

    Units: 3
    Terms Offered: Sp
    (Enroll in EE 352L )
  • CSCI 353 Introduction to Internetworking

    Units: 4
    Global Internet: design principles, layering, protocol design/analysis. Networked applications, Internet structure/architecture, Protocols for transport/congestion control, network layer/routing, link layer/MAC. Network security.
    Prerequisite: CSCI 201 ;
    Recommended Preparation: Familiarity with C and C++.
    Duplicates Credit in EE 450.
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 356 Introduction to Computer Systems

    Units: 4
    Computer organization; entity abstraction and representation; program execution; code optimization; memory usage; exception handling; processing control; computer performance; hands-on work done in C and assembly.
    Prerequisite: CSCI 104L 
    Recommended Preparation: Familiarity with memory management and parameter passing used in the C++ programming language
    Duplicates Credit in EE 352L 
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 357 Basic Organization of Computer Systems

    Units: 3
    (Enroll in EE 357 )
  • CSCI 360 Introduction to Artificial Intelligence

    Units: 4
    Concepts and algorithms underlying the understanding and construction of intelligent systems. Agents, problem solving, search, representation, reasoning, planning, machine learning.
    Prerequisite: CSCI 104L  and CSCI 170  
    Duplicates Credit in former CSCI 460
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 368 Programming Graphical User Interfaces

    Units: 3
    (Enroll in ITP 368 )
  • CSCI 380 Video Game Programming

    Units: 4
    Terms Offered: FaSpSm
    (Enroll in ITP 380 )
  • CSCI 390 Special Problems

    Units: 1, 2, 3, 4
    Supervised, individual studies. No more than one registration permitted. Enrollment by petition only.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 401 Capstone: Design and Construction of Large Software Systems

    Units: 4
    Max Units: max 8
    Terms Offered: FaSp
    Group project with an outside stakeholder to develop real-world software solutions to large-scale problems. Topics include software engineering, professional preparation, and recent computer science research.
    Prerequisite: CSCI 270   and CSCI 310  
    Duplicates Credit in the former CSCI 477a and CSCI 477b
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 402 Operating Systems

    Units: 4
    Terms Offered: FaSpSm
    Concurrency, deadlock control, synchronization, process and thread scheduling, memory management, file systems, security and access control, communication and networking, distributed file systems, data management.
    Recommended Preparation: CSCI 201L  or CSCI 455x ; CSCI 356  or EE 352L  
    Duplicates Credit in CSCI 350 
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 404 Capstone: Creating Your High-Tech Startup

    Units: 4
    Capstone class in which students create their own technology startup, leveraging comprehensive CS knowledge and best industry practices.
    Prerequisite: CSCI 201   and CSCI 270   and ITP 466  
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 410x Translation of Programming Languages

    Units: 3
    Concepts of assemblers, compilers, interpreters and their design; macro assemblers, Polish notation and translation techniques; operator precedence parsing, push down automata, code generation.
    Prerequisite: CSCI 201L 
    Credit Restriction: Not available for graduate credit to computer science majors
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 420 Computer Graphics

    Units: 4
    Terms Offered: FaSp
    Computer graphics, OpenGL, 2D and 3D transformations, Bézier splines, computer animation, rendering including ray tracing, shading and lighting, artistic rendering, virtual reality, visualization.
    Prerequisite: CSCI 104L  and (MATH 225  or (EE 141L  and (MATH 126  or MATH 127  or MATH 129 )))
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 423 Native Console Multiplayer Game Development

    Units: 4
    Implementation of AAA style multiplayer game running on consoles and DX11. Console development in native C++, console SDKs, engine components, gameplay, networking, data prediction/replication.
    Prerequisite: CSCI 522  or ITP 380 ;
    Recommended Preparation: ITP 485 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 424 Game Engine Tool Development

    Units: 4
    Tool development for a C++ console game. Animation export, compression. FBX parsing. Level editing, object live update tools. Debugging tools. Texture compression. Data Pipeline.
    Prerequisite: ITP 380 ;
    Recommended Preparation: ITP 485 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 425 Immersive Game Development

    Units: 4
    Implementation of a console multiplayer game leveraging input devices such as Kinect, PSMove, Console + IPad/PSVita, Cloud Computing, to achieve creative design.
    Prerequisite: CSCI 423 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 426 Game Prototyping

    Units: 4
    Developing games or technology based on current and relevant special topics.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 430 Introduction to Computer and Network Security

    Units: 4
    Terms Offered: Sp
    A broad overview of security threats and defenses, security systems and functionalities, as well as current security practices. Includes homeworks and in-class exercises to provide practical experience working with such systems.
    Prerequisite: CSCI 201 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 435 Professional C++

    Units: 3
    Terms Offered: Sp
    (Enroll in ITP 435 )
  • CSCI 439 Compiler Development

    Units: 3
    (Enroll in ITP 439 )
  • CSCI 445L Introduction to Robotics

    Units: 4
    Terms Offered: FaSpSm
    Designing, building and programming mobile robots; sensors, effectors, basic control theory, control architectures, some advanced topics, illustrations of state-of-theart. Teamwork; final project tested in a robot contest.
    Prerequisite: CSCI 103 .
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

    Crosslisted as EE-445
  • CSCI 450 Introduction to Computer Networks

    Units: 3
    Terms Offered: FaSpSm
    (Enroll in EE 450 )
  • CSCI 452 Parallel and Distributed Computation

    Units: 4
    (Enroll in EE 451 )
  • CSCI 454L Introduction to System-on-Chip

    Units: 4
    Terms Offered: Fa
    (Enroll in EE 454L )
  • CSCI 455x Introduction to Programming Systems Design

    Units: 4
    Terms Offered: FaSp
    Intensive introduction to programming principles, discrete mathematics for computing, software design and software engineering concepts.
    Prerequisite: departmental approval.
    Credit Restriction: Not available for credit to computer science majors, graduate or undergraduate.
    Instruction Mode: Lecture, Lab
    Grading Option: Letter

    Crosslisted as EE-455
  • CSCI 457 Computer Systems Organization

    Units: 3
    (Enroll in EE 457 )
  • CSCI 458 Numerical Methods

    Units: 4
    (Enroll in MATH 458 )
  • CSCI 459 Computer Systems and Applications Modeling Fundamentals

    Units: 3
    Terms Offered: Sp
    Techniques and tools needed to construct/evaluate models of computer systems and applications. Analytical and simulation methods, capacity planning, performance/reliability evaluation, and decision-making.
    Prerequisite: MATH 225 , CSCI 201 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 476 Cryptography: Secure Communication and Computation

    Units: 4
    Introduction to modern Cryptography; mathematical/algorithmic studies of methods for protecting information in computer and communication systems: Public-Key Cryptosystems, zero-knowledge proofs, data privacy.
    Prerequisite: CSCI 270 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 485 File and Database Management

    Units: 4
    Terms Offered: FaSp
    File input/output techniques, basic methods for file organization, file managers, principles of databases, conceptual data models, and query languages.
    Prerequisite: CSCI 201  
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 487 Programming Game Engines

    Units: 4
    Terms Offered: FaSp
    (Enroll in ITP 485 )
  • CSCI 490x Directed Research

    Units: 1, 2, 3, 4, 5, 6, 7, 8
    Max Units: 12.0
    Individual research and readings.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 491aL Final Game Project

    Units: 4
    Terms Offered: FaSpSm
    Design, iterative prototyping, and development of a 1st playable level.
    Registration Restriction: Open only to seniors.
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 491bL Final Game Project

    Units: 2
    Terms Offered: FaSpSm
    Design, iterative stage 2 prototyping and development of a refined game.
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 495 Senior Project

    Units: 3
    (Enroll in PHYS 495 )
  • CSCI 499 Special Topics

    Units: 2, 3, 4
    Max Units: 08
    Selected topics in computer science.
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 501 Numerical Analysis and Computation

    Units: 3
    (Enroll in MATH 501 )
  • CSCI 502a Numerical Analysis

    Units: 3
    (Enroll in MATH 502a , MATH 502b )
  • CSCI 502b Numerical Analysis

    Units: 3
    (Enroll in MATH 502a , MATH 502b )
  • CSCI 504a Numerical Solutions of Ordinary and Partial Differential Equations

    Units: 3
    (Enroll in MATH 504a , MATH 504b )
  • CSCI 504b Numerical Solutions of Ordinary and Partial Differential Equations

    Units: 3
    (Enroll in MATH 504a , MATH 504b )
  • CSCI 505a Applied Probability

    Units: 3
    (Enroll in MATH 505a , MATH 505b )
  • CSCI 505b Applied Probability

    Units: 3
    (Enroll in MATH 505a , MATH 505b )
  • CSCI 510 Software Management and Economics

    Units: 4
    Theories of management and their application to software projects. Economic analysis of software products and processes. Software cost and schedule estimation, planning and control.
    Instruction Mode: Lecture
    Grading Option: Letter

    Crosslisted as ISE 512
  • CSCI 511 Personal Software Process (PSP) and Project

    Units: 3
    Terms Offered: Sp
    Individual analysis, planning, development and maintenance of a software product or development artifact, using the principles and practices of PSP. Analysis of project’s lessons learned.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 512 Testing and Analysis of Software Systems

    Units: 4
    Introduces students to the topic of automated testing and analysis of large-scale modern software systems.
    Recommended Preparation: CSCI 571 ; Java programming skills; Linux system administration.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 520 Computer Animation and Simulation

    Units: 4
    Fundamental techniques of computer animation and simulation, knowledge and/or experience in the design, scripting, production and post-production stages of computer animation.
    Prerequisite: CSCI 420  or CSCI 580  
    Recommended Preparation: Familiarity with calculus, linear algebra, and numerical computation; C/C++ programming skills
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 521 Optimization: Theory and Algorithms

    Units: 3
    Terms Offered: Fa
    (Enroll in ISE 520 )
  • CSCI 522 Game Engine Development

    Units: 4
    Terms Offered: Fa
    The principles of developing game engines targeted at modern PC and game console hardware.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 523L Networked Games

    Units: 4
    Terms Offered: FaSpSm
    Design and implementation of networked games, from the origins of the supporting technologies in distributed systems, visual simulations, networked virtual environments, and shipped games.
    Recommended Preparation: CSCI 420  or CSCI 580  or an equivalent course in graphics.
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 524 Networked Artificial Intelligence

    Units: 4
    Networked game communication architectures, protocol development, architecting networked game AI clients/services. Character following, knowledge representation and reasoning, dynamic play strategies, search, learning, and planning.
    Recommended Preparation: CSCI 420  or CSCI 580  or an equivalent course in graphics
    Instruction Mode: Lecture, Lab
    Grading Option: Letter

  • CSCI 526 Advanced Mobile Devices and Game Consoles

    Units: 4
    Terms Offered: FaSpSm
    Explore the complex engineering process required to design and build a real-time graphics engine to support physical realism on mobile devices.
    Recommended Preparation: CSCI 420  or CSCI 580  or an equivalent course in graphics
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 529a Advanced Game Projects

    Units: 4
    Terms Offered: FaSp
    Team projects intended to address the multifaceted technical and creative challenges that are inherent to comprehensive game development.
    Recommended Preparation: CSCI 522  or CTIN 488 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 529b Advanced Game Projects

    Units: 2
    Terms Offered: FaSpSm
    Provides students in various areas of game specialization the practice of design, iterative stage 2 prototyping and development of a refined game.
    Prerequisite: CSCI 529a  
    Instruction Mode: Lecture, Lab
    Grading Option: Letter

  • CSCI 530 Security Systems

    Units: 4
    Terms Offered: FaSp
    Protecting computer networks and systems using cryptography, authentication, authorization, intrusion detection and response. Includes lab to provide practical experience working with such systems.
    Prerequisite: CSCI 402 .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 531 Applied Cryptography

    Units: 4
    Intensive overview of cryptography for practitioners, historical perspective on early systems, number theoretic foundations of modern day cryptosystems and basic cryptanalysis.
    Recommended Preparation: Programming in C/C++ (CSCI 103), Data structures (CSCI 104) 
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

  • CSCI 533 Algebraic Combinatorics

    Units: 3
    Terms Offered: Irregular
    (Enroll in MATH 533 )
  • CSCI 534 Affective Computing

    Units: 4
    Terms Offered: Sp
    Overview of the theory of human emotion, techniques for recognizing and synthesizing emotional behavior, and design application.
    Recommended Preparation: CSCI 561 
    Instruction Mode: Lecture
    Grading Option: Letter

    Crosslisted as PSYC 532
  • CSCI 535 Multimodal Probabilistic Learning of Human Communication

    Units: 4
    Principles and techniques to understand, build, and utilize multimodal machine learning algorithms through automatically understanding, recognizing, and analyzing phenomena of human communication.
    Recommended Preparation: CSCI 542   or CSCI 567   or CSCI 573   or equivalent
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 536 Linear Programming and Extensions

    Units: 3
    Terms Offered: Fa
    (Enroll in ISE 536 )
  • CSCI 537 Foundations of Data Management

    Units: 4
    Terms Offered: FaSp
    (Enroll in INF 551)
  • CSCI 540 Self-Organization

    Units: 4
    Massively distributed systems whose global behavior emerges from local interactions of components. Global to local compilation; robot swarms; formation of shapes/spatial patterns; self-assembly; programmable matter.
    Registration Restriction: Graduate standing in science or engineering
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 541 Foundations and Applications of Data Mining

    Units: 4
    (Enroll in INF 553)
  • CSCI 542 Neural Computation with Artificial Neural Networks

    Units: 3
    Terms Offered: Sp
    Computation and adaptation in networks of interconnected distributed processing units; classical and statistical approaches to neural nets; stateof- the-art neural network research.
    Recommended Preparation: basic statistics, linear algebra.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 544 Applied Natural Language Processing

    Units: 4
    Introduction to key components of human language technologies, including: information extraction, sentiment analysis, question answering, machine translation.
    Recommended Preparation: proficiency in programming, algorithms and data structures, basic knowledge of linear algebra.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 545 Robotics

    Units: 4
    Terms Offered: FaSpSm
    Fundamental skills for modeling and controlling of dynamic systems for robotic applications and graphics animations; control theory; kinematics; dynamics; sensor processing; real-time operating systems; robot labs.
    Recommended Preparation: Basic knowledge in linear algebra (matrices and vectors), calculus, programming in C/C++ or any another language or permission of the instructor
    Instruction Mode: Lecture, Lab
    Grading Option: Letter

    Crosslisted as EE-545
  • CSCI 548 Information Integration on the Web

    Units: 4
    Terms Offered: FaSpSm
    Foundations and techniques in information integration as it applies to the Web, including view integration, wrapper learning, record linkage, and streaming dataflow execution.
    Prerequisite: CSCI 561  
    Recommended Preparation: CSCI 585 and some programming experience
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 549 Nanorobotics

    Units: 3
    Terms Offered: Sp
    Introduction to nanotechnology. Nanorobotic systems: sensing; actuation and propulsion; control; communication; power; programming and coordination of robot swarms. Nanomanipulation and nanoassembly with atomic force microscopes.
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 550 Advanced Data Stores

    Units: 4
    Selected topics on highly available, elastic data stores. Topics include non-relational data models, simple interfaces and query languages, weak consistency and benchmarking techniques.
    Prerequisite: CSCI 485  or CSCI 585  
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 551 Computer Networking

    Units: 4
    Protocol design for computer communication networks, network routing, transport protocols, internetworking.
    Prerequisite: CSCI 350  (CSCI 353  or EE 450 ) and (CSCI 350  or CSCI 402 )
    Recommended Preparation: C-language programming 
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 552 Asynchronous VLSI Design

    Units: 3
    (Enroll in EE 552 )
  • CSCI 553 Computational Solution of Optimization Problems

    Units: 3
    (Enroll in EE 553 )
  • CSCI 554 Real Time Computer Systems

    Units: 3
    (Enroll in EE 554 )
  • CSCI 555L Advanced Operating Systems

    Units: 4
    Advanced topics in operating system research: new OS structures, novel memory management, communication, file system, process management, reliability and security techniques.
    Prerequisite: CSCI 350  or CSCI 402 
    Instruction Mode: Lecture, Lab Required, Quiz
    Grading Option: Letter

  • CSCI 556 Introduction to Cryptography

    Units: 4
    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 581 
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 557 Computer Systems Architecture

    Units: 3
    (Enroll in EE 557 )
  • CSCI 558L Internetworking and Distributed Systems Laboratory

    Units: 3
    Terms Offered: FaSp
    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 /CSCI 450 ;
    Recommended Preparation: CSCI 551  and CSCI 555 .
    Instruction Mode: Lecture, Lab Required
    Grading Option: Letter

  • CSCI 559 Mathematical Pattern Recognition

    Units: 3
    (Enroll in EE 559 )
  • CSCI 560 Information Visualization

    Units: 4
    Terms Offered: Fa
    (Enroll in INF 554 )
  • CSCI 561 Foundations of Artificial Intelligence

    Units: 4
    Terms Offered: FaSpSm
    Foundations of symbolic intelligent systems, search, logic, knowledge representation, planning, learning.
    Recommended Preparation: good programming and algorithm analysis skills
    Instruction Mode: Lecture, Discussion, Quiz
    Grading Option: Letter

    Crosslisted as EE 561
  • CSCI 563 Building Knowledge Graphs

    Units: 4
    Terms Offered: Fa
    (Enroll in INF 558)
  • CSCI 564 Brain Theory and Artificial Intelligence

    Units: 3
    Terms Offered: Fa
    Introduces neural modeling, distributed artificial intelligence and robotics approaches to vision, motor control and memory.
    Prerequisite: graduate standing.
    Instruction Mode: Lecture
    Grading Option: Letter

    Crosslisted as NEUR-535
  • CSCI 565 Compiler Design

    Units: 4
    Terms Offered: Sp
    Formal grammar; parsing methods and lexical analysis; code generation; local and global code optimization; and dynamic allocation.
    Prerequisite: CSCI 455x .
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 567 Machine Learning

    Units: 4
    Terms Offered: Fa
    Statistical methods for building intelligent and adaptive systems that improve performance from experiences; focus on theoretical understanding of these methods and their computational implications.
    Recommended Preparation: Undergraduate level training or course work in linear algebra, multivariate calculus, basic probability and statistics; an undergraduate level course in Artificial Intelligence may be helpful but is not required.
    Instruction Mode: Lecture, Discussion
    Grading Option: Letter

    Crosslisted as ISE-568
  • CSCI 568 Requirements Engineering

    Units: 4
    Techniques for successful requirements analysis and requirements engineering (RE) of software-intensive systems. Systematic process of developing requirements through cooperative problem analysis, representation, and validation.
    Prerequisite: CSCI 577a
    Instruction Mode: Lecture
    Grading Option: Letter

  • CSCI 569 Social Media Analytics

    Units: 4
    Introduction to quantitative analysis of social data. Topics include social network analysis, text analysis, machine learning and statistical methods and they are used to study influence, information diffusion, sentiment analysis and prediction of individual and social behavior online.
    Recommended Preparation: statistics, AI and/or machine learning, knowledge of at least one programming language (Java, C++, Python)
    Instruction Mode: Lecture
    Grading Option: Letter

Page: 1 | 2