Santa Clara University

Graduate School of Engineering

COURSE DESCRIPTIONS

Please Note: Depending on enrollment, some courses may not be offered every year.

Lower-Division Undergraduate Courses

COEN 10. Introduction to Programming
Overview of computing. Introduction to program design and implementation: problem definition, functional decomposition, and design of algorithm programming in PHP and C: variables, data types, control constructs, arrays, strings, and functions. Program development in the Linux environment: editing, compiling, testing, and debugging. Credit is not allowed for more than one introductory class such as COEN 10, COEN 44, CSCI 10, or OMIS 30. Co-requisite: COEN 10L. (4 units)

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

COEN 11. Advanced Programming
The C Language: structure and style. Types, operators, and expressions. Control flow. Functions. Pointers, arrays, and strings. Structures and dynamic memory allocation. I/O and file processing. Special operators. Recursion and threads. The Unix environment. Prerequisite: Previous programming experience and/or a grade of C- or better in an introductory computer programming course such as COEN 10, CSCI 10, or OMIS 30. Co-requisite: COEN 11L. (4 units)

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

COEN 12. Abstract Data Types and Data Structures
Data abstraction: abstract data types, information hiding, interface specification. Basic data structures: stacks, queues, lists, binary trees, hashing, tables, graphs; implementation of abstract data types in the C language. Internal sorting: review of selection, insertion, and exchange sorts; quicksort, heapsort; recursion. Analysis of run-time behavior of algorithms; Big-O notation. Introduction to classes in C++. Credit not allowed for more than one introductory data structures class, such as COEN 12 or CSCI 61. Prerequisite: A grade of C- or better in either COEN 11 or COEN 44. Co‑requisite: COEN 12L. Recommended co‑requisite: COEN 19 or M ATH 51. (4 units)

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

COEN 19. Discrete Mathematics
Relations and operations on sets, orderings, elementary combinatorial analysis, recursion, algebraic structures, logic, and methods of proof. Also listed as MATH 51. (4 units)

COEN 20. Introduction to Embedded Systems
Introduction to computer organization: CPU, registers, buses, memory, I/O interfaces. Number systems: arithmetic and information representation. Assembly language programming: addressing techniques, arithmetic and logic operations, branching and looping, stack operations, procedure calls, parameter passing, and interrupts. C language programming: pointers, memory management, stack frames, interrupt processing. Multi-threaded programming; pre-emptive and nonpre-emptive kernels; shared resources; scheduling. Prerequisite: A grade of C- or better in COEN 11 or CSCI 60. Co-requisite: COEN 20L. Recommended co-requisite or prerequisite: COEN 12 or CSCI 61. (4 units)

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

COEN 21. Introduction to Logic Design
Boolean functions and their minimization. Designing combinational circuits, adders, multipliers, multiplexers, decoders. Noise margin, propagation delay. Bussing. Memory elements: latches and flip-flops; timing; registers; counters. Programmable logic, PLD, and FPGA. Use of industry quality CAD tools for schematic capture and HDL in con-junction with FPGAs. Also listed as ELEN 21. Co-requisite: COEN 21L. (4 units)

COEN 21L. Laboratory for COEN 21
Also listed as ELEN 21L. Co-requisite: COEN 21. (1 unit)

COEN 21C. Introduction to Logic Design
Compressed version of COEN 21 taught in the graduate time format. Also listed as ELEN 21C. (2 units)

COEN 29. Current Topics in Computer Science and Engineering
Subjects of current interest. May be taken more than once if topics differ. (4 units)

COEN 44. Applied Programming
Computer programming in C, including input/output, selection structures, loops, iterative solutions, function definition and invocation, macros, pointers, memory allocation, and top-down design. Programming of elementary mathematical operations. Applications to engineering problems. Prerequisite: MATH 13. Co-requisite: COEN 44L. (4 units)

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

