Santa Clara University

Graduate School of Engineering


Graduate Courses

Some graduate courses may not apply toward certain degree programs. During the first quarter of study, students should investigate with their faculty advisors the program of study they wish to pursue.

COEN 200. Logic Analysis and Synthesis
Analysis 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 I
Description of discrete signals and systems. Z-transform. Convolution and transfer functions. System response and stability. Fourier transform and discrete Fourier transform. Sampling theorem. Digital filtering. Also listed as ELEN 233. Prerequisite: ELEN 210 or its undergraduate equivalent of ELEN 110. (2 units)

COEN 201E. Digital Signal Processing I, II
Same 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 II
Continuation of COEN 201. Digital FIR and IIR filter design and realization techniques. Multirate signal processing. Fast Fourier transform. Quantization effects. Also listed as ELEN 234. Prerequisite: COEN 201. (2 units)

COEN 203. VLSI Design I
Introduction 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 II
Continuation 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. SoC (System-on-Chip) Verification
A typical SoC costs tens of millions of dollars and involves tens of engineers in various geographical locations. It also incorporates a large number of heterogeneous IP (intellectual property) cores. A single error may dictate a Fab spin of over a million dollar, and typically costs much more by delaying TTM (time-to-market). Therefore, SoC verification is a major challenge that needs to be mastered by design engineers. This course presents various state-of-the-art verification techniques used to ensure thorough testing of the SoC design. Both logical and physical verification techniques will be covered. Also, the use of simulation, emulation, assertion-based verification, and hardware/ software co-verification techniques will be discussed. Also listed as ELEN 613. Prerequisites: COEN 200 and COEN 303 or equivalent. (2 units)

COEN 208. SoC (System-on-Chip) Formal Verification Techniques
With continuous increase of size and complexity of SoC, informal simulation techniques are increasing design cost prohibitively and causing major delays in TTM (time-to-market). This course focuses on formal algorithmic techniques used for SoC verification and the tools that are widely used in the industry to perform these types of verifications. These include both programming languages such as System Verilog, Vera, and e-language. The course also covers the various formal verification techniques such as propositional logic; basics of temporal logic. Theorem proving, and equivalent checking. Industrial-level tools from leading EDA vendors will be used to demonstrate the capabilities of such techniques. Also listed as ELEN 614. Prerequisites: COEN 200 and COEN 303 or equivalent. (2 units)

COEN 210. Computer Architecture
Historical perspective. Performance analysis. Instruction set architecture. Computer arithmetic. Datapath. Control unit. Pipelining. Data and control hazards. Memory hierarchy. Cache. Virtual memory. Parallelism and multiprocessor. Prerequisites: COEN 20 and COEN 21 or equivalent. (4 units)

COEN 218. Input-Output Structures
I/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: COEN 210 and experience with coding in C or C++. (2 units)

COEN 226. Introduction to System Certification and Accreditation
Certification 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. 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. Prerequisite may be waived for students with knowledge of the basics of computer security. (2 units)

COEN 233. Computer Networks
Fundamentals 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: COEN 20 or equivalent and AMTH 108 or equivalent. (4 units)

COEN 234. Network Management
Covers 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 Programming
Client/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 and HTML. (4 units)

COEN 236. UNIX Network Programming
Overview 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 Systems
Overview 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 Analysis
Focus on current modeling and 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 240. Machine Learning
This course presents an introduction to machine learning, the study of computing systems that improve their performance with experience, including discussions of each of the major approaches. The primary focus of the course will be on understanding the underlying theory and algorithms used in various learning systems. Prerequisite: AMTH 108 or AMTH 210, MATH 53 or AMTH 246, COEN 179 or 279. (4 units)

COEN 241. Cloud Computing
Introduction to cloud computing, cloud architecture and service models, the economics of cloud computing, cluster/grid computing, virtualization, big data, distributed file system, MapReduce paradigm, NoSQL, Hadoop, horizontal/vertical scaling, thin client, disaster recovery, free cloud services and open source software, example commercial cloud services, and federation/presence/identity/privacy in cloud computing. Prerequisites: COEN 12 and COEN 146. (4 units)

COEN 242. Big Data
Introduction to Big data. NoSQL data modeling. Large-scale data processing platforms. HDFS, MapReduce and Hadoop. Scalable algorithms used to extract knowledge from Big data. Advanced scalable data analytics platforms. Prerequisites: AMTH 108 or AMTH 210 and COEN 178. (4 units)

