Approved Non-CS Courses

Effective Fall 2015, incoming M.S. students in the general program can only take up to ONE (3-4 unit) course from approved EE, INF, MATH, DSO, or ISE courses. The list of approved non-CS courses can be found below.

Students who began their program prior to Fall 2015 should check with their advisor and receive approval prior to taking a non-CS course.

A maximum of 4 units may be taken from approved 400-level courses in either Electrical Engineering or Computer Science; the remaining units must be approved courses at the 500 or 600 level.

Students in specializations should always check with their CS Advisor to ensure their non-CS course selection is appropriate for their program.

Petitioning to Approve a Non-CS Course:

If you are interested in taking an elective course for your CS Master’s degree and it is not in the below list of approved non-CS courses, then you must submit a typed letter explaining your reasons and attach a copy of the course syllabus with the letter. Please submit these documents to your Academic Advisor so that the CS department can review your petition for approval or denial. Make sure to include your full name, USC ID#, USC email, and your current GPA.  Petitions from students with a GPA below 3.50 will not be considered.  ITP courses will not be considered.

List of Approved Non-CS Courses:

Electrical Engineering

  • EE 450 (3 UNITS): Introduction to Computer Networks Network architectures; layered protocols, network service interface; local networks; long-haul networks; internal protocols; link protocols; addressing; routing; flow control; higher level protocols.
  • EE 451 (4 UNITS): Parallel and Distributed Computation Introduction to parallel programming techniques, models and optimization strategies; Application mapping to multi-core, accelerator, GPU and cloud platforms; High Performance Computing and Data Science applications. Prerequisite: EE 355 or CSCI 201. Recommended preparation: High-level programming.
  • EE 454L (4 UNITS): Introduction to System-On-Chip  Design flow, tools, and issues related to System/Network-on-Chip (S/Noc) design for real-time embedded systems with applications in mobile, cloud, aerospace, and medical electronics. Prerequisite: EE 354.
  • EE 457 (4 UNITS): Computer Systems Organization Register Transfer level machine organization; performance; arithmetic; pipelined processors; exceptions, out-of-order and speculative execution, cache, virtual memory, multi-core multi-threaded processors, cache coherence. (Note: Credit for this course is given only if the course is taken in Fall 2009 or later.)
  • EE 477L (4 UNITS): MOS VLSI Circuit Design Analysis and design of digital MOS VLSI circuits including area, delay and power minimization. Laboratory assignments including design, layout, extraction, simulation and automatic synthesis. Prerequisite: EE 354.
  • EE 503 (4 UNITS): Probability for Electrical and Computer Engineers Rigorous coverage of probability, discrete and continuous random variables, functions of multiple random variables, covariance, correlation, random sequences, Markov chains, estimation, and introduction to statistics.  Duplicates credit in EE 464 and EE 465.
  • EE 517 (4 UNITS): Statistics for Engineers Statistics and data analysis emphasizing computation and problem solving: confidence intervals, hypothesis tests, bootstrap and Monte Carlo estimation, regression, Bayesian and statistical learning techniques. Prerequisite: EE 503.
  • EE 519 (3 UNITS): Speech Recognition and Processing for Multimedia Speech production, acoustics, perception, synthesis, compression, recognition, transmission. Coding for speech, music, and CD-quality. Feature extraction. Echo cancellation. Audio, visual synchronization. Multimedia, internet use. Prerequisite: EE 483.
  • EE 520 (3 UNITS): Introduction to Quantum Information Processing Introduces the basics of quantum computation and quantum information theory: quantum bits and registers, unitary gates, algorithms, error correction, and quantum cryptography.
  • EE 532 (3 UNITS): Wireless Internet and Pervasive Computing Wireless Internet access technologies, 3G cellular systems, WAP and PKI protocols, mobile computing devices, network security for mobile computing devices, network security for mobile E-commerce, software and middleware for pervasive, cluster, grid, and Internet computing. Prerequisite: EE 450.
  • EE 533 (3 UNITS): Network Processor Design and Programming Understanding of network processor architecture, applications, and other relevant issues. Program network processor and test under realistic network environment. Design and deploy custom network processor. Prerequisite: EE 457. Recommended preparation: EE 450.
  • EE 542 (3 UNITS): Internet and Cloud Computing Principles and technologies of server clusters, virtualized datacenters, Grids/P2P, Internet clouds, social networks, Internet of Things (IoT), and their innovative applications. Recommended preparation: EE 450 or EE 457.
  • EE 544 (3 UNITS): Radio Frequency Systems and Hardware Elements of radio frequency communication systems: modulation/demodulation strategies, transmission-channel impairments, performance criteria, hardware, digital back-end, contemporary case studies. Prerequisite: EE 301, EE 348L, EE 364.
  • EE 550 (3 UNITS): Design and Analysis of Computer Communication Networks Applications of stochastic modeling and optimization techniques to communication network design and analysis. Data link control; performance models; multi-access channels; routing and flow control. Prerequisite: EE 450 and EE 503.
  • EE 552 (3 UNITS): Asynchronous VLSI Design Asynchronous channels and architectures; implementation design styles; controller synthesis; hazards, and races; Petri-nets; performance analysis, and optimization; globally asynchronous locally synchronous design. Open only to graduate students. Prerequisite: EE 477.
  • EE 553 (3 UNITS): Computational Solution of Optimization Problems Computer algorithms for system optimization. Search techniques, gradient methods, and parameter optimization in control systems. Optimization with constraints; linear and nonlinear programming. Random search techniques. Prerequisite: EE 441.
  • EE 554 (3 UNITS): Real Time Computer Systems 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 457 and CS455x.
  • EE 555 (3 UNITS): Broadband Network Architectures Broadband network architectures and services, technologies for high-speed access and core networks, optical infrastructure for layered network architectures, high performance switch and router architectures. Prerequisites: EE 450 and EE 503.
  • EE 557 (3 UNITS): Computer Systems Architecture Computer architecture from a design perspective: Pipelined processors, speculative execution, VLIW, vector processors, memory systems, interconnection networks, shared-memory and message-passing multiprocessors, chip multiprocessors. Prerequisite: EE 457.
  • EE 559 (3 UNITS): Mathematical Pattern Recognition Distribution free classification, discriminant functions, training algorithms; statistical classification, parametric and nonparametric techniques; artificial neural networks. Corequisites: EE 441 and EE 503.
  • EE 569 (4 UNITS): Introduction to Digital Image Processing Image sampling, 2-D image transform, image enhancement, geometric image modification, morphologic processing, edge detection, texture analysis, image filtering and restoration. Recommended Preparation: EE 503, C/C++ or Matlab programming ability.
  • EE 579 (3 UNITS): Wireless and Mobile Networks Design and Laboratory Mobile ad hoc networks: ad hoc and geographic routing, resource discovery, medium access control, IP-mobility, mobility modeling, wide-wireless networks. Lab: wireless LAN measurement, mobile-IP, ad hoc routing. Prerequisite: CSCI 551 or EE 550 or EE 555.
  • EE 597 (3 UNITS): Wireless Networks Introduction to wireless networking technologies; fundamental architectural and design principles used at all protocol layers; optimization and performance evaluation using mathematical analysis and simulations.  Prerequisite: EE 450 and EE 503; Recommended Preparation: EE 467, familiarity with Matlab and C programming.
  • EE 619 (3 UNITS): Advanced Topics in Automatic Speech Recognition Advanced topics in automatic speech recognition, speaker recognition, spoken dialogue, conversational multimedia interfaces. Recommended preparation: EE 503, EE 519, CSCI 544.
  • EE 652 (3 UNITS): Low-Power Wireless Networks Implementation of low-power wireless protocols for medium access, scheduling, multi-hop routing, congestion control, localization, synchronization. IP stack for the Internet of Things.  Wireless sensor network applications.  Recommended preparation: CSCI 402, strong programming skills, and experience with Linux. Prerequisite: EE 450.
  • EE 653 (3 UNITS): Advanced Topics in Microarchitecture Current research topics related to microprocessor architecture. Dynamically/statically scheduled processors, multithreading, chip multiprocessors, systems on a chip. Power performance, complexity, dependability issues. Impact of technology. Prerequisite: EE 557.
  • EE 657 (3 UNITS): Parallel and Distributed Computing Scalable multiprocessor systems and clusters, virtual machine, service oriented architecture, network-based computing, peer-to-peer, grid and cloud based storage and computing, case studies. Prerequisite: EE 557. Recommended preparation: EE 450.
  • EE 658 (3 UNITS): Diagnosis and Design or Reliable Digital Systems Fault models; test generation; fault simulation; self checking and self testing circuits; design for testability; fault tolerant design techniques; case studies. Prerequisite: Graduate standing.
  • EE 659 (3 UNITS): Interconnection Networks Theory, design and analysis of interconnection networks for multiprocessor systems. Study of direct and indirect topologies, deadlock-free routing, flow control, network interfaces, optical interconnects. Prerequisite: EE 557.


  • INF 519 (4 UNITS): Foundations and Policy for Information Security Threats to information systems; technical and procedural approaches to threat mitigation; policy specification and foundations of policy for secure systems; mechanisms for building secure security services; risk management. Recommended Preparation: Background in computer security preferred. Recommended previous courses of study include computer science, electrical engineering, computer engineering, management information systems, and/or mathematics.
  • INF 523 (4 UNITS): Computer Systems Assurance Assurance that an information system will behave as expected; assurance approaches for fielding secure information systems; case studies. Recommended Preparation: Prior degree in computer science, electrical engineering, computer engineering, management information systems, and/or mathematics. Some background in computer security preferred. Prerequisite: INF 519.
  • INF 525 (4 UNITS): Trusted System Design, Analysis and Development Analysis of computer security and why systems are not secure. Concepts and techniques applicable to the design of hardware and software for Trusted Systems. Prerequisite: INF 519.
  • INF 526 (4 UNITS): Secure Systems Administration The administrator’s role in information system testing, certification, accreditation, operation and defense from cyber attacks. Security assessment. Examination of system vulnerabilities. Policy development. Recommended preparation: Previous degree in computer science, mathematics, computer engineering, informatics, and/or information security undergraduate program. Also, it is highly recommended that students have successfully completed course work involving policy and network security. Prerequisite: CSCI 530.
  • INF 528 (4 UNITS): Computer Forensics Preservation, identification, extraction and documentation of computer evidence stored on a computer. Data recovery; File System Analysis; Investigative Techniques and Methodologies; Forensic Reports and Presentations
  • INF 529 (4 UNITS): Security and Privacy in Informatics Covers societal implications of information privacy and how to design systems to best preserve privacy. Recommended Preparation: General familiarity with the use of common Internet and mobile applications.
  • INF 551 (4 UNITS): Foundations of Data Management Function and design of modern storage systems, including cloud; data management techniques; data modeling; network attached storage, clusters and data centers; relational databases; the map-reduce paradigm. Recommended Preparation: understanding of operating systems, networks, and databases; experience with probability, statistics, and programming. Duplicates Credit in INF 559.
  • INF 552 (4 UNITS): Machine Learning for Data Informatics Practical applications of machine learning techniques to real-world problems. Uses in data mining and recommendation systems and for building adaptive user interfaces.
  • INF 553 (4 UNITS): Foundations and Applications of Data Mining Data mining and machine learning algorithms for analyzing very large data sets. Emphasis on Map Reduce. Case studies. Recommended Preparation: INF 551 and 552. Knowledge of probability, linear algebra, basic programming, and machine learning.
  • INF 554 (4 UNITS): Information Visualization Graphical depictions of data for communication, analysis, and decision support. Cognitive processing and perception of visual data and visualizations. Designing effective visualizations. Implementing interactive visualizations.
  • INF 555 (4 UNITS): User Interface Design, Implementation, and Testing Understand and apply user interface theory and techniques to design, build and test responsive applications that run on mobile devices and/or desktops. Recommended preparation: Knowledge of data management, machine learning, data mining, and data visualization.
  • INF 556 (4 UNITS): User Experience Design and Strategy The practice of User Experience Design and Strategy principles for the creation of unique and compelling digital products and services. Recommended Preparation: Basic familiarity with web development and/or graphic design using a digital layout tool.
  • INF 558 (4 UNITS): Building Knowledge Graphs Foundations, techniques, and algorithms for building knowledge graphs and doing so at scale. Topics include information extraction, data alignment, entity linking, and the Semantic Web. Recommended Preparation: INF 553 and Experience programming in Python. Prerequisite: INF 551 OR CSCI 585; INF 552 OR CSCI 567.
  • INF 560 (4 UNITS): Data Informatics Professional Practicum Student teams working on external customer data analytic challenges; project/presentation based; real client data, and implementable solutions for delivery to actual stakeholders; capstone to degree. Recommended Preparation: Knowledge of data management, machine learning, data mining, and data visualization.

