# Electrical Engineering & Computer Science Graduate Courses

## Electrical Engineering

Discipline | Course Number | Name of Course | Course Description |
---|---|---|---|

EECE | 6005 | INTELLIGENT INDUSTRIAL CONTROLLERS | Study the current technology and use of intelligent industrial controllers utilized in electric energy, manufacturing, material handling / processing, mass transit, and other industrial plants. Selection and programming of Programmable Automation Controllers (PACs), Programmable Logic Controllers (PLCs), and Distributed Control Systems (DACs) are covered. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-MS, EE-MENG. |

EECE | 6007 | BIOMEDICAL MICROSYSTEMS | Principles of biomedical microsystems will be discussed, including medical instrumentation, microsurgical tools, nucleic acid structure and analysis, cell structure and culture, biosensors, point-of-care systems, and microfluidic lab-on-a-chip. Examples and case studies of these microsystems will be included. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, CMPE-MS, EE-MENG, EE-MS. |

EECE | 6008 | FUNDAMENTALS OF MEMS | The fundamental principles and technologies of Micro-Electro-Mechanical Systems (MEMS) will be covered, including the design, analysis and microfabrication of both basic mechanical microstructures and microsensors for smart machines on semiconductor. The applications of MEMS as an electrical as well as mechanical microsystem will be introduced, and CMOS and electronic circuits integrated with the microsystem for signal conditioning will be described. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. |

EECE | 6010 | DATABASE MANAGEMENT THEORY | Database formal architectures emphasizing modeling and theory. Formal methods for database architectures; relational, hierarchical, object, object-relational and network; data dependencies, normalization, integrity constraints, concurrency, heterogeneous systems. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans CSE-PHD, DASC20-GC, CMPE-MS, CSS-MS, CS-MENG, CMPE-MENG. |

EECE | 6011 | RF/MICROWAVE COMMUNICATIONS | RF and microwave components, circuits and systems for wireless communications including microwave frequencies. Introduction to basic concepts of microwave communication including satellite communications, cellular phones and radar. Microwave components such as transmission lines, wave guides, microwave passive and active devices, microwave circuits, antennas and antenna arrays. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MS. |

EECE | 6012 | CONTEMPORARY INSTRUMENTATION & AUTOMATION | Instrumented processes with defined-accuracy multisource decision and multivariable control for complex process systems. Contemporary case studies. Pre-Requisite: To take this course you must: Be enrolled in the following Program 20MAS. |

EECE | 6013C | EMBEDDED SYSTEMS ENGINEERING I | Embedded systems design and development. High-level design tools, system-level design, and designing for testability will be emphasized. Pre-Requisite: To take this course you must: Be enrolled in the following Program 20MAS. |

EECE | 6014C | EMBEDDED SYSTEMS ENGINEERING II | Reliability, safety, and security for embedded systems. Design, implementation, and testing of an embedded systems project to meet specific safety and/or security constraints derived from industry and/or government standards. Pre-Requisite: To take this course you must: Have taken the following Course EECE6013C min grade C/Pass. Be enrolled in the following Program 20MAS. |

EECE | 6015C | INSTRUMENTATION AND INDUSTRIAL CONTROL | This course covers topics related to selection and utilization of analog, digital and piezoelectric sensors in electric energy, power system, manufacturing and other industrial plants. Students will learn how to connect these sensors to digital controllers and program the controllers for electrometrical device monitoring and protection. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MENG, EE-MS. |

EECE | 6016C | ELECTRIC MACHINES AND DRIVES | The course first covers 3-phase power systems, including phase sequence, wye and delta loads, and 3-phase transformers. Next induction and synchronous motors are covered, followed by DC motors and generators. Finally, synchronous generators are covered. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. |

EECE | 6017C | EMBEDDED SYSTEMS | Embedded system design and development. High-level design tools, system-level design, and designing for testability will be emphasized. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans CSE-PHD, CMPE-MS, CMPE-MENG. |

EECE | 6018 | MICROFABRICATION OF SEMICONDUCTOR DEVICES | The fabrication of semiconductor devices will be described, starting with basic properties (such as crystal structure, particle motion, phase diagrams, defects) and continuing to the main microfabrication processes (growth, oxidation, diffusion, etc.). Both fundamental and practical aspects of microfabrication will be covered. Examples of microfabrication processes relevant to both bipolar and MOS transistors will be included. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. |

EECE | 6019 | PROBABILITY AND RANDOM PROCESSES | The course will provide an introduction to random variables, stochastic processes and stochastic modeling techniques. The first part of the course will cover the fundamentals of random variables. The second part will introduce stochastic processes and methods for their analysis and estimation, leading into issues of modeling in the context of linear systems and Markov chains. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. |

EECE | 6020 | ELECTROMAGNETIC ENERGY CONVERSION | Introduction to methods for analysis of electromagnetic devices under transient and repetitive steady-state conditions in electric energy conversion systems. Pre-Requisite: To take this course you must: Be enrolled in the following Program 20MAS. |

EECE | 6022C | QUANTUM SYSTEMS | This course will introduce the fundamental principles of quantum mechanics but the main focus of the class will be on practical applications. |

EECE | 6023C | SECURITY AND TRUST IN CYBERPHYSICAL SYSTEMS | Cyber-physical systems integrate computation, communication, and physical processes. They interact with the world in real time. With the growth of powerful networks and the Internet of Things (IoT), these systems are charged with performing many tasks for which reliability, safety, and security are critical. This course focuses on the development of trusted cyber-physical systems, which can be counted on to perform their tasks at defined levels of reliability, safety, and security. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6024 | INTRODUCTION TO DIGITAL SIGNAL PROCESSING | Representation and processing of signals using digital techniques; time and frequency domain analyses, sampling, the DFT and the FFT, design and implementation of digital filters. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6025 | POWER ELECTRONICS | Study of the capabilities and limitations of power semiconductor switching devices. Analysis, design and simulation of common circuit topologies for power conditioning and processing, converters, and switch-mode power supplies. Power electronics applications are also discussed. - Prerequisite Definition: To take this course you must: Have taken the following Course EECE6016C. Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. |

EECE | 6026 | INTRODUCTION TO COMMUNICATION SYSTEMS | Digital modulation and demodulation, coding and decoding, equalization, and their applications in modern communication systems. Pre-Requisite: To take this course you must: Have taken the following Courses 20EECE619 min grade C-, or EECE6019 min grade C-. |

EECE | 6027 | DIGITAL COMMUNICATION SYSTEMS | Concepts and topics in physical layer of modern digital communication systems. Topics include source coding, channel coding, channel modeling, digital signaling, diversity techniques, multicarrier and spread spectrum communication systems. |

EECE | 6028 | INTRODUCTION TO NANOELECTRONICS | Emerging technologies in nanofabrication and nanoscale electronic devices. Nanoscale silicon MOSFETs, multi-gate MOSFETs, SiGe bipolar transistors, III-V FETs, carbon nanotubes, spintronics, nanowires and device applications, organic and molecular electronics, nanolithography, nanofabrication, nanoscale imaging. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6029 | OPERATING SYSTEMS | Function, design, and integration of the parts of an operating system. Policies for scheduling and page-replacement. Non-preemptable resource allocation, deadlock, starvation, live lock, access control, mutual exclusion and concurrency. - Prerequisite Definition: To take this course you must: Be enrolled in the following Program 20MAS. Be enrolled in the following Plan CSE-PHD. |

EECE | 6030 | TRUST IN DIGITAL HARDWARE | Introduction to trust and related aspects of digital hardware systems, correctness vs. trust, formal verification, testing, Trojan insertion and detection, reverse engineering, logic obfuscation, reliability, side-channel attacks, device tracking methods. Required Pre-requisites by topic: Digital logic design, Programming skills (Python, C or C++) Desired Pre-requisites: Circuit analysis, Electronics, Computer organization - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans CSE-PHD, EE-PHD, CMPE-MS, CSS-MS, EE-MS. |

EECE | 6031 | INTERCONNECTION NETWORKS | Parallel Computing Models, Interconnection Networks, Networks-on-Chip and System-on-Chip. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6032 | SOFTWARE TEST & QUALITY ASSURANCE | Fundamentals of software quality, quality assurance, verification and validation perspectives. Software testing types and concepts, test planning and management, software inspection. Formal methods, quantifiable improvement, software reliability, and global software engineering. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Plans CSE-PHD, CMPE-MS, CS20-MS, CMPE-MENG, EE-MS. |