COEN 250. Information Security Management
Techniques 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 Forensics
Procedures 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. Prerequisite: COEN 20 or equivalent. (5 units)

COEN 252L. Laboratory for COEN 252
Co-requisite: COEN 252. (1 unit)

COEN 253. Secure Systems Development and Evaluation
Software 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 II
Formal 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 Languages
Some 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. Compilers
Principles 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. Prerequisite: COEN 256 or COEN 283 or COEN 210. (4 units)

COEN 260. Truth, Deduction, and Computation
Introduction 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 Programs
Programming 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 Intelligence
Artificial 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 268. Mobile Application Development
Design and implementation of applications running on a mobile platform such as smart phones and tablets. Programming languages and development tools for mobile SDKs. Writing code for peripherals—GPS, accelerometer, touchscreen. Optimizing user interface for a small screen. Effective memory management on a constrained device. Embedded graphics. Persistent data storage. Prerequisite: COEN 20 or COEN 70 or equivalent. Co-listed with COEN 168. (4 units)

COEN 271. Automata, Computability, and Complexity
Regular 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. Prerequisites: AMTH 240 (or equivalent) and COEN 179. (4 units)

COEN 272. Web Search and Information Retrieval
Basic and advanced techniques for organizing large-scale information on the Web. Search engine technologies. Big data analytics. Recommendation systems. Text/Web clustering and classification. Text mining. Prerequisites: AMTH 108 or AMTH 210, MATH 53 or AMTH 246, and COEN 179 or 279. (4 units)

COEN 275. Object-Oriented Analysis Design, and Programming
Four 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 I
Fundamentals of the World Wide Web and its architecture. Designing applications with separation of content and presentation using XHTML, HTML5 and CSS. Introduction to the Document Object Model (DOM). Client side programming with Javascript, JQuery and AJAX. Server-side programming using PHP. Introduction to XML technologies (XML DTD, XSLT). Database access using MySQL. Intro to Web graphics using SVG. Prerequisite: COEN 12 or CSCI 61. (4 units)

COEN 277. Graphical User Interface Design and Programming
Core 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 278. Web Programming II
Advanced topics in Web Application Development; Development with Web Frameworks (Ruby with Rails), implement Web services and management of Web security. Co-listed with COEN 164. Prerequisite: COEN 276. (4 units)

COEN 279. Design and Analysis of Algorithms
Techniques of design and analysis of algorithms: proof of correctness; running times of recursive algorithms; design strategies: brute-force, divide and conquer, dynamic programming, branch-and-bound, backtracking, and greedy technique; max flow/ matching. Intractability: lower bounds; P, NP, and NP-completeness. Also listed as AMTH 377. Prerequisite: COEN 12 or equivalent. (4 units)

COEN 280. Database Systems
Data 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. Prerequisites: COEN 12 or Data Structures class and COEN 283 or equivalent. (4 units)

COEN 281. Pattern Recognition and Data Mining
How 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. Prerequisites: AMTH 210 and 245 or equivalent, COEN 12 or equivalent. (4 units)

COEN 282. Energy Management Systems
Energy Management Systems (EMS) is a class of control systems that Electric Utility Companies utilize for three main purposes: Monitoring, Engagement and Reporting. Monitoring tools allow Electric Utility Companies to manage their assets to maintain the sustainability and reliability of power generation and delivery. Engagement tools help in reducing energy production costs, transmissions and distribution losses by optimizing utilization of resources and/or power network elements. The reporting tools help tracking operational costs and energy obligations. Also listed as ELEN 288. (2 units)

COEN 283. Operating Systems
Fundamentals of operating systems. Processes, Memory, I/O, and File Systems. Implementation and performance issues. Security, Multimedia Systems, Multiple-processor Systems. Prerequisites: COEN 12 and 20 or equivalent. (4 units)

COEN 284. Operating Systems Case Study
Case 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 Engineering
Systematic 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 Testing
Social 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 Management
Management 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 Ethics
Broad 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 Graphics
Raster 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 Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. (2–4 units)

COEN 301. High-Level Synthesis
Synthesis 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 HDL
Algorithmic 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 Devices
Digital 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 Design
Physical 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 Arithmetic
Fixed-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. Prerequisite: COEN 210. (2 units)