Data Science & Operations

  • DSO 528 (3 UNITS): Data Warehousing, Business Intelligence, and Data Mining Introduction to data-warehousing, multidimensional database, on-line analytical processing, and survey of business intelligence applications that extract useful information from data warehouses. Business applications emphasized. Web registration open only to graduate business students. Duplicates credit in former IOM 528.
  • DSO 530 (3 UNITS): Applied Modern Statistical Learning Methods Overview of highly computational modern statistical learning methods; applications of logistic regression, neural networks, LASSO, trees, boosting and GAM, etc., to finance and marketing data. Web registration open only to graduate business students. Duplicates credit in former IOM-530.


  • MATH 458 (4 UNITS): Numerical Methods Rounding errors in digital computation; solution of linear algebraic systems; Newton’s method for nonlinear systems; matrix eigenvalues; polynomial approximation; numerical integration; numerical solution of ordinary differential equations. Prerequisite: linear algebra and calculus.
  • MATH 501 (3 UNITS): Numerical Analysis and Computation Linear equations and matrices, Gauss elimination, error estimates, iteration techniques; contractive mappings, Newton’s method; matrix eigenvalue problems; least squares approximation, Newton-cotes and Gaussian quadratures; finite difference methods. Prerequisite: Linear algebra and calculus.
  • MATH 502ab(2-3 UNITS) Numerical Analysis Computational linear algebra; solution of general nonlinear systems of equation; approximation theory using functional analysis; numerical solution of ordinary and partial differential equation. Prerequisite: MATH 425a and MATH 471.
  • MATH 504ab(3 UNITS): Numerical Solution of Ordinary and Partial Differential Equations. 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. 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(2-3 UNITS): Applied Probability A: Populations, permutations, combinations, random variables, distribution and density functions conditional probability and expectation, binomial, Poisson, and normal distribution; laws of large numbers, central limit theorem. B: Markov processed 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.
  • MATH 533: (3 UNITS): Algebraic Combinatorics Walks in graphs, random walks, group actions on boolean algebras, Young diagrams and tableaux, the Matrix-Tree Theorem.
  • MATH 541ab: (3-3 UNITS): Introduction to Mathematical Statistics A: Parametric families of distributions, sufficiency. Estimation: methods of moments, maximum likelihood, unbiased estimation. Comparison of estimators, optimality, information inequality, asymptotic efficiency. EM algorithm, jackknife and bootstrap. Prerequisite: Math 505a or Math 407 or Math 408. B: Hypothesis testing, Neyman-Pearson lemma, generalized likelihood ratio procedures, confidence intervals, consistency, power, jackknife and bootstrap. Monte Carlo Markov chain methods, hidden Markov models. Prerequisite: Math 541a.
  • MATH 650 (3 UNITS): Seminar in Statistical Consulting Description available from instructor or MATH Department.