EECE | 6033 | GPS PRINCIPLES | description |

EECE | 6034C | HARDWARE DESIGN WITH FPGAS-SECURE AND TRUSTWORTHY SYSTEMS | Hardware Design with FPGAs: Secure and Trustworthy Systems. Credits 4. Introduction to HDL skills and techniques for designing Secure and Trustworthy digital combinational, synchronous, and asynchronous circuits on FPGAs. Includes topics in FPGA circuit design, components and architectures, program storage technologies, and CAD tools. - Prerequisite Definition: To take this course you must: Be at least a Graduate. |

EECE | 6035 | INFORMATION THEORY | Concepts and topics in physical layer of modern digital communication systems. Topics include lossless source coding, data compression, lossy source coding, channel coding, and multiuser information theory. - Prerequisite Definition: To take this course you must: Have taken the following Course EECE6019 min grade B-. |

EECE | 6036 | INTELLIGENT SYSTEMS | Intelligent systems can be characterized by the ability to (i) extract pertinent information from irrelevant details, (ii) learn from examples and generalize this knowledge, and (iii) draw inferences from incomplete information. This course focuses on the underlying theory of intelligent systems. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6038C | ADVANCED MICROSYSTEM DESIGN | Examination of microprocessors and their uses. Microprocessor architectures and register sets, types of memory, interfacing using FPGA technology. Use of assembly language to create binary machine code. Link to high level languages. Development of a microsystem from application-specific requirements. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6039C | ADVACED MICROSYSTEMS I | Examination of microcontrollers and their uses. Understanding of micro controller architectures, register sets, types of memory and interfacing to standard electronic peripherals. Development of system integration skills including printed circuit board design and modular hardware/software development. Pre-Requisite: To take this course you must: Have taken the following Course EECE4038C min grade C/Pass. Be enrolled in the following Program 20MAS. |

EECE | 6040C | ADVANCED MICROSYSTEMS II | Extends basic micro controller design concepts toward the implementation of systems with common electronic interfaces. Explores the generation of video signal, management of disk memory systems and the conversion from digital music file formats to an analog signal suitable for play though standard headphones. Demonstration of advanced micro controller proficiency through the design and implementation of functional systems from general problem statements. Pre-Requisite: To take this course you must: Have taken the following Course EECE6039C min grade C/Pass. Be enrolled in the following Program 20MAS. |

EECE | 6041C | MICROFABRICATION LAB | Silicon semiconductor devices, NMOS and MEMS devices, surface or bulk micromachining techniques, photolithography, oxidation, thin film deposition, boron doping, ion implantation, isotropic and anisotropic etching, wafer bonding, and NMOS and MEMS device characterization. |

EECE | 6042 | DIGITAL IMAGE PROCESSING | Digital image foundation and characterization, discrete transforms, image enhancement, encoding, compression and restoration. Prerequisite: senior or graduate standing. |

EECE | 6043 | OPTIMIZATION METHODS AND MODELS | This course presents the fundamental methods and modeling techniques for optimization methods applicable to deterministic systems models. Topics and methods in functional, constrained and unconstrained optimization are covered, as well as various mathematical programming paradigms. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6047 | DYNAMIC OPTIMIZATION | This course focuses on the process of determining control and state histories that optimize a specific performance objective while satisfying any constraints on the motion of the system. In particular, two classes of indirect and direct methods will be discussed. Specific numerical techniques such as shooting methods, collocation methods, and dynamic programming will be used to solve problems with nonlinear dynamics. |

EECE | 6048C | OPTICS FOR ENGINEERING | Fundamental topics in optics and optical materials used frequently in engineered devices and systems. Theory of light propagation and interaction with materials, geometrical optics, - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6050 | COMPOUND AND ORGANIC SEMICONDUCTOR PHYSICS | This course will introduce the fundamental principles and concepts of solid state physics with application to metals, elementary and compound semiconductors and organic materials. Those principles will be applied to the study of a wide variety of devices, including an introduction to the concept of bandgap engineering using heterostructures. |

EECE | 6052 | SEMICONDUCTOR PHOTONICS | Photonic devices utilizing semiconductors will be described including light emitting devices, light detecting devices, and light waveguiding devices. Both device and material considerations will be covered. Applications of photonic devices to communications, computing, sensing, and energy generation will be included. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6061 | COMPUTER NETWORK EXPLOITATION | This course will familiarize students with principles of computer network attack and defense including attacker motivations, common categories of exploits, and methods to defend against attacks. Topics include historical overview of notable attacks, network enumeration, shellcode construction, exploitation of vulnerabilities including printf, stack and heap overflows; defense mechanisms including input validation, stack canaries, DEP and ASLR. |

EECE | 6063 | DISTRIBUTED SYSTEMS | This course presents an in-depth analysis of the issues affecting the design, deployment and utilization of systems composed of computing nodes that communicate by means of general-purpose computing networks. Topics include communications protocols, timing & synchronization, error detection/recovery, security, data modeling, and data retrieval strategies. |

EECE | 6078C | BIOMICROFLUIDIC SYSTEMS | Principles of microfluidic systems design and fabrication will be described. The labs will be focused on development of a passive microfluidic mixer. Each student group will develop a micromixer design, simulate and optimize it in CFD software, fabricate it, and characterize it. Lectures will focus on operation of microfluidic systems and their applications to biology and medicine. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6080C | INTRODUCTION TO VLSI DESIGN | Introduces techniques and tools for scalable VLSI design and analysis. Emphasis is on circuit and physical design and on performance analysis. Includes lab experiments with hands-on usage of CAD tools. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6082C | VLSI DESIGN FOR TEST AND POWER | Fault modeling, automatic test pattern generation, fault simulation, design for testability, built-in self-testing, memory testing, delay testing. Power sources, power estimation and analysis, power optimization for different levels (layout, gate, register-transfer, architectural), low-leakage design, low-power memory design. |

EECE | 6083 | COMPILER THEORY AND PRACTICE | Scanning, parsing, semantics analysis. Runtime organization and code generation. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 6086C | VLSI DESIGN AUTOMATION | VLSI design automation, layout synthesis and logic synthesis, partitioning, placement and routing algorithms. Logic synthesis, technology mapping and retiming algorithms. Introduction to formal verification. Course includes laboratory sessions and software development. |

EECE | 6088 | PRINCIPLES OF VLSI DEVICES | This course teaches operating principles and electrical testing techniques of logic and memory devices that are used in modern VLSI technology. Topics include complementary |

EECE | 6090 | FLEXIBLE ELECTRONICS | This course will introduce the emerging field of electronics, including the mechanical theory for flexible electronics, patterns and fabrication of flexible electronics, flexible circuits, flexible sensors, etc. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 7001 | SECS SEMINAR | Discussion of current research topics in the field and of ongoing faculty research. Introduction to essential research skills such as researching a topic, writing a technical paper, and making a technical presentation. |

EECE | 7002 | SECS SEMINAR | Discussion of current research topics in the field and of ongoing faculty research. Introduction to essential research skills such as researching a topic, writing a technical paper, and making a technical presentation. |

EECE | 7004 | PRACTICAL EXPERIENCE | This course is designed to provide the EECS graduate student with research experience either on campus or off-campus in industry. This course is required for all MS and PhD students. The advising faculty member approves the suitability of the work experience and the employment period and may also waive this requirement. |

EECE | 7011 | ELECTROMAGNETIC SYSTEMS | Advanced theory of electromagnetic phenomena, devices and systems for graduate students. Covers the fundamentals of electromagnetism necessary for other EE graduate required courses. |

EECE | 7014 | ELECTROFLUIDICS AND APPLICATIONS | The effect of electric fields on fluid flow will be described in some detail, including the role of fluid electrical and mechanical properties, ions and molecules in the fluid, geometry effects, etc. The course will focus on two major areas of electro-fluidics: electrowetting and electrospinning. Associated applications will be discussed, including electrowetting lenses and displays, electrospinning of polymer nanofibers for textiles, filters, etc. |

EECE | 7017 | TRUSTED EMBEDDED SYSTEMS | Embedded systems, which enable the "Internet of Things," are becoming more and more common in consumer products, medical devices, automobiles, airplanes, transportation systems, defense systems, financial systems, and manufacturing. It is imperative that these systems be reliable, secure, and appropriately responsive to the task at hand. In this course the focus is on design and development techniques and tools for ensuring that the embedded systems of today and of the future will meet all the stringent requirements placed upon them. Pre-Requisite: To take this course you must: Have taken the following Courses EECE6014C min grade C/Pass, or EECE6040C min grade C/Pass. Be enrolled in the following Program 20MAS. |