COEN 45. Applied Programming in MATLAB
Computer programming in MATLAB, including input/output, selection structures, loops, iterative solutions, function definition and invocation, top-down design. Programming of elementary mathematical operations. Applications to engineering problems. Prerequisite: MATH 13. Co-requisite: COEN 45L. (4 units)

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

COEN 60. Introduction to Web Technologies
Overview of the Internet and World Wide Web technologies and practices. Introduction to basic markup language, style sheet language, server-side scripting language, and website design. Emerging web applications. Co-requisite: COEN 60L. (4 units)

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

COEN 70. Formal Specification and Advanced Data Structures
Specification, representation, implementation, and validation of data structures; object-oriented design and programming in a strongly typed language with emphasis on reliable reusable software; formal specification of data structures (e.g. graphs, sets, bags, tables, environments, trees, expressions, graphics); informal use of specifications to guide implementation and validation of programs; guidelines and practice in designing for and with reuse. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in either COEN 19 or MATH 51. Co-requisite: COEN 70L. (4 units)

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

Upper-Division Undergraduate Courses

OEN 120. Real Time Systems
Overview of real-time systems: classification, design issues and description. Finite state machines and statecharts. Robot programming: odometry and the use of sensors. Real-time programming languages, real-time kernels and multi-threaded programming. Unified Modeling Language for the design of real-time applications. Performance analysis. Prerequisite:A grade of C- or better in either COEN 12 or CSCI 61. Co-requisite: COEN 120L. (4 units)

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

COEN 122. Computer Architecture
Overview of computer systems. Performance measurement. Instruction set architecture. Computer arithmetic. CPU datapath design. CPU control design. Pipelining. Data/control hazards. Memory hierarchies and management. Introduction of multiprocessor systems. Hardware description languages. Laboratory project consists of a design of a CPU. Prerequisites: A grade of C- or better in either COEN 20 or ELEN 33 and in either COEN 21 or ELEN 21. Co-requisite: COEN 122L. (4 units)

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

COEN 127. Advanced Logic Design
Contemporary design of finite-state machines as system controllers using MSI, PLDS, or FPGA devices. Minimization techniques, performance analysis, and modular system design. HDL simulation and synthesis. Also listed as ELEN 127. Prerequisite: COEN 21; Co-requisites: COEN 127L and ELEN 115. (4 units)

COEN 127L. Laboratory for COEN 127
Also listed as ELEN 127L. Co-requisite: COEN 127. (1 unit)

COEN 129. Current Topics in Computer Science and Engineering
Subjects of current interest. May be taken more than once if topics differ. (4 units)

COEN 145. Introduction to Parallel and Concurrent Programming
Concept of parallelism, thread programming, thread/process synchronization, synchronization algorithms and language constructs, shared-memory versus message-passing. Parallel programming concept, performance metrics, overview of parallel 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. Prerequisites: A grade of C- or better in COEN 11 and 122. Co-requisite: COEN 145L. (4 units)

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

COEN 146. Computer Networks
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 computing and wireless networks. Network security. Laboratory consists of projects on software development of network protocols and applications. Prerequisite: A grade of C- or better in either COEN 12 or CSCI 61. Co-requisite: COEN 146L. Recommended co-requisite or prerequisite: AMTH 108 or MATH 122. (4 units)

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

COEN 148. Computer Graphics Systems
Interactive graphic systems. Graphics primitives, line and shape generation. Simple transforming and modeling. Efficiency analysis and modular design. Interactive input techniques. Three-dimensional transformations and viewing, hidden surface removal. Color graphics, animation, real-time display considerations. Parametric surface definition and introduction to shaded-surface algorithms. Offered in alternate years. Prerequisite: MATH 53 ; A grade a C- or better in either COEN 12 or CSCI 61. Co-requisite: COEN 148L. (4 units)

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

COEN 150. Introduction to Information Security
Overview of information assurance. Legal and ethical issues surrounding security and privacy. Malware and secure coding techniques. Authentication and authorization. Other related topics. Prerequisite: Junior standing. (4 units)

