# 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

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 450 (4 UNITS): Introduction to Computer Networks**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 451 (4 UNITS): Parallel and Distributed Computation__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 454L (4 UNITS): Introduction to System-On-Chip**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 457 (4 UNITS): Computer Systems Organization**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 477L (4 UNITS): MOS VLSI Circuit Design**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 503 (4 UNITS): Probability for Electrical and Computer 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 517 (4 UNITS): Statistics for Engineers**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 519 (3 UNITS): Speech Recognition and Processing for Multimedia**Introduces the basics of quantum computation and quantum information theory: quantum bits and registers, unitary gates, algorithms, error correction, and quantum cryptography.**EE 520 (4 UNITS): Introduction to Quantum Information Processing**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 532 (3 UNITS): Wireless Internet and Pervasive Computing**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 533 (3 UNITS): Network Processor Design and Programming**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 542 (3 UNITS): Internet and Cloud Computing**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 544 (3 UNITS): Radio Frequency Systems and Hardware****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.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 550 (4 UNITS): Data Networks: Design and Analysis**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 552 (3 UNITS): Asynchronous VLSI Design**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 553 (3 UNITS): Computational Solution of Optimization Problems**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 554 (3 UNITS): Real Time Computer Systems**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 555 (3 UNITS): Broadband Network Architectures**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 557 (4 UNITS): Computer Systems Architecture**Distribution free classification, discriminant functions, training algorithms; statistical classification, parametric and nonparametric techniques; artificial neural networks. Prerequisites: EE 503 and EE 441 or EE 510.**EE 559 (3 UNITS): Mathematical Pattern Recognition**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 569 (4 UNITS): Introduction to Digital Image Processing****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.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 588 (4 UNITS): Optimization for the Information and Data Science**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 597 (4 UNITS): Wireless Networks**Advanced topics in automatic speech recognition, speaker recognition, spoken dialogue, conversational multimedia interfaces. Recommended preparation: EE 503, EE 519, CSCI 544.**EE 619 (3 UNITS): Advanced Topics in Automatic Speech Recognition**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 652 (3 UNITS): Low-Power Wireless Networks**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 653 (3 UNITS): Advanced Topics in Microarchitecture**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 657 (3 UNITS): Parallel and Distributed Computing**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 658 (3 UNITS): Diagnosis and Design or Reliable Digital Systems**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.**EE 659 (3 UNITS): Interconnection Networks**

#### Data Science

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 519 (4 UNITS): Foundations and Policy for Information Security**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 523 (4 UNITS): Computer Systems Assurance**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 525 (4 UNITS): Trusted System Design, Analysis and Development**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 526 (4 UNITS): Secure Systems Administration**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 528 (4 UNITS): Computer Forensics**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 529 (4 UNITS): Security and Privacy__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 551 (4 UNITS): Foundations of Data Management**Practical applications of machine learning techniques to real-world problems. Uses in data mining and recommendation systems and for building adaptive user interfaces.**DSCI 552 (4 UNITS): Machine Learning for Data Science**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 553 (4 UNITS): Foundations and Applications of Data Mining**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 554 (4 UNITS): Information Visualization**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 555 (4 UNITS): Interaction Design and Usability Testing**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 556 (4 UNITS): User Experience Design and Strategy**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 558 (4 UNITS): Building Knowledge Graphs__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.**DSCI 560 (4 UNITS): Data Science Professional Practicum**

#### Data Science & Operations

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 528 (3 UNITS): Data Warehousing, Business Intelligence, and Data Mining**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.**DSO 530 (3 UNITS): Applied Modern Statistical Learning Methods**

#### Math

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 458 (4 UNITS): Numerical Methods**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 501 (3 UNITS): Numerical Analysis and Computation**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 502a/b(3 UNITS) Numerical Analysis****M**. 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. .**ATH 504a/b(3 UNITS): Numerical Solution of Ordinary and Partial Differential Equations**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 505a/b(3 UNITS): Applied Probability**Walks in graphs, random walks, group actions on boolean algebras, Young diagrams and tableaux, the Matrix-Tree Theorem.**MATH 533: (3 UNITS): Algebraic Combinatorics**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 541a/b: (3 UNITS): Introduction to Mathematical Statistics**Description available from instructor or MATH Department.**MATH 650 (3 UNITS): Seminar in Statistical Consulting**

#### Industrial & 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 511: (3 UNITS): Mechatronic Systems Engineering**Numerical methods for multidimensional, non-linear optimization algorithms, simple and quadratic programming. Recommended Preparation: Multivariate Calculus, Linear Algebra, Computer Programming.**ISE 520: (3 UNITS): Optimization Theory and Algorithms: Numerical Optimization**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 529: (3 UNITS): Predictive Analytics**Tree, path flow problems and solution techniques. Methods for minimal cost flows. Applications. Prerequisite: ISE 330 or ISE 536 or departmental approval.**ISE 532 (3 UNITS): Network Flows**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 536: (3 UNITS) Linear Programming and Extensions**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 538 (3 UNITS): Performance Analysis Using Markov Models****ISE 633 (3 UNITS): Large Scale Optimization and Machin****e****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 .