Graduate Course DescriptionsThe following are up-to-date course descriptions, which may differ from those in the printed graduate bulletin due to corrections, additions, etc. Graduate CoursesSome graduate courses may not apply toward certain degree programs. As early as possible, preferably during the first quarter of study, students should investigate with their faculty advisor the program of study they wish to pursue. COEN 200. Logic Analysis and SynthesisAnalysis and synthesis of combinational and sequential digital circuits with attention to static, dynamic, and essential hazards. Algorithmic techniques for logic minimization, state reductions, and state assignments. Decomposition of state machine, algorithmic state machine. Design for test concepts. (Also listed as ELEN 500.) Prerequisite: COEN 127C or equivalent. (2 units) COEN 201. Digital Signal Processing IDescription of discrete signals and systems. Z-transform. Convolution and transfer functions. System response and stability. Fourier transform. Sampling theorem. Digital filtering. State-space representations. (Also listed as ELEN 233.) Prerequisite: ELEN 210 or equivalent. (2 units) COEN 201E Digital Signal Processing I, IISame description as COEN 201 and COEN 202 combined. Credit not allowed for both COEN 201/202 and 201E. (Also listed as ELEN 233E). (4 units) COEN 202. Digital Signal Processing IIContinuation of COEN 201. Discrete Fourier transform. Digital filter design techniques. Fast Fourier transform. Quantization effects. Estimation. (Also listed as ELEN 234.) Prerequisite: COEN 201. (2 units) COEN 203. VLSI Design IIntroduction to VLSI design and methodology. Analysis of CMOS integrated circuits. Circuit modeling and performance evaluation supported by simulation (SPICE). Ratioed, switch, and dynamic logic families. Design of sequential elements. Fully-custom layout using CAD tools. (Also listed as ELEN 387.) Prerequisite: COEN/ELEN 127 or equivalent. (2 units) COEN 204. VLSI Design IIContinuation of VLSI design and methodology. Design of arithmetic circuits and memory. Comparison of semi-custom versus fully custom design. General concept of floor planning, placement and routing. Introduction of signal integrity through the interconnect wires. (Also listed as ELEN 388.) Prerequisite: COEN/ELEN 387 or equivalent, or ELEN 153. (2 units) COEN 207. Hardware Formal Verification INeed for model checking methodology. Introduction to the mathematical foundation. Binary decision diagrams (BDDs); propositional logic; basics of temporal logic. Theorem proving, equivalent checking; finding fixed points of temporal functions. (Also listed as ELEN 613.) Prerequisites: COEN 200, and COEN 303 or equivalent. (2 units) COEN 208. Hardware Formal Verification II: The Test Case GeneratorUsing software tools to generate test cases pseudo-randomly in order to verify correctness of designs. Checking the response using reference models and scoreboards; measuring thoroughness of verification coverage. Use of industry tools such as Specman with the e language. (Also listed as ELEN 614.) Prerequisite: COEN 200 and COEN 303 or equivalent. (2 units) COEN 210. Computer ArchitectureHistorical perspective. Performance measurement. Instruction set and addressing modes. Computer arithmetic. CPU design. Datapath. Control unit. Instruction cycle. Finite state machine and microprogramming. Pipelining. Data & control hazards. Instruction-level parallelism. Thread-level parallelism. Memory techniques. Cache memory. Memory interleaving. Input-output devices. Buses. RISC versus CISC. Prerequisites: COEN 20 and COEN 21. (4 units) COEN 218. Input-Output StructuresI/O architecture overview. I/O programming: dedicated versus memory-mapped I/O addresses. CPU role in managing I/O: Programmed I/O versus Interrupt-Based I/O versus DMA‚Äìbased I/O. I/O support hardware: interrupt controllers (priority settings, and arbitration techniques), DMA controllers and chip-sets. I/O interfaces: point to point interconnects, busses, and switches. Serial versus parallel interfaces. Synchronous versus asynchronous data transfers. System architecture considerations: cache coherency issues, I/O traffic bandwidth versus latency (requirements and tradeoffs). Error detection and correction techniques. Examples: a high bandwidth I/O device, a parallel I/O protocol, and a serial I/O protocol. Prerequisite: COEN 210. (2 units) COEN 225. Secure Coding in C and C++Writing secure code in C, C++. Vulnerabilities based on strings, pointers, dynamic memory management, integer arithmetic, formatted output, file I/O. Attack modes such as (stack and heap based) buffer overflow and format string exploits. Recommended practices. Prerequisite: Experience with coding in C or C++. (2 units) COEN 226. Introduction to System Certification and AccreditationCertification and accreditation of information systems’ security provides an objective basis of confidence for approval to operate systems that protect the confidentiality and integrity of valuable information resources. This course provides an overview of the laws, regulations, standards, policies, and processes that govern and provide guidance for certification and accreditation of national security systems, including federal agency and Department of Defense information systems. The course introduces the National Information Assurance Certification and Accreditation Process (NIACAP), the DoD Information Technology Certification and Accreditation Process (DITSCAP), and Director of Central Intelligence Directive (DCID) 6/3 for intelligence systems. Also addressed are a variety of personnel, facility, and operational security management (SSM) considerations for such systems. Prerequisite: COEN 150 or COEN 250. Prerequisites may be waived for students with knowledge of the basics of computer security. (2 units) COEN 233. Computer NetworksFundamentals of computer networks: Protocols, Algorithms, and Performance. Data Communication: circuit and packet switching, latency and bandwidth, throughput/delay analysis. Application Layer: client/server model, socket programming, Web, e-mail, FTP. Transport Layer: TCP and UDP, flow control, congestion control, sliding window techniques. Network Layer: IP and routing. Data Link Layer: shared channels, media access control protocols, error detection and correction. Mobile and wireless networks. Multimedia Networking. Network security. Prerequisites: AMTH 108 or equivalent. (4 units) COEN 234. Network ManagementCovers the fundamentals of network management. Management functions and reference models, management building blocks (information, communication patterns, protocols, and management organization), and management in practice (integration issues, service-level management). Prerequisite: COEN 233 or equivalent. (2 units) COEN 235. Client/Server ProgrammingClient/server paradigm in the context of the Web and the Internet. Objects, components, frameworks, and architectures. Current platforms, such as J2EE, CORBA, and .NET. Prerequisites: Knowledge of Java programming, HTML. (4 units) COEN 236. UNIX Network ProgrammingOverview of UNIX networking tools. Detail of the different Internetwork-Process Communication (IPC) facilities under UNIX to develop distributed applications. IPC user interfaces including: pipes, shared memory, message queues, semaphores, sockets, system V Transport Layer Interface (TLI), and Remote Procedure Calls (RPC). Network protocols supported under the UNIX environment including: TCP/IP and UDP/IP. Prerequisite: COEN 233 or equivalent. (4 units) COEN 238. Multimedia Information SystemsOverview and applications of multimedia systems. Brief overview of digital media compression and processing. Operating system support for continuous media applications. System services, devices, and user interface. Multimedia file systems and information models. Presentation and authoring. Multimedia over network. Multimedia communications systems and digital rights management. Knowledge-based multimedia systems. MPEG-7. MPEG-21. Prerequisites: AMTH 377 and COEN 177 or 283. (2 units) COEN 239. Network Design AnalysisFocus on current modeling, analysis of computer networks. Graph theory for networks, queuing theory, simulation methodology, principles and tools for network design, protocol definition, implementation, validation and evaluation. Prerequisite: COEN 233 or equivalent. (4 units) COEN 250. Information Security ManagementTechniques and technologies of information and data security. Managerial aspects of computer security and risk management. Security services. Legal and ethical issues. Security processes, best practices, accreditation, and procurement. Security policy and plan development and enforcement. Contingency, continuity, and disaster recovery planning. Preparation for design and administration of a complete, consistent, correct, and adequate security program. (2 units) COEN 252. Computer ForensicsProcedures for identification, preservation, and extraction of electronic evidence. Auditing and investigation of network and host system intrusions, analysis and documentation of information gathered, and preparation of expert testimonial evidence. Forensic tools and resources for system administrators and information system security officers. Ethics, law, policy, and standards concerning digital evidence. One unit of lab is included (5 units) COEN 253. Secure Systems Development and EvaluationSoftware engineering for secure systems. Security models and implementations. Formal methods for specifying and analyzing security policies and system requirements. Development of secure systems, including design, implementation, and other life-cycle activities. Verification of security properties. Resource access control, information flow control, and techniques for analyzing simple protocols. Evaluation criteria, including the Orange and Red books and the Common Criteria, technical security evaluation steps, management, and the certification process. Prerequisite: COEN 250. (2 units) COEN 254. Secure Systems Development and Evaluation IIFormal methods for specifying security policies and systems requirements and verification of security properties. A hands-on course in methods for high-assurance using systems such as PVS from SRI, and the NRL Protocol Analyzer. Prerequisite: COEN 253 (may be taken concurrently). (2 units) COEN 256. Principles of Programming LanguagesSome history and comparison of languages. Regular expressions; abstract and concrete syntax; formal grammars and post systems; Peano, structural, and well-founded induction. Algebraic semantics and term rewriting; program specification and verification. Unification and logic programming; lambda calculus, combinators, polymorphism; denotational semantics. Prerequisites: COEN 70 and AMTH 240. (4 units) COEN 259. CompilersPrinciples and practice of the design and implementation of a compiler, focusing on the application of theory and trade-offs in design. Lexical and syntactic analysis. Semantic analysis, symbol tables, and type checking. Run-time organization. Code generation. Optimization and data-flow analysis. Prerequisites: COEN 256 or COEN 283 or COEN 210. (4 units) COEN 260. Truth, Deduction, and ComputationIntroduction to mathematical logic and semantics of languages for the computer scientist. Investigation of the relationships among what is true, what can be proved, and what can be computed in formal languages for propositional logic, first order predicate logic, elementary number theory, and the type-free and typed lambda calculus. Prerequisites: COEN 19 or AMTH 240 and COEN 70. (4 units) COEN 261. Structure and Interpretation of Computer ProgramsProgramming in a modern, high-level, functional programming language (i.e., one with functions, or procedures, as first-class objects and facilities for abstract data types). Techniques used to control complexity in the design of large software systems. Design of procedural and data abstractions; design of interfaces that enable composition of well-understood program pieces; invention of new, problem-specific languages for describing a design. Prerequisites: COEN 19 or AMTH 240 and COEN 70. (2 units) COEN 266. Artificial IntelligenceArtificial intelligence viewed as knowledge engineering. Historical perspective. Problems of representation: AI as a problem in language definition and implementation. Introduces representations, techniques, and architectures used to build applied systems and to account for intelligence from a computational point of view. Applications of rule chaining, heuristic search, constraint propagation, constrained search, inheritance, and other problem-solving paradigms. Applications of identification trees, neural nets, genetic algorithms, and other learning paradigms. Speculations on the contributions of human vision and language systems to human intelligence. Prerequisite: AMTH 240. (4 units) COEN 271. Automata, Computability, and ComplexityRegular and context-free languages (deterministic, non-deterministic, and pushdown automata). Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, probabilistic and quantum computation, interactive proof systems. Prerequisites: AMTH 240 (or equivalent) and COEN 179). (4 units) COEN 275. Object-Oriented Analysis, Design, and ProgrammingFour important aspects of object-oriented application development are covered: fundamental concepts of the OO paradigm, building analysis and design models using UML, implementation using Java, and testing object-oriented systems. Prerequisite: COEN 70. (4 units) COEN 276. Web Programming IAn architecture-centric approach to software development with emphasis on understanding existing software tools and using them to develop new tools. Pipe and filter architecture and distributed Web architectures; Unix utilities, scripting with Unix shell and Perl, XHTML, CSS, JavaScript, AJAX, XML, and XSLT to build software tools for distributed Web applications. Current practices in Web application development. Prerequisite: COEN 70. (4 units) COEN 277. Graphical User Interface Design and ProgrammingCore concepts in user interface design, task analysis, principles of good UI design, UI interaction styles, building prototypes and evaluating user interfaces, software architectures for graphical user interfaces. Prerequisite: COEN 276 or familiarity with a scripting language. (2 units) COEN 279. Design and Analysis of AlgorithmsAdvanced topics in design and analysis of algorithms: amortized and probabilistic analysis; greedy technique; dynamic programming; max flow/matching. Intractability: lower bounds; P, NP, and NP-completeness; branch-and-bound; backtracking. Current topics: primality testing and factoring; string matching. (Also listed as AMTH 377.) Prerequisite: COEN 179 or MATH 163 (or equivalent). (4 units) COEN 280. Database SystemsData models. Relational databases. Database design (normalization and decomposition). Data definition and manipulation languages (relational algebra and calculus). Architecture of database management systems. Transaction management. Concurrency control. Security, distribution, and query optimization. Prerequisite: COEN 12 or Data Structures class and COEN 283 or equivalent. (4 units) COEN 281. Pattern Recognition and Data MiningHow does an online retailer decide which product to recommend to you based on your previous purchases? How do bio-scientists decide how many different types of a disease are out there? How do computers rank Web pages in response to a user query? In this course we introduce some of the computational methods currently used to answer these and other similar questions. Topics included are association rules, clustering, data visualization, logistic regression, neural networks, decision trees, ensemble methods, and text mining. Prerequisite: AMTH 210 and 245 or equivalent, COEN 12 or equivalent. (2 units) COEN 283. Operating SystemsFundamentals of operating systems. Processes, Memory, I/O, and File Systems. Implementation and performance issues. Security, Multimedia Systems, Multiple-processor Systems, Prerequisite: COEN 12 and 20 or equivalent. COEN 284. Operating Systems Case StudyCase study of a large multiuser operating system: implementation of different operating system components. Operating system for network and distributed processing systems: naming, resource allocation, synchronization, fault detection and recovery, deadlock. Prerequisite: COEN 283 or equivalent. (2 units) COEN 285. Software EngineeringSystematic approaches to software design, project management, implementation, documentation, and maintenance. Software design methodologies: SA/SD, OOA/ OOD. Software quality assurance; testing. Reverse engineering and re-engineering. CASE. Term project. (4 units) COEN 286. Software Quality Assurance and TestingSocial factors. Configuration management. Software complexity measures. Functional and structuring testing. Test coverage. Mutation testing. Trend analysis. Software reliability. Estimating software quality. Testing OOPs. Confidence in the software. Software quality control and process analysis. Managerial aspects. Prerequisite: COEN 285. (2 units) COEN 287. Software Development Process ManagementManagement of the software development process at both the project and organization levels. Interrelationship of the individual steps of the development process. Management techniques for costing, scheduling, tracking, and adjustment. Prerequisite: COEN 285. (2 units) COEN 288. Software EthicsBroad coverage of ethical issues related to software development. Formal inquiry into normative reasoning in a professional context. Application of ethical theories to workplace issues, viz., cost-benefit analysis, externalities, individual and corporate responsibility, quality and authorship of product. Case studies and in-class topics of debate include computer privacy, encryption, intellectual property, software patents and copyrights, hackers and break-ins, freedom of speech and the Internet, error-free code, and liability. (2 units) COEN 290. Computer GraphicsRaster and vector graphics image generation and representation. Graphics primitives, line and shape generation. Scan conversion anti-aliasing algorithms. Simple transformation, windowing and hierarchical modeling. Interactive input techniques. 3D transformations and viewing, hidden surface removal. Introduction to surface definition with B-spline and Bezier techniques. Surface display with color graphics. Prerequisites: AMTH 245 and COEN 12. (4 units) COEN 296. Topics in Computer EngineeringVarious subjects of current interest. May be taken more than once if topics differ. (2 units) COEN 301. High-Level SynthesisSynthesis strategy. Hardware description language and its applications in synthesis. Cost elimination. Multilevel logic synthesis and optimization. Synthesis methods and systems. Module generation. Timing considerations. Area vs. speed tradeoffs. Design simulation and verification. Heuristic techniques. CAD tools. (Also listed as ELEN 605.) Prerequisites: COEN 303 and COEN 200 or 209. (2 units) COEN 303. Logic Design Using HDLAlgorithmic approach to design of digital systems. Use of hardware description languages for design specification. Different views of HDL structural, register transfer, and behavioral. Simulation and synthesis of systems descriptions. (Also listed as ELEN 603.) Prerequisite: COEN 127 or equivalent. (2 units) COEN 304. Semicustom Design with Programmable DevicesDigital circuit design methodologies. Semicustom implementations. Programmable logic devices classification, technology, and utilization. Software tools synthesis, placement, and routing. Design verification and testing. (Also listed as ELEN 604.) Prerequisite: COEN 200 or 209. (2 units) COEN 305. VLSI Physical DesignPhysical design is the phase that follows logic design, and it includes the following steps that precede the fabrication of the IC logic partitioning: cell layout, floor planning, placement, routing. These steps are examined in the context of very deep submicron technology. Effect of parasitic devices and packaging are also considered. Power distribution and thermal effects are essential issues in this design phase. (Also listed as ELEN 389.) Prerequisites: COEN 204/ELEN 388 or equivalent. (2 units) COEN 307. Digital Computer ArithmeticFixed-point and floating-point number representation and arithmetic. High-speed addition and subtraction algorithms and architectures. Multiplication and division algorithms and architectures. Decimal arithmetic. Serial vs. parallel arithmetic circuits. Residue number arithmetic. Advanced arithmetic processing units. High-speed number crunchers. Arithmetic codes for error detection. VLSI perspective and reliability issues. Signed- digit (SD) representation of signed numbers. Basic binary addition. High-speed addition algorithms and architectures. Basic and advanced multiplication and division algorithms and architectures. Hardware cost, VLSI layout perspective, and reliability issues. The IEEE 754 floating point number implementation standard. Residue number arithmetic. High-speed number crunchers. Arithmetic codes for error detection. Prerequisite: COEN 210. (2 units) COEN 308. Design for TestabilityPrinciples and techniques of designing circuits for testability. Concept of fault models. The need for test development. Testability measures. Ad hoc rules to facilitate testing. Easily testable structures, PLAs. Scan-path techniques, full and partial scan. Built-in self-testing (BIST) techniques. Self-checking circuits. Use of computer-aided design (CAD) tools. (Also listed as ELEN 608.) Prerequisite: COEN 200 or equivalent. (2 units) COEN 310. Digital Testing with ATEIdentification of design-, manufacturing-, and packaging-induced faults. Static and dynamic electrical tests under normal and stressed conditions. Architecture of different automatic test equipment (ATE) and their corresponding test programming software environments. Test-result logging for statistical process control. (Also listed as ELEN 610.) Prerequisites: COEN 200 or 209 and ELEN 250. (2 units) COEN 313. Advanced Computer ArchitectureAdvanced system architectures. Overview of different computing paradigms. Instruction level parallelism and its dynamic exploitation. Superscalar, VLIW, RISC vs. CISC. Advanced memory hierarchy design and storage systems. Instruction level parallelism (ILP) and its dynamic exploitation (scoreboards, Tomasulo‚Äôs algorithm, branch prediction and out-of-order execution support). Compiler-based (static) techniques to exploit ILP (scheduling techniques for VLIW CPU‚Äôs). Thread-level parallelism and its hardware support. Advanced memory hierarchy design. Multiprocessor synchronization and memory consistency. Prerequisite: COEN 210. (2 units) COEN 315. Web Architecture and ProtocolsHistory and overview of World Wide Web technology. Web clients and browsers. State management, session persistence, and cookies. Spiders, bots, and search engines. Web proxies. Web servers and server farms. HTTP and Web protocols. Web caching and content distribution. Load balancing. Web security and firewalls. Web workload and traffic characterization. Future of Web technology. Prerequisite: COEN 233 or equivalent. (2 units) COEN 316. Web ServicesCovers various technologies, such as protocols, frameworks, and the technology stack, which make Web Services a successful paradigm shift in enterprise computing. Includes a wide range of current topics, such as WSDL, SOAP, UDDI, and JAX-RPC. Prerequisites: COEN 233 or equivalent, COEN 275. (2 units) COEN 317. Distributed SystemsFundamental algorithms for distributed system architectures, inter-process communications, network configurations, performance issues, latency tolerance, distributed file systems, network transparency, fault tolerant distributed systems, load balancing, synchronization, reliability. Prerequisites: COEN 233 and 283 or equivalent. (4 units) COEN 318. Parallel Computation SystemsIntroduction to parallel processing. Parallel system classifications. Parallel computation models and algorithms. Performance analysis and modeling. Interconnection networks. Vector processors. SIMD and MIMD architectures and their hybrid. Systolic arrays. Dataflow architectures. Introduction to parallel languages and parallelizing compilers. Prerequisite: COEN 210 and AMTH 247, or permission of instructor. (4 units) COEN 319. Parallel ProgrammingSoftware and application issues of parallel systems. Mapping applications to parallel architectures. Problem partitioning. Parallel algorithms. Parallel programs. Parallel compiler design. Hardware-independent parallel programming. Parallel operating systems. Case studies of typical problem solutions and algorithms of parallel systems. Prerequisite: COEN 318. (2 units) COEN 320. Computer Performance EvaluationMeasurement, simulation, and analytic determination of computer systems performance. Work load characterization. Bottleneck analysis tuning. Prerequisites: COEN 210 and AMTH 211. (4 units) COEN 329. Network TechnologyAdvanced technologies and protocols for broadband LAN, MAN, WAN, L2 VPN, and L3 VPN. Current technologies: tunneling, QoS and security in content delivery, optical networks, support for multimedia communication. Emerging technologies, e.g., Carrier Ethernet. Prerequisite: COEN 233 or equivalent. (4 units) COEN 331. Wireless and Mobile NetworksCoverage of the physical layer, OFDM and cellular networks. Medium access control in wireless networks; mobile IP; 802.11a, b, g, and n wireless LANS; ad hoc networks; Bluetooth and Zigbee; satellite networks; GSM; GPRS; CDMA; WCDMA; and wireless signaling protocols. Emerging technologies: Ethernet wireless backhaul, 3G, and 4G. Prerequisite: COEN 233 or equivalent. (4 units) COEN 332 Wireless/Mobile Multimedia NetworksThis course will cover IMS (Internet Protocol Multimedia Subsystem), an architectural framework for providing IP-based real-time traffic, such as voice and video, in wireless networks. IMS aims at the convergence of data, speech, fixed, and mobile networks and provides real-time services on top of the UMTS (Universal Mobile Telecommunication System) packet-switched domain. Prerequisite: COEN 331. (4 units) COEN 335. High-Performance NetworkingHigh-speed networks requirements, i.e., quality of service (QoS). Technologies and protocols for high-speed LAN, MAN, WAN, Layer 2 and Layer 3 switching, giga-bit Ethernet (1GE, 10GE), Q.931 signaling, fibre channel, Ethernet over SONET/SDH, PoS, fiber optics communications, DWDM, and CWDM. Tera-bit routers. Emerging technologies: 40GE, 100GE. Prerequisite: COEN 233 or equivalent. (2 units) COEN 337. Internet Architecture and Protocols |