COEN 152. Introduction to 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. Prerequisite: A grade of C- or better in either COEN 12 or CSCI 61 and in COEN 20. Co-requisite: COEN 152L. (4 units)

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

COEN 160. 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. Co-listed with COEN 275. Prerequisite: A grade of C- or better in COEN 70. Co-requisite: COEN 160L. (4 units)

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

COEN 161. Web Programming I
Fundamentals of World Wide Web (WWW) and the technologies that are required to develop web-based applications. Topics cover HTML5, CSS, JavaScript, PHP, MYSQL and XML. Prerequisite: A grade of C- or better in either COEN 12 or CSCI 61. Co-requisite: COEN 161L. (4 units)

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

COEN 162. Web Infrastructure
History and overview of World Wide Web technology. Web protocols. Web Navigation. Web caching and load balancing. P2P, Instant Messaging, and Web Services. Web Servers, Server Farms, and Data Centers. Prerequisite: A grade of C- or better in COEN 146. (4 units)

COEN 163. Web Usability
Principles of user-centered design. Principles of human-computer interaction. Fundamental theories in cognition and human factors: information processing, perception and representation, constructivist and ecological theories, Gestalt laws of perceptual organization. Usability engineering: user research, user profiling, method for evaluating user interface, usability testing. Prototyping in user interface: process, methods of evaluating and testing. Inclusive design in user interface design: accessibility issues, compliance with section 508 of Rehabilitation Act. Prerequisite: A grade of C- or better in COEN 12 or CSCI 61. Co-requisite: COEN 163L. (4 units)

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

COEN 164. Web Programming II
Advanced topics in Web Application Development; Development with Web Frameworks (Ruby with Rails), implement Web services and management of Web security. Prerequisite: A grade of C- or better in COEN 161. Co-requisite: COEN 164L. (4 units)

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

COEN 165. Modeling and Control of Rigid Body Dynamics
Mathematical and physical principles of motion of rigid bodies, including movement, acceleration, inertia and collision. Modeling of rigid body dynamics for three-dimensional graphic simulation; controlling the motion of rigid bodies in robotic applications. Also listed as ARTS 73. Prerequisites: MATH 14, COEN 12 or CSCI 61. (4 units)

COEN 166. Artificial Intelligence
Philosophical foundations of Artificial Intelligence, problem solving, knowledge and reasoning, neural networks and other learning methods. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in either COEN 19 or MATH 51. (4 units)

COEN 168. 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, COEN 70 or equivalent. (4 units)

COEN 169. Web Information Management
Theory, design, and implementation of information systems that process, organize, analyze large-scale information on the Web. Search engine technology, recommender systems, cloud computing, social network analysis. Prerequisite: AMTH 108, MATH 122, COEN 12, CSCI 61 or instructor approval. (4 units)

COEN 171. Principles of Design and Implementation of Programming Languages
High-level programming language concepts and constructs. Costs of use and implementation of the constructs. Issues and trade-offs in the design and implementation of programming languages. Critical look at several modern high-level programming languages. Prerequisites: A grade C- or better in COEN 12 or CSCI 61, COEN 20, COEN 70. (4 units)

COEN 172. Structure and Interpretation of Computer Programs
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 MATH 51; COEN 70 or CSCI 61; or instructor approval. (4 units)

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

COEN 173. Logic Programming
Application of logic to problem solving and programming; logic as a language for specifications, programs, databases, and queries; separation of logic and control aspects of programs; bottom-up reasoning (forward from assumptions to conclusions) versus top-down reasoning (backward from goals to subgoals) applied to problem solving and programming; nondeterminism, concurrency, and invertibility in logic programs. Programs written and run in Prolog. Prerequisites: COEN 70 or CSCI 61 and COEN 19 or MATH 51. (4 units)

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