EECE | 7017C | TRUSTWORTHY EMBEDDED SYSTEMS | As embedded systems take on more and more responsibilities in such fields as consumer products, medical devices, automobiles, airplanes, defense systems, financial systems, and manufacturing, the need to ensure that they behave as expected becomes more and more critical. These systems must be reliable, secure, and appropriately responsive to the task at hand. This course focuses on design and development techniques and tools for ensuring that the embedded systems of today and of the future will meet all the stringent requirements placed upon them. |

EECE | 7019 | BIO-INSPIRED ROBOTICS | This course aims at introducing the field of bioinspired robotics. The course will demonstrate how engineers can build robots to understand biological systems (both animals and humans). Conversely, the course will highlight how a better understanding of biological systems allows us to build robots that are more robust against changes in the environment and exhibit other desirable properties of biological systems. |

EECE | 7020 | ELECTRIC ENERGY AND POWER ELECTRONICS | Study the capabilities and limitations of current technology used in electric energy conversion utilizing the power electronic devices. Design and analysis topics for use of power semiconductor circuits in electric energy are covered. - Prerequisite Definition: To take this course you must: Have taken the following Courses EECE5116C min grade B-, or EECE5120 min grade B-, or EECE6016C min grade B-, or EECE6020 min grade B-. Be enrolled in one of these Plans EE-PHD, EE-MS, EE-MENG. Be enrolled in the following Sub Plan *EE-DL. |

EECE | 7021 | PLASMA PROCESSING MATERIALS | Introduction to the basic concepts of plasma-assisted methods and technology for microelectronic fabrication. Plasma background, plasma assisted etching, plasma enhanced deposition, current applications. |

EECE | 7022 | WIRELESS COMMUNICATION ELECTRONICS | Introduction to advanced level wireless communication concepts including passive and active components, circuits and systems including optical principles, Fundamentals of amplifiers, oscillators, antennas, electronically controlled phased arrays, designs and simulations. - Prerequisite Definition: To take this course you must: Have taken the following Courses EECE6011 min grade C/Pass, EECE7011 min grade C/Pass. |

EECE | 7023 | THERMO-ELECTRIC ENERGY CONVERSION | Thermoelectric energy conversion devices and charge carrier transport; thermoelectric effects, wearable energy harvesting; waste heat recovery system, thermoelectric materials, electron/thermal transport in semiconductors. |

EECE | 7026 | BIOCHIPS AND LAB-ON-CHIPS | Fundamentals of micro and nano-fabrication of biochips and lab-on-a-chips, on-chip biochemical detection methods, micro/nano fluidics, basic components of lab-on-a-chips, integration of lab-on-a-chips, and micro total analysis systems (uTAS). |

EECE | 7032 | BIOSENSORS AND BIOELECTRONICS | Fundamentals of biosensors, bioelectronics, physicochemical transduction mechanisms for bio-transduction, molecular recognition and bio-immobilization principles and procedures, coupled mass transport kinetics of enzyme-catalyzed and molecular binding reactions. Fundamentals of electrochemistry and electrochemical biosensors, ion-selective field effect transistors (ISFET), electronic noses and tongues, and protein biochips. Bioelectronics for bio-signal conditioning and processing. |

EECE | 7033 | LINEAR SYSTEMS THEORY | An introduction to the state-space framework for the analysis, design and control of linear systems. The course covers: 1) basic mathematical methods in linear algebra and optimization; 2) fundamental principles including stability, observability and controllability; and 3) techniques for system analysis and design. |

EECE | 7042 | VIDEO PROCESSING AND COMMUNICATIONS | Fundamental theory and techniques of digital video processing with a focus on video coding and communications, video formation, perception and representation, sampling, modeling, 2D motion estimation and coding. |

EECE | 7045 | STOCAISTIC DECISION AND CONTROL | This course presents the fundamental methods and modeling techniques of decision and control problems for discrete-time stochastic systems, Dynamic Programming and its applications, computational algorithms and techniques. Topics in risk-sensitive optimality criteria and Approximate Dynamic Programming are also covered. |

EECE | 7047 | DYNAMIC OPTIMIZATION | This course focuses on the process of determining control and state histories that optimize a specific performance objective while satisfying any constraints on the motion of the system. In particular, two classes of indirect and direct methods will be discussed. Specific numerical techniques such as shooting methods, collocation methods, and dynamic programming will be used to solve problems with nonlinear dynamics. - Prerequisite Definition: To take this course you must: Be at least a Graduate. |

EECE | 7057 | GPS PRINCIPLES | Introduction to the GPS system and receiver principles, structures, processing, and applications. |

EECE | 7059 | WIRELESS COMMUNICATIONS | Study of the fundamental physical layer principles of modern wireless communication systems. Topics include channel fading, wireless channel models, inter-symbol interference, digital modulation, techniques to mitigate channel fading and ISI countermeasures. Advanced topics on MIMO and space-time coding and interdisciplinary research with wireless communications will also be introduced. Pre-Requisite: To take this course you must: Have taken the following Course EECE6019 min grade C/Pass. |

EECE | 7065 | COMPLEX SYSTEMS AND NETWORKS | This course provides a comprehensive introduction to complex systems and networks. The focus is on applying general principles derived from biological and human complex systems to the analysis, design and productive use of artificial systems with the same attributes of autonomy, adaptivity and resilience. |

EECE | 7075 | PRINCIPLES OF MODERN NETWORKING | This course introduces emerging technologies in modern computer networks, including software defined networking, technologies for supporting user needs in terms of quality and service (QoS) and quality of experience (QoE), enabling technologies for the Internet of things (IoT), networking architectures for cloud computing, and advances in 5G wireless systems. |

EECE | 7080 | SELF-STUDY RESEARCH | Research study not directly related to the thesis or dissertation. Self-study to determine the research area and topic. Credits may not be counted towards MS/PhD program. Credits arranged each quarter. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

EECE | 7095 | INTRODUCTION TO COMPUTER ARCHITECTURE | Processor design concepts. Instruction set design: general register machines, stack machines, RISC machines. The memory hierarchy: virtual memory management, cache memories, cache coherency and consistency. Pipelining: instruction pipelining, functional unit pipelining, multiple functional units, vector processing. Input/ Output processing. Parallel processing architectures: multiprocessors, multi-computers, many-core processors. |

EECE | 7097C | INTRODUCTION TO FUNCTIONAL GENOMICS | "Introduction to Functional Genomics" course provides a general introduction to genome science, covering genome-scale sequencing, analysis of variation, gene expression profiling, gene ontology, proteomics and metabolomics. Lectures, hands-on exercises and projects are used to familiarize students with biological data sets that are being generated by each of these approaches to interrogate biological systems on genome-wide scales, and to introduce statistical, bioinformatic and system biology approaches required to analyze and interpret such data streams. Student projects involve analysis of publicly available data sets with gene expression, sequence and other data pertaining to breast cancer as case studies. The course is addressed to students in both basic science and interdisciplinary programs. At present, the course id cross-listed in a number of graduate programs. The course will be taught jointly by instructors with complementary expertise in different subfields of genomic science, and in bioinformatics and system biology. |

EECE | 7099 | INTRODUCTION TO BIOINFORMATICS | Introduction to Bioinformatics is a multidisciplinary, entry level graduate course, which is an extension of current BME643 course and aims at achieving a deeper understanding of central algorithmic problems and current computational methods used in the context of data rich biomedical research. Subjects covered include: deep sequencing, biological sequence analysis, statistical models for gene expression profiling, prediction of protein and macromolecular complexes structure and function, systems biology. Analysis of algorithmic aspects will be accompanied by projects and case studies to provide a direct illustration of computational issues and to provide knowledge and practical command of standard bioinformatic tools and protocols that are being used to analyze complex biological data. |

EECE | 7110 | TERAHERTZ PRINCIPLES AND APPLICATIONS | Introduction to basic concepts and properties of terahertz waves, a unique region in the electromagnetic spectrum. Natural and artificial generation, detection, transmission, SNR calculation, component characterization, and sources. Applications in research areas including scientific imaging and astronomy, industry, entertainment, and security. |

EECE | 7126 | ORGANIC ELECTRONICS | Introduction to electronic structures and charge transport properties of organic semiconductors. Fundamentals of common organic-based devices (OLEDs, OFETs, OPV, conducting polymers, and bioelectronics), their fabrication, and applications in research and industry. |