COEN 308. Design for Testability
Principles 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 ATE
Identification 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 Architecture
Advanced system architectures. Overview of different computing paradigms. Instruction level parallelism and its dynamic exploitation. Superscalar, VLIW. Advanced memory hierarchy design and storage systems. Compiler-based (static) techniques to exploit ILP (scheduling techniques for VLIW CPU’s). Thread-level parallelism and its hardware support. Multiprocessor synchronization and memory consistency. Prerequisite: COEN 210. (2 units)

COEN 315. Web Architecture and Protocols
History 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 317. Distributed Systems
Fundamental algorithms for distributed system architectures, inter-process communications, data consistency and replication, distributed transactions and concurrency control, distributed file systems, network transparency, fault tolerant distributed systems,synchronization, reliability. Prerequisites: COEN 233 and 283 or equivalent. (4 units)

COEN 318. Parallel Computation Systems
Introduction 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. Prerequisites: COEN 210 and AMTH 247 or instructor approval. (4 units)

COEN 319. Parallel Programming
Concept of concurrency, thread programming, thread/process synchronization, synchronization algorithms and language constructs, shared-memory vs. message-passing. Parallel programming concept, performance metrics, overview of multiprocessor architectures, evaluation of parallel algorithms, data parallel programming, shared-memory and message-passing parallel programming. Case studies on application algorithms. Hands-on lab on multi-core CPUs and many-core GPUs. Case studies of typical problem solutions and algorithms of parallel systems. Prerequisites: COEN 11 and COEN 210. (4 units)

COEN 320. Computer Performance Evaluation
Measurement, simulation, and analytic determination of computer systems performance. Workload characterization. Bottleneck analysis tuning. Prerequisites: COEN 210 and AMTH 211. (4 units)

COEN 329. Network Technology
Advanced 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 Networks
Coverage of the physical layer: transmission, modulation, and error correction techniques. Spread spectrum schemes including FHSS and DSSS. Satellite and cellular networks. Medium access control in wireless networks: FDMA, TDMA and CDMA; mobile IP; 802.11 wireless LANS; ad hoc networks. Emerging technologies. Prerequisite: COEN 233 or equivalent. (4 units)

COEN 332. Wireless/Mobile Multimedia Networks
This 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 Networking
High-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
In-depth and quantitative study of Internet algorithms, protocols, and services. Topics include: scheduling and buffer/ queue management, flow/congestion control, routing, traffic management, support for multimedia/real-time communication. Prerequisite: COEN 233 or equivalent. (4 units)

COEN 338. Image and Video Compression
Image and video compression. Entropy coding. Prediction. Quantization. Transform coding and 2-D discrete cosine transform. Color compression. Motion estimation and compensation. Digital video. Image coding standards such as JPEG. Video coding standards such as the MPEG series and the H.26x series. H.264/MPEG-4 AVC coding. JCT-VC HEVC coding. Rate-distortion theory and optimization. Visual quality and coding efficiency. Brief introduction to 3D video coding and JCT-3V 3D-HEVC. Applications. Also listed as ELEN 641. Prerequisites: AMTH 108, AMTH 245 and basic knowledge of algorithms. (4 units)

COEN 339. Audio and Speech Compression
Audio and speech compression. Digital audio signal processing fundamentals. Non-perceptual coding. Perceptual coding. Psychoacoustic model. High-quality audio coding. Parametric and structured audio coding. Audio coding standards. Scalable audio coding. Speech coding. Speech coding standards. Also listed as ELEN 639. Prerequisites: AMTH 108, AMTH 245 and COEN 279 or equivalent. (2 units)

COEN 340. Digital Image Processing I
Digital image representation and acquisition; Fourier, Cosine, Walsh, and wavelet transforms; linear and nonlinear filtering; image enhancement; morphological filtering. Also listed as ELEN 640. Prerequisite: COEN 202. (2 units)

COEN 341. Information Theory
Introduction to the fundamental concepts of information theory. Source models. Source coding. Discrete channel without memory. Continuous channel. Alternate years. Also listed as ELEN 244. Prerequisites: ELEN 241 and AMTH 211. (2 units)

COEN 343. Digital Image Processing II
Image restoration using least squares methods in image and spatial frequency domain; matrix representations; blind deconvolution; reconstructions from incomplete data; image segmentation methods. Also listed as ELEN 643. Prerequisite: COEN 340. (2 units)

