University of Southern CaliforniaWebsiteAcademic Catalog
Computer ScienceDepartment Website
Majors
Courses
source 1source 2CSCI 102L: Fundamentals of Computation (2) intro
Fundamental concepts of algorithmic thinking as a primer to programming. Introduction to C++.
CSCI 103L: Introduction to Programming (4) intro
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++.
CSCI 104L: Data Structures and Object Oriented Design (4) intro
Introduces the student to standard data structures (linear structures such as linked lists, (balanced) trees, priority queues, and hashtables), using the C++ programming language.
CSCI 170: Discrete Methods in Computer Science (4) math
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.
CTIN 190: Introduction to Interactive Entertainment (4) humans
Critical vocabulary and historical perspectives on interactive entertainment; students articulate their own ideas, while wrestling with the larger conceptual issues at play within the field. Duplicates Credit in former CTIN 309
CSCI 201L: Principles of Software Development (4) softeng
Object-oriented paradigm for programming in-the-large in Java; writing sophisticated concurrent applications with animation and graphic user interfaces; using professional tools on team project.
CSCI 270: Introduction to Algorithms and Theory of Computing (4) algs
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.
CSCI 281: Pipelines for Games and Interactives (4) graphics
Explores the aesthetic development/technical implementation necessary to achieve unique, compelling, intuitive visual design in games. Students will develop group visual game design portfolios.
CTIN 289: Game Development Fundamentals (4) intro
Covers core skills for creating in a digital game engine, the role of prototyping in the game development and the use of version control systems.
CSCI 310: Software Engineering (4) softeng
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.
CSCI 350: Introduction to Operating Systems (4) sys
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.
CSCI 353: Introduction to Internetworking (4) sys
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.
CSCI 356: Introduction to Computer Systems (4) sys
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.
CSCI 360: Introduction to Artificial Intelligence (4) ai
Concepts and algorithms underlying the understanding and construction of intelligent systems. Agents, problem solving, search, representation, reasoning, planning, machine learning.
ITP 380: Video Game Programming (4) sys
Underlying concepts and principles required for programming video games (topics include vectors, transformations, 3-D math, geometric primitives, matrices).
ITP 382: Mobile Game Development (4) sys
Application of techniques used to develop games for mobile devices. Sprites, mobile input, mobile graphics and monetization.
CTIN 389: Game Development Principles (4) softeng
Concepts and projects relating to the implementation and presentation of digital games; core level design preproduction techniques.
CSCI 401: Capstone: Design and Construction of Large Software Systems (4) capstone
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.
CSCI 402: Operating Systems (4) sys
Concurrency, deadlock control, synchronization, process and thread scheduling, memory management, file systems, security and access control, communication and networking, distributed file systems, data management.
CSCI 404: Capstone: Creating Your High-Tech Startup (4) capstone
Capstone class in which students create their own technology startup, leveraging comprehensive CS knowledge and best industry practices.
CTIN 404L: User Research for Games (2) humans
Concepts and methods of usability assessment. The emphasis will be on understanding the issues surrounding game interfaces, and utilizing usability assessment methods.
CSCI 420: Computer Graphics (4) graphics
Computer graphics, OpenGL, 2D and 3D transformations, Bézier splines, computer animation, rendering including ray tracing, shading and lighting, artistic rendering, virtual reality, visualization.
CSCI 423: Native Console Multiplayer Game Development (4) sys
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.
CSCI 426: Game Prototyping (4) humans
Developing games or technology based on current and relevant special topics.
ITP 438: Advanced Gameplay Programming (4) sys
Advanced gameplay programming techniques for both single player and networked multiplayer games using an industry-standard game engine.
ITP 481: Game Programming Professional Development (2) graphics
Application of mathematics, physics, geometry and programming algorithms in the context of video game programming practice.
CTIN 485: Advanced Game Development (2) humans
Advanced concepts in 3-D game development: story and character progression, emergent game-play, comprehensive game mechanics and artificial intelligence.
ITP 485: Programming Game Engines (4) sys
Techniques for building the core components of a game engine; 2-D/3-D graphics, collision detection, artificial intelligence algorithms, shading, programming input devices.
CTIN 488: Game Design Workshop (4) humans
An introduction to making games. Students will explore the principles of game design through the entirely analog creation of card, board and tabletop games.
CTIN 489L: Intermediate Game Design and Production (4) softeng
A follow-up to the introductory game design class, this course will introduce more advanced concepts in game design and game theories, including ideation, digital prototyping and level design.
CSCI 491aL: Final Game Project (4) capstone
Design, iterative prototyping, and development of a 1st playable level.
CSCI 491bL: Final Game Project (2) capstone
Design, iterative stage 2 prototyping and development of a refined game.
CTIN 492L: Experimental Game Topics (4) sys
Development of a game around a custom-made physical interface; various technologies and techniques involved in a software/hardware integration; peripheral design.
MATH 125g: Calculus I (4) math
Limits; continuity, derivatives and applications; antiderivatives; the fundamental theorem of calculus; exponential and logarithmic functions.
MATH 126g: Calculus II (4) math
A continuation of MATH 125g: trigonometric functions; applications of integration; techniques of integration; indeterminate forms; infinite series; Taylor series; polar coordinates.
MATH 129: Calculus II for Engineers and Scientists (4) math
Trigonometric functions; applications of integration; techniques of integration; indeterminate forms; infinite series; Taylor series; polar coordinates. Engineering and physics applications.
MATH 225: Linear Algebra and Linear Differential Equations (4) math
Matrices, systems of linear equations, vector spaces, linear transformations, eigenvalues, systems of linear differential equations.
MATH 226g: Calculus III (4) math
Vectors, vector valued functions; differential and integral calculus of functions of several variables; Green’s theorem, Divergence theorem, Stoke’s theorem.
MATH 229: Calculus III for Engineers and Scientists (4) math
A continuation of MATH 129; vectors, vector valued functions; differential and integral calculus of functions of several variables; Green’s theorem. Engineering and physics applications.
MATH 235: Linear Algebra and Applications (4) math
Matrices, systems of linear equations, vector spaces, linear transformations, eigenvalues, linear differential equations, singular value decomposition, image compression, graphs, networks and linear programming.
MATH 407: Probability Theory (4) math
Probability spaces, discrete and continuous distributions, moments, characteristic functions, sequences of random variables, laws of large numbers, central limit theorem, special probability laws.
ENGR 102: Engineering Freshman Academy (2) engr
Introduction to the profession of engineering. Ethical, political and societal consequences of engineering innovations and the impact of engineering on everyday life. Team projects and guest lectures. Open to freshmen only.
EE 109L: Introduction to Embedded Systems (4) engr
Information representations, embedded programming, digital and serial I/O, analog-to-digital conversion, and interrupt mechanisms. Elementary analog, logic and state-machine design.
EE 141L: Applied Linear Algebra for Engineering (4) math
Introduction to linear algebra with engineering applications. Weekly laboratory exercises using MATLAB.
EE 364: Introduction to Probability and Statistics for Electrical Engineering and Computer Science (4) engr
Introduction to concepts of randomness and uncertainty: probability, random variables, statistics. Applications to digital communications, signal processing, automatic control, computer engineering and computer science.
CHEM 105aLg: General Chemistry (4) sci
Fundamental principles and laws of chemistry; laboratory work emphasizes quantitative procedures.
CHEM 105bL: General Chemistry (4) sci
Fundamental principles and laws of chemistry; laboratory work emphasizes quantitative procedures.
CHEM 115aLg: Advanced General Chemistry (4) sci
Equivalent to CHEM 105aLg - CHEM 105bL, but taught at a higher level for exceptionally well-prepared students.
CHEM 115bL: Advanced General Chemistry (4) sci
Equivalent to CHEM 105a - CHEM 105b, but taught at a higher level for exceptionally well-prepared students.
PHYS 151Lg: Fundamentals of Physics I: Mechanics and Thermodynamics (4) sci
Gateway to the majors and minors in Physics and Astronomy. Statics and dynamics of particles and rigid bodies, conservation principles, gravitation, simple harmonic oscillators, thermodynamics, heat engines, entropy.
PHYS 152L: Fundamentals of Physics II: Electricity and Magnetism (4) sci
Electrostatics, magnetostatics, electrical circuits, wave motion, sound waves, electromagnetic waves.
PHYS 161Lg: Advanced Principles of Physics I (4) sci
Gateway to the majors and minors in Physics and Astronomy. Introductory treatment intended for well-qualified students. Dynamics of particles and rigid bodies, conservation laws, wave motion, thermodynamics, heat engines, entropy.
PHYS 162L: Advanced Principles of Physics II (4) sci
Electrostatics, magnetostatics, electrical circuits, electric and magnetic properties of matter, Maxwell’s equations, electromagnetic waves, propagation of light.
BISC 120Lg: General Biology: Organismal Biology and Evolution (4) sci
In-depth survey of key topics related to advances in our knowledge of the diversity of life and evolution; origin of life; eukaryotes/prokaryotes; ecology.
BISC 121Lg: Advanced General Biology: Organismal Biology and Evolution (4) sci
Equivalent to BISC 120 , but taught at a higher level for exceptionally well-prepared students. Admission to the course by departmental approval only.
BISC 220Lg: General Biology: Cell Biology and Physiology (4) sci
In-depth survey of key topics related to advances in our knowledge of cellular biology and physiology; cell composition/metabolism; gene action; organism structure and function.
BISC 221Lg: Advanced General Biology: Cell Biology and Physiology (4) sci
Equivalent to 220L, but taught at a higher level for exceptionally well-prepared students. Admission to the course by departmental approval only.
CTAN 443L: Character Development for 3-D Animation and Games (2) graphics
Development, modeling, and animation with an emphasis on character setup features: rigging, skeletons, deformers and scripting. Applying principles of traditional animation to 3-D character rig/puppet.
CTAN 452: Introduction to 3-D Computer Animation (2) graphics
Lecture and laboratory in computer animation: geometric modeling, motion specification, lighting, texture mapping, rendering, compositing, production techniques, systems for computer-synthesized animation using Maya software.