EECE | 8010 | ADVANCED MATERIALS | Advanced topics in electronic, optical, biological and other emerging materials in electrical engineering. |

EECE | 8015 | SPECIAL TOPICSIN COGNITION, ACTION AND PERCEPTION | Special topics in cognition, action, and/or perception |

EECE | 8016 | TOPICS IN POWER SYSTEMS | Advanced topics in alternative methods of electric energy generation, power plant instrumentation and control, and electric power management and SmartGrid. |

EECE | 8020 | ADVANCED DEVICES | Advanced topics in electronic, optical, biological and other emerging devices in electrical engineering. |

EECE | 8022 | INTRODUCTION TO QUATERNIONS | Quaternions are a generalization of complex numbers which have received widespread attention over the last few years because of their use in various areas of science and engineering, including three-dimensional computer graphics, computer vision and crystallographic texture analysis, among others. This course will start with a historical review of the advent of quaternions and their subsequent use in various branches of physics and engineering. The use of quaternions in both classical and quantum physics will be discussed, including an approach to quantum computing. The students will be exposed to both Clifford and Quaternion algebra. - Prerequisite Definition: To take this course you must: Have taken the following Courses MATH1062 min grade C/Pass,MATH2073 min grade C/Pass,MATH2076 min grade C/Pass. |

EECE | 8024 | TOPICS IN SIGNAL PROCESSING | Advanced topics in signal processing, focusing on recent advances in areas such as real-time data acquisition and adaptive signal processing. |

EECE | 8025 | ELECTRICAL ENGINEERING OF HUMAN BODY | To introduce students to the role of electrical engineering in the functioning of the human body - effects of electrical charges, currents, voltages in various parts of the body, from molecules to cells in the nervous system to the brain. |

EECE | 8026 | TOPICS IN COMMUNICATIONS | Advanced topics in communications, focusing on recent advances in areas such as wireless communications and secure communications. |

EECE | 8030 | ADVANCED APPLICATIONS | Advanced topics in electronic, optical, biological and other new applications of electrical engineering research and technology. |

EECE | 8036 | TOPICS IN INTELLIGENT SYSTEMS | Advanced topics in distributed, adaptive and biologically-inspired systems and algorithms. |

EECE | 8042 | TOPICS IN IMAGE ANALYSIS AND VISION | Advanced topics in image analysis and vision systems, focusing on recent advances in areas such as 3D image analysis, mathematical morphology, facet model, and texture. |

EECE | 8043 | TOPICS IN OPTIMIZATION | Advanced topics in optimization, focusing on recent advances in optimization techniques and applications. |

EECE | 8045 | TOPICS IN DECISION PROCESSING | Application of principles of probability and statistics to the design and control of engineering, economic and logistic systems in a random or uncertain environment. Emphasis is placed on Bayesian decision analysis and other advanced topics. |

EECE | 8070 | DATA AND KNOWLEDGE MANAGEMENT | Advanced topics in data and knowledge management, focusing on recent advances in areas such as advanced data models and query optimization, data warehousing, intelligent knowledge representation, data mining, and the semantic web. |

EECE | 8071 | CHEMICAL SENSORS I | The fundamentals of chemical sensors based on electrochemistry and spectroscopy are covered. Topics include commonly used sensors, strategies for achieving selectivity and adequate limits of detection, design of devices, and applications in health care, environmental monitoring, industry, and military areas. Articles from the current literature are discussed. Active student participation is expected as an integral part of the course. |

EECE | 8075 | DATA WAREHOUSE AND MINING | Data warehouse design with conceptual data models and physical storage techniques; data mining techniques including clustering, pattern recognition, and data visualization. |

EECE | 8080C | TOPICS IN CIRCUIT AND SYSTEM DESIGN | Examination of advanced issues in VLSI circuit and system design, including embedded system design. Emphasis is on understanding design trends for modern chips and how to design circuits and systems in existing and emerging technologies to meet performance goals. Exploration of design tradeoffs for performance, power, and reliability. |

EECE | 8085C | TOPICS IN VLSI CAD AND TESTING | Examination of advanced issues in VLSI CAD, power, and test. Emphasis is on understanding design trends for modern chips and how to design CAD, power, test, and simulation tools to meet design trends in industry. Exploration of design tradeoffs for performance, power, and reliability. |

EECE | 8090 | TOPICS IN CONTROL SYSTEMS | Advanced topics in control systems, focusing on recent advances in areas such as sensor/control systems and multivariable control. |

EECE | 8095 | TOPICS IN COMPUTER SYSTEMS | Advanced topics in computer systems, focusing on recent advances in areas such as advanced operating systems and networks, real-time operating systems, embedded systems, parallel and multicore systems, experimental computer systems, and system modeling and simulation. |

EECE | 8115C | HUMAN-MACHINE AND ROBOT INTERACTION | This course will start off with an introduction to the fields of Human Factors (HF), Human-Machine Interaction (HMI) and Human-Robot Interaction (HRI) and general design principles, their necessity, requirements and their applications. This will be followed by a series of interdisciplinary discussion topics. The topics are chosen to (i) educate students of both disciplines (psychology and engineering) of each other's perspective towards the topic, and to (ii) raise a general understanding of the differences of the engineering and the psychology perspective on these topics, and (iii) to create a common knowledge ground in the respective topics. Overall this course will teach students of both disciplines to switch perspective and approach a problem from the other discipline's point of view. During the second half of the semester, students will gain hands on experience by working on small projects in interdisciplinary teams. This will (i) allow students to gain experience and deepen their knowledge in one of the specific topic areas, and (ii) it will also help students to better understand the implications of the previously discussed perspectives on the topics of their projects. Finally this will raise an understanding of each other’s challenges and the challenges and possible solutions of working interdisciplinary and in working on the interface of engineering and psychology. |

EECE | 9012 | FINAL MASTER OF SCIENCE PROJECT | Course used by GE-ACE students only for completion of the final MS project. Pre-Requisite: To take this course you must: CS15-MS, CMPE-PHD, CS-PHD, EE-PHD, CS-GC, CMPE-MENG, CMPE-MS, CS20-MS, CS-MENG, EE-MENG, EE-MS. |

EECE | 9060 | MENG CAPSTONE PROJECT | Student works under the direction of a faculty member to complete the MEng capstone project. |

EECE | 9080 | DISSERTATION PROPOSAL | Individual research under supervision of EECS faculty directed towards completion of the PhD dissertation proposal. Open only to doctoral students who have passed the qualifying examination. Only 9 credits of 20EECE9080 will be counted towards course work requirements. Pre-Requisite: To take this course you must: Be enrolled in the following Program 20DOC. |

EECE | 9088 | MASTER OF SCIENCE PROJECT | Individual project under supervision of EECS faculty directed towards completion of the MS project. Open to part-time SECS MS students who are pursuing the project option. The project option is not available to full-time students. |

EECE | 9089 | THESIS/DISSERTATION RESEARCH | Individual research under supervision of EECS faculty directed towards completion of the MS thesis or the PhD dissertation. Open to full-time EECS MS students and all EECS PhD students. |

EECE | 9092 | INDEPENDENT STUDY | Individual advanced study not directly connected with thesis or dissertation. Limits of 3 credits for MS and 6 credits for PhD. |

## Computer Science

Discipline | Course Number | Name of Course | Course Description |
---|---|---|---|

CS | 6015 | COMPUTER ARITHMETIC | 1.Numeric data representation. 2.Review of Boolean algebra, logic gates, elementary integer and floating-point arithmetic. 3.Advanced methods of addition, subtraction, multiplication and division. 4.Rounding methods for floating arithmetic. 5.Fast and parallel hardware evaluation of transcendental functions. 6.Theoretical limits. 7.Pipelined arithmetic. 8.Low power arithmetic. 9.Fault tolerant memory and arithmetic and the neutron problem. 10.Is Intel's implementation of AES safe against side-channel attacks? |

CS | 6021 | MATHEMATICAL LOGIC | Propositional and first order logic. Formal proof systems, compactness, completeness, and an introduction to model-theoretic techniques. Goedel's first incompleteness theorem. Coverage will be mathematically precise. Students will be expected to understand the proofs and prove related results. |

CS | 6021 | MATH LOGIC | Propositional and first order logic. Formal proof systems, compactness, completeness, and an introduction to model-theoretic techniques. Goedel's first incompleteness theorem. Coverage will be mathematically precise. Students will be expected to understand the proofs and prove related results. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20CRT, 20MAS. Be enrolled in the following Plan CSE-PHD. |

