Approved Non-CS Courses
M.S. students in the Computer Science general program can only take up to ONE (3-4 unit) course from approved EE, DSCI (formerly INF), MATH, DSO, or ISE courses. This policy still applies even if the course is cross-listed to the CSCI prefix from another academic unit. The list of approved non-CSCI courses can be found below. 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 the CS department for review. 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 (4 UNITS): Introduction to Computer Networks Network architectures; layered protocols, network service interface; local, wide area, wireless networks; Internet protocols; link protocols; addressing; routing; flow control; software defined network; multimedia networks.
- 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 (4 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 (4 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 546 (4 UNITS): Mathematics of High-Dimensional Data Modern developments in data representation/analysis, nonconvex optimization, high-dimensional probability, sketching, clustering, low-rank models, inverse problems, applications in imaging, machine learning, computer vision and neuroscience. Prerequisites: EE 503 and EE 510.
- EE 550 (4 UNITS): Data Networks: Design and Analysis 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 or EE 510.
- EE 554 (4 UNITS): Cyber-Physical Systems: A Computing Perspective Cyber-physical systems; models of computation; programming models; compiler analysis; automatic parallelization; heterogeneous computing and memory systems; multicores; interconnect; mapping; scheduling; real-time operating systems; reliability; fault-tolerance.
- 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 (4 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 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 581 (4 UNITS): Mathematical Foundations for System Design: Modeling, Analysis, and Synthesis Fundamental techniques underlying the methodologies for system design, from integrated circuits to cyber-physical systems. Design flows, fundamental classes of models, and verification and synthesis techniques. Recommended Preparation: Exposure to the fundamentals of calculus or discrete mathematics, some background in programming, and an inclination to formal reasoning.
- EE 588 (4 UNITS): Optimization for the Information and Data Science Convex sets, functions, and optimization problems. Basic convex analysis and theory of convex programming. Novel, efficient first-order algorithms. Applications in the information and data sciences. Prerequisite: EE 510.
- EE 597 (4 UNITS): Wireless Networks Introduction to wireless networking technologies; fundamental architectural and design principles used at all protocol layers; optimization, performance evaluation and implementation using mathematical analysis, simulations, and experiments. 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 638 (4 UNITS): Applications of Machine Learning for Medical Data Application of machine learning models and algorithms to medical applications, learning from data and classification of disorders. Overview of health data, collection with sensors, body area networks, brain image data and other publicly available medical applications data. Prerequisite: EE 660 or CSCI 561 or DSCI 552.
- 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.
Data Science
- DSCI 517 (4 UNITS): Research Methods and Analysis for User Studies
Introduction to research methods and data analysis techniques for human subject research; experimental research design, correlational research, data analysis, ensuring validity and ethics. - DSCI 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.
- DSCI 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: DSCI 519.
- DSCI 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: DSCI 519.
- DSCI 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.
- DSCI 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
- DSCI 529 (4 UNITS): Security and Privacy 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.
- DSCI 534 (4 UNITS): Biomedical Data Privacy Issues and Solutions Privacy concerns in healthcare; current law and regulations; existing and emerging technologies shaped by ethics, privacy considerations and medical implications; special attention given to genomic data.
- DSCI 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 DSCI 559.
- DSCI 552 (4 UNITS): Machine Learning for Data Science Practical applications of machine learning techniques to real-world problems. Uses in data mining and recommendation systems and for building adaptive user interfaces.
- DSCI 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: DSCI 551 and 552. Knowledge of probability, linear algebra, basic programming, and machine learning.
- DSCI 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.
- DSCI 555 (4 UNITS): Interaction Design and Usability 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.
- DSCI 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.
- DSCI 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: DSCI 551 OR CSCI 585; DSCI 552 OR CSCI 567.
- DSCI 560 (4 UNITS): Data Science 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. Prerequisite: DSO-545. Duplicates credit in former IOM-530.
Mechanical Engineering
- AME 556 (4 UNITS): Robot Dynamics and Control Introduction to dynamics and control of robotic systems including Model Predictive Control (MPC), Quadratic Program (QP)-based nonlinear control and trajectory optimization.
Math
- MATH 467 (4 UNITS): Theory and Computational Methods for Optimization Methods for static, dynamic, unconstrained, constrained optimization. Gradient, conjugate gradient, penalty methods. Lagrange multipliers, least squares, linear, nonlinear dynamic programming. Application to control and estimation.
- 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 502a/b(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 504a/b(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 505a/b(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 541a/b: (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: (4 UNITS): Optimization Theory and Algorithms: Numerical Optimization Numerical methods for multidimensional, non-linear optimization algorithms, simple and quadratic programming. Recommended Preparation: Multivariate Calculus, Linear Algebra, Computer Programming.
- ISE 529: (4 UNITS): Predictive Analytics Analytics for supervised and unsupervised statistical learning. Generalized linear models, discriminant analysis, support vector machines. Nonparametric classification, trees, ensemble methods, k-nearest neighbors. Principal components, clustering. Recommended Preparation: ISE 225 and equivalent working knowledge of a computer language.
- 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: (4 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 (4 UNITS): Performance Analysis Using Markov Models Random variables, stochastic processes, birth-and-death processes, continuous and discrete time Markov chains with finite and infinite number of states, renewal phenomena, queuing systems.
- ISE 633 (4 UNITS): Large Scale Optimization and Machine Learning Large scale optimization algorithms that arise in modern data science and machine learning applications. Stochastic Optimization, Accelerated Methods, Parallelization, Online Optimization, Randomized Linear Algebra .