COEN 344. Computer Vision I
Introduction to image understanding, psychology of vision, sensor modelsfeature extraction, shape from shading, stereo vision, motion detection and optical flow. Also listed as ELEN 644. Prerequisite: ELEN 233 or 640. (2 units)

COEN 345. Computer Vision II
Texture, segmentation, region growing. 2-D geometrical structures and 3-D inference. Syntatic models, object matching, and decision trees. Also listed as ELEN 645. Prerequisites: COEN 344 and AMTH 211. (2 units)

COEN 347. Advanced Techniques in Video Coding
Rate-distortion optimization. Visual quality and coding efficiency. Wavelet transform and compression. Image and video coding standards such as JPEG 2000, H.264/AVC and HEVC extensions. Scalable video coding. Multiview and 3D video coding. JCT-3V 3D-HEVC. Distributed video coding. Video communications systems. Congestion control. Rate control. Error control. Transcoding. Other advanced topics. Prerequisite: COEN 338 or ELEN 641. (4 units)

COEN 348. Speech Coding I
Review of sampling and quantization. Introduction to digital speech processing. Elementary principles and applications of speech analysis, synthesis, and coding. Speech signal analysis and modeling. The LPC Model. LPC Parameter quantization using Line Spectrum Pairs (LSPs). Digital coding techniques: Quantization, Waveform coding. Predictive coding, Transform coding, Hybrid coding, and Sub-band coding. Applications of speech coding in various systems. Standards for speech and audio coding. Also listed as ELEN 421. Prerequisite: ELEN 334 or equivalent. (2 units)

COEN 349. Speech Coding II
Advanced aspects of speech analysis and coding. Analysis-by-Synthesis (AbS) coding of speech, Analysis-as-Synthesis (AaS) coding of speech. Code-excited linear speech coding. Error-control in speech transmission. Application of coders in various systems (such as wireless phones). International standards for speech (and audio) coding. Real-time DSP implementation of speech coders. Research project on speech coding. Introduction to speech recognition. Also listed as ELEN 422. Prerequisite: ELEN 421. (2 units)

COEN 350. Network Security
Protocols and standards for network security. Network-based attacks. Authentication, integrity, privacy, non-repudiation. Protocols: Kerberos, Public Key Infrastructure, IPSec, SSH, PGP, secure e-mail standards, etc. Wireless security. Programming required. Prerequisite: COEN 250 or instructor approval. (2 units)

COEN 351. Internet and E-Commerce Security
Special security requirements of the Internet. Secure electronic business transactions. E-mail security. CGI scripts, cookies, and certified code. Intrusion prevention strategies. Designing secure e-commerce systems. Agent technologies. Legal requirements for E-Commerce. Prerequisite: COEN 253. (2 units)

COEN 351L. Laboratory for COEN 351
Co-requisite: COEN 351. (1 unit)

COEN 352. Advanced Topics in Information Assurance
Topics may include advanced cryptology, advanced computer forensics, secure business transaction models, or other advanced topics in information assurance. May be repeated for credit if topics differ. Prerequisites: AMTH 387 and COEN 250. (2 units)

COEN 358. Introduction to Parallelizing Compilers
Introduction to parallelizing compiler techniques. Automatic restructuring. Loop transformation. Dependence analysis. Vectorization. Partitioning and scheduling. Data alignment. Data distribution. Algorithm mapping. Parallel code generation. Prerequisite: COEN 318 or instructor approval. (4 units)

COEN 359. Design Patterns
Software design patterns and their application in developing reusable software components. Creational, structural, and behavioral patterns are studied in detail and are used in developing a software project. Prerequisite: COEN 275. (4 units)

COEN 362. Logic Programming
Application of logic to problem solving and programming; logic as a language for specifications, programs, databases, and queries; separation of the logic and control aspects of programs; bottom-up vs. top-down reasoning applied to problem solving and programming; nondeterminism, concurrency, and invertibility in logic programs. Programs written in Prolog. Prerequisite: COEN 70 or equivalent. (2 units)

COEN 376. Expert Systems
Overview of tools and applications of expert systems, as well as the theoretical issues: What is knowledge, can it be articulated, and can we represent it? Stages in the construction of expert systems: problem selection, knowledge acquisition, development of knowledge bases, choice of reasoning methods, life cycle of expert systems. Basic knowledge of representation techniques (rules, frames, objects) and reasoning methods (forward-chaining, backward-chaining, heuristic classification, constraint reasoning, and related search techniques). Requires completion of an expert systems project. Prerequisite: COEN 366. (4 units)