CS | 6023 | COMPUT. & COMPLEX. | An introduction to theory of computable functions and of computational complexity. Turing machines. Computable and partially computable functions, diagonalization, and the halting problem. Universal machines. Recursive and recursively enumerable sets. Oracles, reductions, and the arithmetic hierarchy. Space and time complexity models. Cook's theorem. P, NP, co-NP, and the polynomial-time hierarchy. Collapses in the space hierarchy. |

CS | 6025 | DATA ENCODING | This is an introduction course to the fields of data compression, data encryption, and error detection at the senior undergraduate and beginning graduate level. Topics include variable-length data coding, dictionary data compression, arithmetic coding, wavelet-based image and video compression, message digests, digital signatures, cyclic redundancy code, block and stream ciphers, and public key encryption. Data types to be covered include textual and multimedia. This course is heavily project-oriented but also covers necessary mathematics behind various transforms, modular arithmetic, information and entropy, probability, and finite fields. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20CRT, 20MAS. Be enrolled in the following Plan CSE-PHD. |

CS | 6026 | FORMAL METHODS | An introduction to formal hardware and software verification. Two approaches are introduced: model checking and logical inference. Tools and representations based on these techniques are applied to specific formal verification problems. Tools discussed are: SAT solvers, SMT solvers, ACL2, ABC, and Cryptol. Representations discussed are CNF propositional formulas, first order logic, and and-inverter graphs. Examples of problems verified range from sorting algorithms such as merge sort to encryption algorithms such as AES. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6027 | REQUIREMNTS ENGINEERING | The student will study the following topics: 1. Meaning of software requirements & stakeholder identification 2. Elicitation & systematic RE literature review 3. Modeling enterprise & goal modeling 4. Modeling behavior & qualities 5. Visual analytics for RE 6. Visual modeling notations & empirical RE research 7. Requirements communication & negotiation 8. Managing inconsistency & viewpoints 9. Prioritization & traceability 10. RE for software product lines & requirements evolution - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6028 | LARGE SCALE SOFTWARE ENGINEERING | The topics covered in the course include: 1. Introduction to Software Architecture 2. The engineers toolkit: SCM, build, test, deploy tools 3. Risk in software engineering 4. Continuous integration 5. N-tier architectures a. layering, domain logic, datastore mapping (ORM), presentation 6. Concurrency, distributed transactions a. paxos, chubby / zookeeper 7. Consistency levels a. eventual consistency -> ACID8. System and data partitioning 9. Software architecture patterns |

CS | 6033 | ARTIFICIAL INTELLIGENCE | The course will cover in detail the topics of state space search, game tree search, constraint satisfaction, logic-based knowledge representation and reasoning, first order predicate calculus, uncertainty handling using Bayesian probability theory, and some applications of these techniques. Applications may be selected from the area s of automated planning, natural language processing, or machine learning. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6034 | NATURAL LANGUAGE PROCESSING | An introduction to methods to computationally represent human languages, including syntactic parsing, language modeling, semantic parsing, information retrieval, machine translation, and conversational agents. Topics covered will include: syntactic parsing, semantic parsing, statistical language models, meaning representation languages, information retrieval, machine translation, applied machine learning, conversational agents. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6035 | LEARNING PROBABILISTIC MODELS | 1. Background on Probabilistic Reasoning a. Probability; Conditional Probability b. Probabilistic Reasoning c. Prior, Likelihood, and Posterior 2. Background on Statistics Concepts a. Distributions, KL Divergence, Entropy and Information b. Classical Distributions c. Multivariate Gaussian d. Exponential Family e. Learning distributions, Maximum Likelihood 3. Background on Graph Concepts a. Graphs, Cycles, DAGs b. Encoding – Edgelist, Adjacency matrix 4. Belief Networks a. Benefits of Structure b. Uncertain and Unreliable Evidence c. Belief Networks d. Causality 5. Graphical Models a. Graphical Models b. Markov Models c. Chain Graphical Models d. Factor Models e. Expressive power of Graphical Models f. Practical applications of Graphical Models 6. Efficient Inference in Trees a. Message Passing b. Sum-product algorithm c. Marginal Likelihood, Inference d. Max-Product 7. Learning as Inference a. Learning Bias of a coin, making decisions b. Bayesian Methods c. Maximum Likelihood Training of Belief Networks d. Bayesian Belief Network Training e. Structure learning f. Maximum likelihood for Undirected models 8. Learning with Hidden Variables a. Hidden variables and missing data b. Expectation maximization (Classical and Variational) c. Extensions of EM d. Variational Bayes 9. Bayesian Model Selection a. Comparing models b. Occam’s Razor c. Approximating Model Likelihood 10. Discrete Markov Models a. Markov Models b. Hidden Markov Models c. Learning HMMs d. Related Models (CRFs) e. Practical Applications of Markov Models - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6037 | MACHINE LEARNING | The goal of this course is to introduce students to the field of Machine Learning. The course covers traditional machine learning algorithms, and their implementations along with discussions of concrete problems where these algorithms are suitable. Topics covered by course include: Concept Learning and the General-to-Specific Ordering Decision Tree Learning Artificial Neural Networks Evaluating Hypotheses/Bayesian Learning Computational Learning Theory Instance-Based Learning Genetic Algorithms Learning Sets of Rules Analytical Learning Combining Inductive and Analytical Learning Reinforcement Learning. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6038 | MALWARE ANALYSIS | 1.Introduction: Definition, Classification, Using Isolated Environments (VMs) - Students will learn the types of malware and the basics of the tools used for reverse engineering. 2. Intel x86 Architecture: Instruction Set, Memory, Calling Conventions - Students will perform a low-level analysis of those instructions including memory and register usage, and calling conventions for subroutines and libraries. 3. C in Assembly: Variables, Stack Usage, Structs, Optimizations - the students will learn what common C programming constructs look like in compiled assembly code. 4.Intent: History, Identify Purpose, Network Analysis - These topics focus on how to identify the intent of a malware program. 5. Overview of Windows: APIs, Processes and Threads, Network - Students will learn techniques for identifying malware actions by looking at how the code utilizes the operating system's application programming interfaces, process handling, and network connectivity. 6. Anti-RE: Obfuscation, Packers, Detection of RE - Students will learn how modern malware executables use different techniques to hide code. |

CS | 6043 | COMPUTER NETWORKING | Need for layering, Application Layer, Transport Layer, Network Layer, Link Layer and Local Area Networks, Multimedia Networking, Security in Computer Networks, Network Management. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6051 | DATABASE THEORY | A discussion of databases, with emphasis upon theory. Formal models for database system architectures. Relational, Entity/Relationship, Object-Oriented, and Semi-structured models. Methodologies for manipulating and specifying models. Foundations of query languages. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6052 | INTELLIGENT DATA ANALYSIS | This course will introduce students to the theoretical and practical aspects of the field of data mining. Algorithms for data mining will be covered and their relationships with statistics, mathematics, and algorithm design foundations will be explored in detail. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. Be enrolled in the following Plan DASC20-GC. |

CS | 6053 | NETWORK SECURITY | Treats current concerns, trends, and techniques to ensure security and safety of data on computers and over networks. There are three parts: 1. Basic tools and assembly: Secret Key and Public Key block ciphers such as DES, 3DES, AES, RSA, Diffie-Hellman Key Exchange, zero-knowledge authentication, and Elliptic Curve Cryptography; hash algorithms such as SHA variants; stream ciphers such as RC4 variants; message integrity and authentication algorithms such as HMAC. Output Feedback Mode, One-time Pads, Cipher Block Chaining are discussed as the means to put many of these algorithms to practical use; 2. Systems using these tools: Kerberos, IPSec, Internet Key Exchange, SSL, PGP, Email Security. Certification authorities, certificates, and key distribution centers to support these systems. Vulnerabilities in protocols specified for these systems and ways they can be fixed; 3. Well known attacks and how to prevent them. This includes denial of service, side-channel, attacks that exploit existing network IP and TCP protocols, offline and online password attacks, stateless cookies. Students will form teams of three to produce systems written in Java that will compete in a contest. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20CRT, 20DOC, 20MAS. |