COEN 174. Software Engineering
Software development life cycle. Project teams, documentation, and group dynamics. Software cost estimation. Requirements of engineering and design. Data modeling, object modeling, and object-oriented analysis. Object-oriented programming and design. Software testing and quality assurance. Software maintenance. Prerequisites: COEN 12 with a A grade of C- or better in COEN 12 or CSCI 61. Co-requisite: COEN 174L. (4 units)

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

COEN 175. Introduction to Formal Language Theory and Compiler Construction
Introduction to formal language concepts: regular expressions and context-free grammars. Compiler organization and construction. Lexical analysis and implementation of scanners. Top-down and bottom-up parsing and implementation of top-down parsers. An overview of symbol table arrangement, run-time memory allocation, intermediate forms, optimization, and code generation. Prerequisites: A grade of C- or better in COEN 20 and COEN 70. Co-requisite: COEN 175L. (4 units)

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

COEN 177. Operating Systems
Introduction to operating systems. Operating system concepts, computer organization models, storage hierarchy, operating system organization, processes management, interprocess communication and synchronization, memory management and virtual memory, I/O subsystems, and file systems. Design, implementation, and performance issues. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in COEN 20. Co-requisite: COEN 177L. (4 units)

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

COEN 178. Introduction to Database Systems
ER diagrams and the relational data model. Database design techniques based on integrity constraints and normalization. Database security and index structures. SQL and DDL. Transaction processing basics. Prerequisite: A grade of C- or better in COEN 12 or CSCI 61. Co-requisite: COEN 178L. (4 units)

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

COEN 179. Theory of Algorithms
Introduction to techniques of design and analysis of algorithms: asymptotic notations and running times of recursive algorithms; design strategies: brute-force, divide and conquer, decrease and conquer, transform and conquer, dynamic programming, greedy technique. Intractability: P and NP, approximation algorithms. Also listed as CSCI 163. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in either COEN 19 or MATH 51. (4 units)

COEN 180. Introduction to Information Storage
Storage hierarchy. Caching. Design of memory and storage devices, with particular emphasis on magnetic disks and storage-class memories. Error detection, correction, and avoidance fundamentals. Disk arrays. Storage interfaces and buses. Network attached and distributed storage, interaction of economy and technological innovation. Also listed as ELEN 180. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61. Recommended prerequisite: COEN 20. (4 units)

COEN 188. Co-op Education
Practical experience in a planned program designed to give students work experience related to their academic field of study and career objectives. Satisfactory completion of the assignment includes preparation of a summary report on co-op activities. P/NP grading. May not be taken for graduate credit. (2 units)

COEN 189. Co-op Technical Report
Credit given for a technical report on a specific activity such as a design or research project, etc., after completing the co-op assignment. Approval of department advisor required. Letter grades based on content and quality of report. May be taken twice. May not be taken for graduate credit. (2 units)

COEN 193. Undergraduate Research
Involves working on a year-long research project with one of the faculty members. Students should register three times in a row for a total of 6 units. Does not substitute for the senior project, which may be a continuation of the research done. Registration requires the faculty member’s approval. Prerequisite: Students must have junior or senior standing and a minimum GPA of 3.0. (2 units)

COEN 194. Design Project I
Specification of an engineering project, selected with the mutual agreement of the student and the project advisor. Complete initial design with sufficient detail to estimate the effectiveness of the project. Initial draft of the project report. (2 units)

COEN 195. Design Project II
Continued design and construction of the project, system, or device. Initial draft of project report. Prerequisite: COEN 194. (2 units)

COEN 196. Design Project III
Continued design and construction of the project, system, or device. Formal public presentation of results. Final report. Prerequisite: COEN 195. (2 units)

COEN 199. Directed Research/Reading
Special problems. By arrangement. (1–5 units)

* Undergraduate course open to graduate students as space permits and only with permission of the dean of the School of Engineering.

Printer-friendly format