COEN 379. Advanced Design and Analysis of Algorithms
Amortized and probabilistic analysis of algorithms and data structures: disjoint sets, hashing, search trees, suffix arrays and trees. Randomized, parallel, and approximation algorithms. Also listed as AMTH 379. Prerequisite: AMTH 377/COEN 279. (4 units)

COEN 380. Advanced Database Systems
Database system design and implementation. Disk and file organization. Storage and indexes; query processing and query optimization. Concurrency control; transaction management; system failures and recovery. Parallel and distributed databases. MapReduce. Prerequisite: COEN 280 or equivalent. (4 units)

COEN 385. Formal Methods in Software Engineering
Specification, verification, validation. Notations and the models they support. Classes of specification models: algebraic, state machine, model theoretic. Appropriate use of formal methods: requirements, design, implementation, testing, maintenance. Data and program specification and design using Z or any other modern formal method. Case studies. Prerequisite: COEN 260 or other courses in predicate logic. (2 units)

COEN 386. Software Architecture
Understanding and evaluating software systems from an architectural perspective. Classification, analysis, tools, and domain-specific architectures. Provides intellectual building blocks for designing new systems using well-understood architectural paradigms. Examples of actual system architectures that can serve as models for new designs. Prerequisite: COEN 385. (2 units)

COEN 389. Energy-Efficient Computing
This course covers energy-efficient software practices. Historically, software has always been written to run faster and faster, and energy has always been considered a plentiful resource. However, it has been shown that computers use a lot of energy, which may not always be so plentiful, leading to the redesign of traditional software solutions in different areas. The focus of the course will be on operating systems, networks, compilers, and programming. Prerequisites: COEN 233 or equivalent and COEN 283 or equivalent. (2 units)

COEN 396. Advanced Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. See department Web site for current offerings and descriptions. (2–4 units)

COEN 397. Research Seminar in Digital Systems
Advanced topics in digital systems design and test. Themes vary yearly (e.g., memory devices, effect of GaAs on performance and reliability, missing technologies, etc.). Students are expected to investigate current research and practices, and give oral presentations. Also listed as ELEN 697. Prerequisite: Instructor approval. (2 units)

COEN 400. Computer Engineering Graduate Seminars
Regularly scheduled seminars on topics of current interest in the field of computer engineering. May apply a maximum of 1 unit of credit from COEN 400 to any graduate degree in the Department of Computer Engineering. Consult department office for additional information. Prerequisites: GPA of 3.5 or better and completion of 12 or more units at SCU. P/NP grading. (1–2 units)

COEN 485. Software Engineering Capstone
A capstone course in which the student applies software engineering concepts and skills to a software engineering project. Team projects are strongly encouraged. Projects will cover all aspects of the software life-cycle: specification of requirements and functionality; project planning and scoping; system and user interface definition; analysis of architectural solutions; detailed system design; implementation and integration; testing and quality assurance; reliability, usability, and performance testing, documentation, evolution, and change management. Students enrolled in the MSSE program must complete three one-quarter (preferably consecutive) sections. Students enrolled in the software engineering certificate program must complete one section. Prerequisites: COEN 286 and COEN 386. (2 units)

COEN 490. Mathematical Reasoning in Computer Science
(Seminar Style) Short introduction to the praxis of mathematical proofs. Students will write and present proofs and papers on instructor-approved topics related to Computer science and engineering. Stress is on mathematical exactness. Maximum enrollment of 10. Enrollment is by preference to Ph.D. students, but is open to other students as space allows. Prerequisite: Open to Ph.D. students or with instructor approval. (2 units)

COEN 493. Directed Research
Special research directed by a faculty member. By arrangement. Prerequisite: Registration requires the faculty member’s approval. (1–6 units per quarter)

COEN 497. Master’s Thesis Research
By arrangement. Limited to master’s students in computer engineering. (1–9 units per quarter, for a total of at least 8 units)

COEN 498. Ph.D. Thesis Research
By arrangement. Limited to Ph.D. students in computer engineering. (1–15 units per quarter, for a total of 36 units)

COEN 499. Independent Study
Special problems. By arrangement. Limited to computer engineering majors. (1–6 units per quarter)

Printer-friendly format