CS | 6054 | INFORMATION RETRIEVAL | This is an introductory course to the field of information retrieval at the senior undergraduate and beginning graduate level. Topics include bag-of-words model and term frequency matrix, tf-idf vector space representation and cosine similarity, vector space-based and graph-theoretical ranking and clustering, latent semantics and latent topic models. Four programming projects with real-world document collections for indexing, ranking, and clustering are designed for both undergraduate and graduate students and an additional project is required for graduate students. This course also covers necessary mathematics in Bayesian statistics and machine learning. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6055 | CYBER DEFENSE OVERVIEW | 1.Overview of network security 2.Overview of network security protocols 3.Overview of classes of network attacks 4.Classes of system level attacks 5.Intrusion detection and identification. 6.Special consideration of mobile devices. Antennas, access points and gateways, remote wireless bridges. Man-in-the-middle attacks. Best practices, auditing, and other techniques to mitigate risk. 7.Malicious attack and anomaly detection and identification. 8.Trust levels and security policies. 9.System security architectures. Layered defenses. 10.Security of applications that interface with the world wide web. Countermeasures: hardening a DNS server, configuring a web server. 11. Securing virtualized servers, (distributed) data centers, and the cloud. 12. Recovery in case of disaster. Command-and-control operations and procedures. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20CRT, 20DOC, 20MAS. |

CS | 6056 | SECURITY VULNERABILITY ASSESSMENT | 1. Legal issues associated with disclosure of security vulnerabilities 2. Software and Operating System vulnerability 3. Software and Operating System vulnerability 4. Software and Operating System design and implementation 5. Language (mainly C) design issues 6. Network and protocol vulnerabilities 7. Network and protocol vulnerabilities 8. Network attacks 9. Intrusion and anomaly detection and prevention 10. Hardware and architecture vulnerabilities and attacks 11. Configuration vulnerabilities 12. User interfaces and human factors 13. Application security and detection of malfeasance - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20GC, 20MAS. |

CS | 6057 | MOBILE SECURITY | Threats, attacks, vulnerabilities of mobile computing platforms. Analysis of code and operating systems for security and safety flaws. Defenses such as secure coding, cryptography, physical security, secure communication, policy management. Malware protection. Attacks that rely on social engineering. Interaction between mobile devices and the Cloud. - Prerequisite Definition: To take this course you must: Have taken the following Courses CS1022C,MATH1061, or CS2028C, or EECE2040, or EECE2080C. Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6058 | DATA SECURITY AND PRIVACY | Symmetric-key encryption, public-key encryption, zero-knowledge proofs, homomorphic encryption, oblivious transfer, searchable encryption, order-preserving encryption, differential privacy, private information retrieval, multi-party computation, bitcoin. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6060 | COMPUTER GRAPHICS I | 3 credit hours dual level. To introduce both the key topics and the latest implementation of computer graphics. The major topics include: 1. Computer graphics applications 2. Basic graphics primitives, attributes 3. Graphics systems and display hardware 4. Interactive input devices 5. Basic rendering algorithms 6. Graphics standards 7. Graphics libraries: OpenGL 8. Mathematical elements for computer graphics 9. Basic geometric transformations 10. Graphical object modeling 11. Curves, surfaces, and solids 12. 3D concepts 13. 3D viewing 14. Lighting, shading, texture mapping 15. Hidden line/surface removal algorithms 16. Shaders - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6063 | DISTRIBUTED SYSTEMS | This course presents an in-depth analysis of the issues affecting the design, deployment and utilization of systems composed of computing nodes that communicate by means of general-purpose computing networks. Topics include communications protocols, timing & synchronization, error detection/recovery, security, data modeling, and data retrieval strategies. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6065 | CLOUD COMPUTING | The course will cover the following topics: 1. Introduction and Historical perspectives 2. Cloud Models: IaaS, PaaS, SaaS. 3. Underlying technologies: Networking, Internet Architecture, Virtualization 4. Distributed System Concepts 5. MapReduce Paradigm & Hadoop 6. Cloud Applications & Architectures 7. Modern Case Studies in Hadoop and Cloud Applications 8. Designing Applications for the Cloud 9. Cloud Security 10. Public cloud offerings - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20GC, 20MAS. |

CS | 6066 | CLOUD CMPUTING FOR SCIENTISTS AND ENGINEERS | This course is designed for students who are not majoring in Computer Science or Computer Engineering disciplines. The topics covered in this course include: 1. Introduction and Historical perspectives. Cloud Models: IaaS, PaaS, SaaS 2. Underlying technologies: Networking, Internet Architecture, Virtualization, Data storage, map-reduce, Hadoop. 3.Overview of Amazon AWS and Google App Engine. 4.Solving Scientific and Engineering problems using the services above. 5.Building a basic scalable web application. 6.Security Considerations 7. Discussion of recent advances in science and engineering as a result of cloud resources. |

CS | 6067 | USER INTERFACE I | This course introduces the basic concepts of human computer interaction and the latest development of the technology for developing interactive systems. Major topics cover the role of computer technology, human users and human factors for designing windows-based applications, and design methodologies for building software applications - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6068 | PARALLEL COMPUTING | This course is designed as a dual level and senior undergraduate level course introducing the theory and practice of parallel computing. The course seeks to empower students with the computational thinking and practical programming skills needed to achieve tera-scale and peta-scale computing performance in all science and engineering disciplines. Students will study and gain experiences with several parallel algorithmic design patterns. Student will study the critical system and architectural design issues associated with parallel computing. Students will gain experience with parallel programming development environments and learn programming methodologies using a chosen platform. Students will learn analytical techniques for understanding the scalability and portability of parallel computing software. The course is lab and project oriented. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6069 | COLLABORATIVE COMPUTING | This course covers the basics elements of human and computer interaction for computer-supported cooperative work (CSCW), the latest computing technology of distributed systems, and the software design methodologies that are used to implement collaborative strategies in Internet-based groupware applications. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6070 | AUTOMATA | Finite state automata. Regular languages and grammars. Context-free grammars and their normal forms. Pushdown automata. Turing machines. Nondeterministic Turing machines. Universal Turing Machines. The Chomsky hierarchy. The limits of computation. Complexity theory. Finite-state transducers. Moore machines and Mealy machines. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6071 | BIG DATA: ENGINEERING, ARCHITECTURE AND SECURITY | 1.Introduction and Case Studies The Exponential Evolution of Big Data. Big Data Challenges Case Study A Case Study B 2.Big Data Collection Python for Data Science Data Cleaning and Integration Big Data and the Cloud The Internet of Things 3.Big Data Analytics Machine Learning Classification and Clustering Building Data Models Fast Algorithms for Big Data Case Study C 4.Big Data Storage Modern Databases, SQL and NoSQL Models Data Compression, Deduplication, and Storage E_ ciency Data Reliability, Fault Tolerance, and Reproducability. Metadata, and Dependence Relationships Case Study: NOAA Data 5. Big Data Security and Privacy Data Assurance Data Privacy - Prerequisite Definition: To take this course you must: Have taken the following Courses CS2028C min grade C/Pass,STAT2037 min grade C/Pass. Be enrolled in one of these Programs 20CRT, 20DOC, 20GC, 20GOP, 20MAS. |

CS | 6072 | NETWORK SCIENCE | 1. Graph theory, degree distribution, connected components, clustering coefficient, shortest paths, diameter 2. Random graphs, the Erdos-Renyi model, giant component, phase transitions 3. The scale-free property, power laws, small-world networks, degree-preserving randomization 4. Evolving networks, preferential attachment 5. Degree correlation, assortativity, structural disassortativity 6. Network robustness, network breakdown, random failure and attacks 7. Communities, modularity and modularity-maximization algorithms, the Bron-Kerbosch clique enumeration algorithm, clique graphs and clique percolation, the Louvain algorithm, Informap 8. Spreading phenomena, epidemic modeling, network epidemics 9. Visualization algorithms - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6073 | DEEP LEARNING | 1. Deep feedforward networks: gradient-based learning, hidden units 2. Regularization for deep learning: sparse representations 3. Optimization for training deep models: adaptive learning rates 4. Convolutional networks: pooling, unsupervised features 5. Recurrent and recursive networks: long short-term memory 6. Autoencoders: semantic hashing 7. Representation learning: distributed representation, one-shot learning 8. Structured probabilistic models for deep learning: sampling 9. Deep generative models: Boltzmann machines - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 6086 | COMPUTATIONAL BIOLOGY | This is a course on computational biology at the senior undergraduate and beginning graduate level. No biology background is required. Topics include biological measurements and the gathering and storing of data; data formats, labeling, and important databases and web servers; Genomes, transcriptomes, proteomes, and interactomes; spectral analysis and cluster analysis; gene networks and their topology and dynamics. Four programming projects with real biological data are designed for both undergraduate and graduate students and an additional one is required for graduate students. |