Industrial & Systems Engineering

  • ISE 511: (3 UNITS): Mechatronic Systems Engineering Use of mechanical, electrical, and computer engineering, math, and computer science to design of high performance and sophisticated products and processes and systems involving mechatronic.  Recommended preparation: Bachelor’s degree in engineering or physical science, and preliminary knowledge of programming in C.
  • ISE 520: (3 UNITS): Optimization: Theory and Algorithms Conditions for optimality. Nonlinear programming algorithms for constrained and unconstrained problems. Special problems such as quadratic, separable, fractional, geometric programming. Prerequisite: MATH 225 or EE 441, or departmental approval.
  • ISE 529: (3 UNITS): Engineering Data Analytics Theory and methods of data analytics emphasizing engineering applications: multivariate statistics, supervised learning, classification, smoothing and kernel methods, support vector machines, discrimination analysis, unsupervised learning.
  • ISE 532 (3 UNITS): Network Flows Tree, path flow problems and solution techniques. Methods for minimal cost flows. Applications. Prerequisite: ISE 330 or ISE 536 or departmental approval.
  • ISE 536: (3 UNITS) Linear Programming and Extensions Linear programming models for resource allocation; simplex and revised simplex methods; duality; sensitivity; transportation problems; selected extensions to large scale, multiobjective, and special structured models. Prerequisite: MATH 225 or EE 441 or departmental approval.
  • ISE 538 (3 UNITS): Markov Models for Performance Analysis Random variables, stochastic processes, birth-and-death processes, continuous and discrete time Markov chains with finite and infinite number of states, renewal phenomena, queueing systems.