CS | 6094 | ADVANCED PROGRAMMING TECHNIQUES | Treats sophisticated ways to use advanced programming constructs which are now or are beginning to be commonplace in modern general -purpose programming languages. For example, considers the advanced use of exceptions, threads, reflection, streams, sockets, remote method invocation, virtual functions, continuations, and monads, among other concepts. In addition, modern security features including provisions for public-key cryptosystems and class encoding will be discussed. The programming languages Haskell and Java will be used to illustrate the concepts discussed. A team project will be assigned at the end of the semester. |

CS | 6097 | WIRELESS NETWORKS | Introduction to Wireless and Mobile Systems, Probability Theory, Statistics, and Traffic Theories, Mobile Radio Propagation, Channel Coding, Cellular Concept, Multiple Radio Access, Multiple Division Techniques, Channel Allocation, Mobile Communication Systems, Existing Wireless Systems, Network Protocols, Ad Hoc Networks, Sensor Networks, Wireless LANs and PANs, Recent Advances. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 7001 | CS SEMINAR I | Course shall cover presentations of skills needed to perform research and also a number of presentations by faculty, visitors, and other graduate students describing their ongoing research. |

CS | 7002 | CS SEMINAR II | There will be frequent presentations by faculty and visitors describing their ongoing research projects. |

CS | 7003 | BIOMEDICAL INFORMATICS SEMINAR | The student will be expected to attend a weekly seminar in the areas of computer science and biomedical informatics. A mix of research talks available from College of Engineering and Applied Science, College of Medicine, and Cincinnati Children's Hospital and Medical Center will be eligible for satisfying the requirements of this seminar course. Typically, a student will attend at least four research talks in CEAS and at least four research talks in the medical science areas. |

CS | 7035 | CRYPTOGRAPHY 1 | Conventional and public key cryptography. Digital signatures. Secure voting schemes. Provably secure cryptosystems. Protocols using zero-knowledge proofs. Using multi-precision arithmetic for implementing and attacking cryptosystems based on large integers--e.g. 300-digit numbers. The analysis and cracking of cryptosystem algorithms and protocols. Examples of cracked systems. |

CS | 7036 | ADVANCED MACHINE LEARNING TOPICS | The objective of this course is to introduce students to the latest most advanced topics in the field of Machine Learning. This is a fast-moving field which recently has brought together theoretical computer science, statistical methods and nonlinear optimization as well as concept from differential geometry. Topics to be covered: Linear Models for Regression and Classification Linear Basis Function Models ML and least squares Regularized least squares Bayesian Linear Regression Equivalent kernel Bayesian Model Comparison Discriminant Functions Least squares for classification Fisher's linear discriminant Probabilistic Generative Models Logistic regression / Multiclass logistic regression Bayesian Information Criterion /Bayesian Logistic Regression Neural Networks ,Feed-forward Networks Gradient descent optimization, Backpropagation Bayesian Neural Networks Kernel Methods Constructing Kernels Radial Basis Function Networks SVMs for regression and classification RVM for regression and classification Graphical Models Learning the graph structure Mixture Models and EM, general, for Gaussian mixtures, for Bayesian linear regression The EM Algorithm in |

CS | 7037 | CRYPTOGRAPHY 2 | Multiparty Zero-knowledge Protocols. Shannon Entropy and Renyi Entropy applied to cryptography. The New Generation of Message Digests. Anonymity Networks. Undeniable Signatures. Group Signatures. Side Channel Cryptanalysis. Digital Cash. |

CS | 7038 | MALWARE ANALYSIS | 1.Introduction: Definition, Classification, Using Isolated Environments (VMs) - Students will learn the types of malware and the basics of the tools used for reverse engineering. 2. Intel x86 Architecture: Instruction Set, Memory, Calling Conventions - Students will perform a low-level analysis of those instructions including memory and register usage, and calling conventions for subroutines and libraries. 3. C in Assembly: Variables, Stack Usage, Structs, Optimizations - the students will learn what common C programming constructs look like in compiled assembly code. 4.Intent: History, Identify Purpose, Network Analysis - These topics focus on how to identify the intent of a malware program. 5. Overview of Windows: APIs, Processes and Threads, Network - Students will learn techniques for identifying malware actions by looking at how the code utilizes the operating system's application programming interfaces, process handling, and network connectivity. 6. Anti-RE: Obfuscation, Packers, Detection of RE - Students will learn how modern malware executables use different techniques to hide code. |

CS | 7040 | TRUSTWORTHY SYSTEM DESIGN IMPLEMENTATION AND ANALYSIS | List of Topics : Stochastic processes as applied to system analysis and modeling, Steady state and transient model analysis, Rare events, importance sampling, importance splitting . Performance analysis methods (single queue, network of queues, markovian models), Dependability specific methods (fault trees, reliability block diagrams), Methods and algorithms for fault tolerance (triple modular redundancy, inversion programming, checkpointing and recovery), Privacy and security metrics, including byzantine fault analysis, Methods for improving security (encryption, data hiding, anonymization, and homorphisms for security), Iterative design techniques, verification and validation |

CS | 7050 | MLTI AGENT GAME THEORY | - Introduction to Multi-Agent Systems - Coordination among multiple agents - Various auction strategies and their analysis - Various voting / decision making strategies and their analysis - Strategic games and Nash equilibrium - Mixed, Correlated, and Evolutionary equilibrium - Extensive games with perfect information - Bargaining games and their analysis - Repeated games and their analysis |

CS | 7051 | ADVANCED SPATIAL-TEMPORAL MINING | Characteristics of spatial, temporal, and spatial-temporal data; Measures of similarity/distance in spatial and temporal data; Discovering patterns in spatial data (e.g., patterns in crime) and in temporal data (e.g., patterns in human activity); Detecting events of interest in temporal data and spatial-temporal data (e.g., changes in heart rate, changes in climatic phenomenon); Clustering and classification of spatial-temporal instances (e.g., classification of healthy and mentally disordered fMRI scans); Clustering space and time in spatial temporal instances (e.g., grouping locations in the brain with similar activity over time, grouping time intervals where brain activity pattern is similar); Discovering relationships in spatial temporal data (and using them to construct networks); Capturing dynamics in spatial temporal data (e.g., changes occurring in brain activity). - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 7052 | ADVANCED TOPICS IN NATURAL LANGUAGE PROCESSING | Introduction to the current trends in Natural Language Processing for sentiment analysis, discourse analysis, and semantics. Sentiment and valence labeling of text; sentiment labeling for social media; sentiment labeling for product reviews; Theories of discourse; methods of discourse parsing; discourse labeling schemes; Meaning representation; lexical semantics; word sense disambiguation; semantic parsing; The application of machine learning to each of the above three topics; linguistic corpora related to each of these topics. - Prerequisite Definition: To take this course you must: Be enrolled in one of these Programs 20DOC, 20MAS. |

CS | 7053 | INTRODUCTION TO MEDICAL INFORMTICS | Biomedical Informatics is an interdisciplinary field that combines knowledge of information sciences and medical sciences to optimize the use and application of biomedical data across the spectrum from molecules to individuals to populations. This course will present students with an introduction to the field of biomedical informatics through the use of core technologies and data science (computational and analytical methods) as it applies to clinical research and the use of health information technology to improve patient outcomes/healthcare delivery. Specific topics will include: overview of the field, data standards; security, confidentiality, regional health information exchange, standards, terminologies, database principles, data marts/data warehouses, interfaces and other topic as related to the healthcare and research setting. Learning objectives will be achieved using a variety of methods including: didactic lectures, group discussions, demonstrations, self-study, student projects, and selected readings from peer reviewed journal articles for each topic to develop critical analysis skills and ascertain real world applications. |

CS | 7054 | DATA SCIENCE FOR BIOMEDICAL RESEARCH | Data Science for Biomedical Research will cover statistical and data mining techniques that are essential for processing, analyzing and mining Big Data, with the overarching goal of learning from data in order to gain useful predictions and insights. |

CS | 7056 | READINGS IN AUTONOMOUS AGENTS AND DISTRIBUTED AI | Goal is to introduce students to current research and applications in Autonomous Agents and Distributed Artificial Intelligence. Topics include: 1. Agent-Based and Social Simulation; 2. Applications in Safety and Security; 3. Applications in Smart Grids and Mobility; 4. Assignment and Matching Problems; 5. Computational Game Theory & Mechanism Design; 6. Computational Social Choice; 7. Constraint Reasoning; 8. Emergent Behavior; 9. Engineering Agent Systems; 10. Fair Division and Cooperative Game Theory; 11. Human-Robot Interaction and Learning in Robotics; 12. Judgment Aggregation and Argumentation; 13. Multi-Robot Coordination and Swarm; Robotics; 14. Networking and Communication; 15. Social Networks; 16. Teamwork, Coordination, Negotiation, Cooperation, and Planning; 17. Transportation and Routing; 18. Virtual Agents |

CS | 7063 | ADVANCED METHODS IN MACHINE LEARNING | I. Feature Spaces, kernels in a feature space, modularity of kernel methods, Kernel characterization; Capacity and regularization, pattern stability, elementary algorithms in feature space. II. VC Dimension, relation between performance and sample size. III. Pattern analysis (using eigen-decomposition, convex optimization) IV. Ranking, clustering, and visualization V. Construction of Kernels: basic kernel types, randomized kernels, kernels from generative models VI. Applications: kernels for text, kernels for structured data. |

CS | 7069 | COMPUTATIONAL GEOMETRY | The Computation of 1. Convex hulls in the plane, space and hyperspace. 2. Voronoi Diagrams and Delaunay Configurations in the plane and space. 3.Arrangements in the Plane and Higher Dimensions. 4. Geometric Duals of configurations. The Detection of 4. Lines, Circles and Curves in the affine plane and the projective plane. 5. Planes, spheres and quadric surfaces in space. |

CS | 7069 | COMPUTATIONAL GEOMETRY | Study of fundamental problems in computational geometry, general techniques for solving computational geometry problems, and practical experience with implementation issues involved in converting computational geometry algorithms into running programs. |

CS | 7070 | BIG DATA ANALYTICS | This course will provide an introduction to research issues in designing algorithms for Map-Reduce environments for scalable big data analytics. Students will read about 10 papers and present and discuss them in detail in the class. Students will also write some programs for hand-on experience with the Map-Reduce algorithms for complex analytics tasks. |

CS | 7080 | SELF STUDY RESEARCH | Student shall select some reading text, possibly research papers, book chapters, or acquire research skills such as proficiency at LaTex, and then complete its reading and/or practice and understanding during the quarter. The proficiency shall be demonstrated at the end of the semester. |

CS | 7081 | ADVANCED ALGORITHMS I | Advanced treatment of fundamental topics in algorithms that every graduate student should know and have some sophistication in. Knowledge and ability to apply the fundamental design strategies: the greedy method, divide-and-conquer, dynamic programming, to solve important problems in data encryption, efficient polynomial, integer, matrix multiplication, computing the Discrete Fourier transform, using the celebrated FFT algorithm, and so forth. In addition this course will introduce students to lower bound theory and NP-completeness. |

CS | 7082 | ADVANCED ALGORITHMS II | Coverage of advanced topics in algorithms, including multi-core computing, Internet algorithms, randomized algorithms, algorithms for social networks and social media, distributed algorithms, flow theory algorithms, NP-hard, approximation and probabilistic algorithms. In particular, topics will be covered such as the traveling salesperson problem, k-center problems, facility and server location problems, Steiner tree problem, Monte Carlo algorithms, Las Vegas algorithms, Marriage Problem, Isolating Lemma, Internet ranking algorithms such as PageRank and HITS, document security algorithms, web caching and consistent hashing, graphs and social networks, properties of large graphs, matching and network flow theory, ranking, recommendation and trust in social networks, paired comparison ranking models such as Bradley-Terry-Luce and handicap ranking, parallel prefix, parallel matrix multiplication, pointer jumping, leader election. |

CS | 7083 | EXPERIMENTAL COMBINATORICS | Advanced coverage of topics in combinatorial generation. Coverage of methods and algorithms for generating a variety of combinatorial objects. Applications to mathematical identities, symmetries, graphs, game theory, complex social networks, AI applications, crypto, security, and Monte Carlo applications. Topics include: generating classical mathematical objects, such as permutations, combinations, partitions, and prime numbers, generating important computing structures, such as random numbers, graphs, cycles and codes, and generating networks with important properties, such as small-world and power-law properties. |

CS | 7092 | SENSOR SYSTEMS | Concepts in sensor system design, coverage, connectivity, Poisson distribution, regular topology, localization, synchronization, data aggregation, location of base station, sensor operating system design, security issues, project utilizing sensor boards. |

CS | 7097C | INTRODUTION TO FUNCTIONAL GENOMICS | "Introduction to Functional Genomics" course provides a general introduction to genome science, covering genome-scale sequencing, analysis of variation, gene expression profiling, gene ontology, proteomics and metabolomics. Lectures, hands-on exercises and projects are used to familiarize students with biological data sets that are being generated by each of these approaches to interrogate biological systems on genome-wide scales, and to introduce statistical, bioinformatic and system biology approaches required to analyze and interpret such data streams. Student projects involve analysis of publicly available data sets with gene expression, sequence and other data pertaining to breast cancer as case studies. The course is addressed to students in both basic science and interdisciplinary programs. At present, the course id cross-listed in a number of graduate programs. The course will be taught jointly by instructors with complementary expertise in different subfields of genomic science, and in bioinformatics and system biology. |

CS | 7099 | INTRODUCTION TO BIOINFORMATICS | Introduction to Bioinformatics is a multidisciplinary, entry level graduate course, which is an extension of current BME643 course and aims at achieving a deeper understanding of central algorithmic problems and current computational methods used in the context of data rich biomedical research. Subjects covered include: deep sequencing, biological sequence analysis, statistical models for gene expression profiling, prediction of protein and macromolecular complexes structure and function, systems biology. Analysis of algorithmic aspects will be accompanied by projects and case studies to provide a direct illustration of computational issues and to provide knowledge and practical command of standard bioinformatic tools and protocols that are being used to analyze complex biological data. |

CS | 8021 | PATTERN RECOGNITION | The topics covered will include Statistical Pattern Recognition - its basics and applications, algorithms for clustering and their analysis. A flavor of different types of clustering algorithms will be given and a few algorithms will be studied in great depth. Relevance of all the above techniques for pattern discovery, classifier design, and dimensionality reduction will be investigated. A number of examples from real-life datasets will be examined in depth during the class presentations and by students during their homework assignments. |

CS | 8035 | ADVANCED TOPICS IN DATA SECURITY AND PRIVACY | A course covering advanced topics in data security and privacy, including advanced primitives in applied cryptography and attacks and defenses for security and privacy in the areas of computer networks, cloud computing, databases, machine learning and digital currency. - Prerequisite Definition: To take this course you must: Be at least a Graduate. |

CS | 8042 | GRAPH THEORY AND NETWORKS | Advanced coverage of myriad important applications of graphs in computer science and engineering. Analysis of large graphs, graph models applied to communication and social networks, parallel architectures and interconnection networks, transportation and electrical networks. Analysis of flows in graphs and networks, classical graph problems such the shortest path problem, the minimum-cost spanning problem, Steiner tree problem, the dominating set problem, the traveling salesman problem. Applications to network reliability, routing, connectivity, survivability, and security. |

CS | 8046 | MOBILE COMPUTING | Mobile Computing, Selfishness in Ad hoc networks, Data Aggregation in Sensor Networks, Regularly deployed Sensors' coverage and connectivity, Mobile Sensor Network Deployment, Heterogeneous wireless networks, Secured Key Generation in Sensor Networks, Wireless Mesh Networks, Selfishness in Mesh Networks, Secured and Efficient Authentication in Wireless Mesh Networks, followed by student presentations and project. |

CS | 8060 | M ENG CAPSTONE PROJ | Individual projects under supervision of departmental faculty in partial fulfillment of the Master of Engineering degree. |

CS | 8080 | DISSERTATION PROPOSAL | Individual research under the supervision of CSI faculty directed toward the completion of the PhD dissertation proposal. Open to doctoral students ONLY who have passed the qualifying examination. Only 9 credits of 20 CS8080 will be counted toward course work requirements. Pre-Requisite: To take this course you must: Be enrolled in the following Program 20DOC. |

CS | 8089 | THESIS RESEARCH | Research tasks as advised by the thesis/dissertation adviser shall be completed. |

CS | 8092 | INDEPENDENT STUDY | Individualized study under the direction of a faculty member. This must be arranged between a student and a faculty member with mutual consent and agreement on the requirements for earning the credits. With the approval of the Graduate Program Director, a student may register for a maximum of 9 credits per quarter in order to maintain full-time status. These credits do not count towards MS or PhD degree course requirements. |