Chapter 11: Department of Computer Science and Engineering
Professor Emeritus: Ronald L. Danielson
Wilmot J. Nicholson Family Professor: Nam Ling (IEEE Fellow, Chair)
Dianne McKenna Professor: Silvia Figueira
Professor: Ruth E. Davis
Associate Professors: Ahmed Amer, Darren Atkinson, Yi Fang, Daniel W. Lewis, Yuhong Liu, Weijia Shang
Assistant Professors: Margareta Ackerman, David C. Anastasiu, Behnam Dezfouli, Xiang Li, Ying Liu, Zhiqiang Tao
RTL Lecturers: Moe Amouzgar, Rani Mikkilineni, Angela Musurlian
AYAL Lecturers: Salem Al-Agtash, Farokh H. Eskafi, Keyvan Moataghed, Yuan Wang
“Computing sits at the crossroads among the central processes of applied mathematics, science, and engineering. The three processes have equal and fundamental importance in the discipline, which uniquely blends theory, abstraction, and design.” –1989 Task Force Report on the Core of Computer Science prepared by the ACM and the IEEE Computer Society.
The most successful graduates in the field of computing are those who understand computers as systems—not just the design of hardware or software, but also the relationships and interdependencies between them and the underlying theory of computation.
The department offers a variety of degree and certificate programs, including courses that cover the breadth of the discipline, from the engineering aspects of hardware and software design to the underlying theory of computation.
Students are required to meet with their advisors to define and file a program of study during their first quarter. In general, no credit is allowed for courses that duplicate prior coursework, including courses listed as degree requirements. Students should arrange adjustment of these requirements with their academic advisor when they file their program of study.
With the prior written consent of the advisor, master’s students may take a maximum of 12 units of coursework for graduate credit from selected senior-level undergraduate courses.
Master of Science in Computer Science and Engineering (MSCSE)
All students admitted to the MSCSE program are expected to already have competence in the fundamental subjects listed below, as required within an accredited program for a B.S. in Computer Science Engineering.. An applicant without such background (but who has completed college level calculus and advanced programming) may still be admitted, provided the deficiencies are corrected by coursework that is in addition to the normal degree requirements, and that is completed within the first year of graduate study. Alternatively, a student may take a similar course at another approved accredited institution. Online, continuing education, extension courses, and courses without a closed book exam are not accepted. The subjects and corresponding SCU courses that may be used to correct the deficiencies include:
Logic design COEN 21 or 921C
Data structures COEN 12 or 912C
Computer organization & assembly language COEN 20 or 920C or ELEN 33
Discrete math AMTH 240
Probability AMTH 210
One of the following: Differential Equations (AMTH 106), Numerical Analysis (AMTH 220, 221), or Linear Algebra (AMTH 245, 246)
One additional advanced programming course or one year of programming experience in industry.
The SCU COEN and ELEN courses listed above and AMTH 106 are considered undergraduate-level and may not be used to satisfy the requirements for the M.S. in Computer Science and Engineering. However, students who have satisfied item 6 above, but who have never studied numerical analysis, may use AMTH 220/221 as electives; students who have satisfied item 6 above, but who have never studied linear algebra, may use AMTH 245/246 as electives. Laboratory components are not required for the above courses.
- Engineering Graduate Core- Enrichment Experience
- Students must take a minimum of 8 units of the Graduate Core Enrichment Experience courses as described in Chapter 4, Academic Information.
- MSCSE Core
- COEN 210, 279, and 283
- Students who have taken one or more of these core courses or their equivalent must replace said course(s) with the advanced course equivalent (COEN 313, 379, and/or 383) or, with their advisor’s approval, replace said course(s) with elective(s).
- MSCSE Electives
- A student must take a minimum of 8 units of COEN 300-899 courses. CSE electives must be approved by the advisor.
- Electives: Sufficient units to bring the total to at least 46. (The maximum number of non-COEN graduate units allowed is 10 units, including those from the Engineering Graduate Core, and courses must be approved by the advisor.)
Please Note: Students wishing to do a thesis (COEN 497) should consult with their academic advisor regarding a modification of these requirements.
Master of Science in Software Engineering (MSSE)
We are currently not accepting applications for the Master of Science in Software Engineering program.
Doctor of Philosophy in Computer Science and Engineering
The Doctor of Philosophy (Ph.D.) degree is conferred by the School of Engineering primarily in recognition of competence in the subject field and the ability to investigate engineering problems independently, resulting in a new contribution to knowledge in the field. The work for the degree consists of engineering research, the preparation of a thesis based on that research, and a program of advanced study in engineering, mathematics, and related physical sciences. The student’s work is directed by the department, subject to the general supervision of the School of Engineering. See Chapter 2, Academic Programs and Requirements, and Chapter 3, Admissions, for details on admission and general degree requirements. The following departmental information augments the general requirements.
A preliminary written exam is offered at least once per year by the School of Engineering as needed. The purpose is to ascertain the depth and breadth of the student’s preparation and suitability for Ph.D. work.
The student and his or her advisor jointly develop a complete program of study for research in a particular area. The complete program of study (and any subsequent changes) must be filed with the Engineering Graduate Programs Office and approved by the student’s doctoral committee. Until this approval is obtained, there is no guarantee that courses taken will be acceptable toward the Ph.D. course requirements.
After passing the Ph.D. preliminary exam, a student requests his or her thesis advisor to form a doctoral committee. The committee consists of at least five members, each of which must have earned a doctoral degree in a field of engineering or a related discipline. This includes the student’s thesis advisor, at least two other current faculty members of the student’s major department at Santa Clara University, and at least one current faculty member from another appropriate academic department at Santa Clara University.
The committee reviews the student’s program of study, conducts an oral comprehensive exam, conducts the dissertation defense, and reviews the thesis. Successful completion of the doctoral program requires that the student’s program of study, performance on the oral comprehensive examination, dissertation defense, and thesis itself meet with the approval of all committee members. In addition, acceptance of publications with the student as the primary (first) author is required. More details are described in Chapter 2, Academic Programs and Requirements.
Time Limit for Completing Degree
All requirements for the doctoral degree must be completed within eight years following initial enrollment in the Ph.D. program. Extensions will be allowed only in unusual circumstances and must be recommended in writing by the student’s doctoral committee and approved by the dean of engineering in consultation with the Research Program Leadership Council (RPLC).
Engineer’s Degree in Computer Science and Engineering
The program leading to the engineer’s degree is particularly designed for the education of the practicing engineer. The degree is granted on completion of an approved academic program and a record of acceptable technical achievement in the candidate’s field of engineering. The academic program consists of a minimum of 46 units beyond the master’s degree. Courses are selected to advance competence in specific areas relating to the engineering professional’s work. Evidence of technical achievement must include a paper principally written by the candidate and accepted for publication by a recognized engineering journal prior to the granting of the degree. A letter from the journal accepting the paper must be submitted to the department chairperson. In certain cases, the department may accept publication in the proceedings of an appropriate conference.
Admission to the program will generally be granted to those students who demonstrate superior ability in meeting the requirements for their master’s degree. Normally, the master’s degree is earned in the same field as that in which the engineer’s degree is sought. Students who have earned a master’s degree from Santa Clara University must file a new application (by the deadline) to continue work toward the engineer’s degree. A program of study for the engineer’s degree should be developed with the assistance of an advisor and submitted during the first term of enrollment.
Certificate programs are designed to provide intensive background in a narrow area at the graduate level. At roughly one-third of the units of a master’s degree program, the certificate is designed to be completed in a much shorter period of time. These certificate programs are appropriate for students working in industry who wish to enhance their skills in an area in which they already have some background knowledge. We are currently not accepting applications for certificate programs in Computer Science and Engineering.
The Artificial Intelligence (AI) Laboratory conducts research across diverse facets of AI, including foundational and applied machine learning, and computational creativity, exploring the capabilities of AI systems to be autonomously creative as well as act as co-creative partners.
The Data Science Laboratory is devoted to the extraction of knowledge from data and to the theory, design, and implementation of information systems to manage, retrieve, mine, and utilize data.
The Humanitarian Computing Laboratory focuses on developing applications to empower the underserved and their communities.
The Internet of Things Technologies Research Laboratory focuses on the design and development of (1) systems with sensing and actuation capabilities, (2) energy-efficient and reliable networking protocols, and (3) data analytics, for applications such as healthcare, advanced manufacturing, and smart cities.
The Machine Learning and Computational Genomics Laboratory focuses on algorithmic design for machine learning problems with real-world applications and impact, especially those with unconventional inputs, such as sparse data, sets of multivariate time series, video streams, and genomics and proteomics data.
The Multimedia Coding and Processing Laboratory supports research in image and video coding (compression and decompression) and processing with visual processing and deep learning methods.
The Network Security and Optimization Laboratory focuses on using advanced algorithms and data-driven optimization to solve security-related problems in various real-world complex networks.
The Sustainable Systems Laboratory is dedicated to research in systems software and data storage technologies. The projects it supports focus on durable, scalable, and efficient solutions to computing problems, and the application of systems software technologies to broader sustainability problems.
The Trustworthy Computing Laboratory conducts research on ensuring the security and trustworthiness of distributed systems and networks.
The Video and Image Processing Laboratory investigates state-of-the-art machine learning and signal processing techniques for image and video processing and analysis.
For details of faculty research areas, please see https://www.scu.edu/engineering/academic-programs/department-of-computer-engineering/research/.
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.
COEN 10L. Introduction to Programming Laboratory
Laboratory for COEN 10. Co-requisite: COEN 10.
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. Prerequisites: 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.
COEN 11L. Advanced Programming Laboratory
Laboratory for COEN 11. Co-requisite: COEN 11.
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 MATH 51.
COEN 12L. Abstract Data Types and Data Structures Laboratory
Laboratory for COEN 12. Co-requisite: COEN 12.
COEN 19. Discrete Mathematics
Predicate logic, methods of proof, sets, functions, sequences and summations, modular arithmetic, cardinality, induction, elementary combinatorial analysis, recursion, and relations. Also listed as MATH 51.
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. 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.
COEN 20L. Embedded Systems Laboratory
Laboratory for COEN 20. Co-requisite: COEN 20.
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 conjunction with FPGAs. Also listed as ELEN 21. Co-requisite: COEN 21L.
COEN 21L. Logic Design Laboratory
Laboratory for COEN 21. Also listed as ELEN 21L. Co-requisite: COEN 21.
COEN 29. Current Topics in Computer Science and Engineering
Subjects of current interest. May be taken more than once if topics differ.
COEN 44. Applied Programming in C
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.
COEN 44L. Applied Programming in C Laboratory
Laboratory for COEN 44. Co-requisite: COEN 44.
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.
COEN 60L. Introduction to Web Technologies Laboratory
Laboratory for COEN 60. Co-requisite: COEN 60.
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.
COEN 70L. Formal Specification and Advanced Data Structures Laboratory
Laboratory for COEN 70. Co-requisite: COEN 70.
COEN 79. Object-Oriented Programming and Advanced Data Structures
Object-oriented programming concepts; specification, design, and implementation of data structures with emphasis on software reliability and reusability. Design and implementation of static and dynamic data structures, such as sequence, vector, list, stack, queue, deque, priority queue, set, multiset, map, multimap, and graphs. Software development using inheritance, templates and iterators. Memory allocation and performance. Using data structures in real-world applications. Time analysis of data structures. Informal use of specifications to guide implementation and validation of programs. 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 79L.
COEN 79L. Object-Oriented Programming and Advanced Data Structures Laboratory
Laboratory for COEN 79. Co-requisite: COEN 79.
Upper-Division Undergraduate Courses
COEN 100. Research Seminar
Introduction to research in computing, covering several research areas.
COEN 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.
COEN 120L. Real Time Systems Laboratory
Laboratory for COEN 120. Co-requisite: COEN 120.
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.
COEN 122L. Computer Architecture Laboratory
Laboratory for COEN 122. Co-requisite: COEN 122.
COEN 123. Mechatronics
Introduction to behavior, design, and integration of electromechanical components and systems. Review of appropriate electronic components/circuitry, mechanism configurations, and programming constructs. Use and integration of transducers, microcontrollers, and actuators. Also listed as ELEN 123 and MECH 143. Prerequisites: ELEN 50 with a grade of C– or better and COEN 11 or 44. Co-requisite: COEN 123L.
123L. Mechatronics Laboratory
Laboratory for COEN 123. Also listed as ELEN 123L and MECH 143L. Co-requisite: COEN 123.
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.
COEN 127L. Advanced Logic Design Laboratory
Laboratory for COEN 127. Design, construction, and testing of controllers from verbal specs. Use of CAD design tools. Also listed as ELEN 127L. Co-requisite: COEN 127.
COEN 129. Current Topics in Computer Science and Engineering
Subjects of current interest. May be taken more than once if topics differ.
COEN 140. Machine Learning and Data Mining
Machine learning as a field has become increasingly pervasive, with applications from the web (search, advertisements, and recommendation) to national security, from analyzing biochemical interactions to traffic and emissions to astrophysics. This course presents an introduction to machine learning and data mining, the study of computing systems that improve their performance through learning from data. This course is designed to cover the main principles, algorithms, and applications of machine learning and data mining. Prerequisites: A grade of C- or better in AMTH 108, MATH 53, and COEN 12.
COEN 140L. Machine Learning and Data Mining Laboratory
Laboratory for COEN 140. Co-requisite: COEN 140.
COEN 143. Internet of Things
Applications and architectures of IoT systems. Embedded and low-power processors. Interfacing digital sensors and actuators. Interrupts and exceptions in a concurrent world. Operating systems for resource-constrained devices. Multitasking and memory allocation. Wireless channel access, low-power wireless, real-time and reliable communication. IP networking, protocol translation and compression. Multi-hop communication. Application layer protocols. Security protocols and architectures. Cloud and edge computing. Prerequisites: a grade of C- or better in COEN 146 and COEN 177.
COEN 143L. Internet of Things Laboratory
Laboratory for COEN 143. Co-requisite: COEN 143.
COEN 145. Introduction to Parallel Computing
How to effectively program parallel computers, from smartphones to large clusters. Types of parallel architectures, routing, data parallel, shared-memory, and message-passing parallel programming, load balancing, evaluation of parallel algorithms, advanced topics. Case studies in real-world data analytics, including parallel algorithms for sparse matrix and graph operations. Hands-on lab on multi-core CPUs and many-core GPUs. Prerequisites: a grade of C- or better in either COEN 12 or CSCI 61. Corequisite: COEN 145L.
COEN 145L. Introduction to Parallel Computing Laboratory
Laboratory for COEN 145. Co-requisite: COEN 145.
COEN 146. Computer Networks
Data Communication: circuit and packet switching, latency and bandwidth, throughput/delay analysis. Application Layer: client/ server model, socket programming, web, email, 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.
COEN 146L. Computer Networks Laboratory
Laboratory for COEN 146. Co-requisite: COEN 146.
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 of C- or better in either COEN 12 or CSCI 61.
COEN 150. Introduction to Information Security
Security principles; operating system security: process security, file system security, application program security; access control models: DAC, MAC, RBAC, ABAC; malware: virus, Trojan, worms, rootkits, botnets, adware, spyware; network security attacks and defenses at different layers; web security: attacks on clients and servers; cryptographic basis: symmetric cryptography, public-key cryptography, cryptographic hash functions, digital signature; application security: database security, email security, social networking security. Prerequisites: A grade of C- or better in COEN 146. Corequisite: COEN 150L
COEN 150L. Introduction to Information Security Laboratory
Laboratory for COEN 150. Corequisite: COEN 150.
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.
COEN 152L. Introduction to Computer Forensics Laboratory
Laboratory for COEN 152. Co-requisite: COEN 152.
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. Prerequisite: A grade of C- or better in COEN 79 or CSCI 61. Co-requisite: COEN 160L. Co-located with COEN 275.
COEN 160L. Object-Oriented Analysis, Design and Programming Laboratory
Laboratory for COEN 160. Co-requisite: COEN 160.
COEN 161. Web Development
COEN 161L. Web Development Laboratory
Laboratory for COEN 161. Co-requisite: COEN 161.
COEN 162. Web Infrastructure
History and overview of World Wide Web technology. Web protocols. Web navigation. Web caching and load balancing. P2P and content delivery networks. Streaming technologies. Prerequisite: A grade of C- or better in COEN 146.
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.
COEN 163L. Web Usability Laboratory
Laboratory for COEN 163. Co-requisite: COEN 163.
COEN 164. Advanced Web Development
Advanced topics in Web Application Development; Development with Web Frameworks (Ruby with Rails), implementing web services and management of web security. Prerequisite: A grade of C- or better in COEN 161 or demonstrated knowledge of web development technology covered in COEN 161. Co-requisite: COEN 164L.
COEN 164L. Advanced Web Development Laboratory
Laboratory for COEN 164. Co-requisite: COEN 164.
COEN 165. Introduction to 3D Animation & Modeling/Modeling & 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. May be repeated twice for credit. Also listed as ARTS 173.
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.
COEN 166L. Artificial Intelligence Laboratory
Laboratory for COEN 166. Co-requisite: COEN 166.
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: a grade of C- or better in COEN 20 or COEN 79 or equivalent. Co-requisite: COEN 168L. Co-located with COEN 268.
COEN 168L. Mobile Application Development Laboratory
Laboratory for COEN 168. Co-requisite: COEN 168.
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 or MATH 122, COEN 12 or CSCI 61, or permission of the instructor.
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. Prerequisite: A grade C- or better in COEN 12 or CSCI 61.
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 79 or CSCI 61, or permission of the instructor.
COEN 172L. Structure and Interpretation of Computer Programs Laboratory
Laboratory for COEN 172. Co-requisite: COEN 172.
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 79 or CSCI 61 and COEN 19 or MATH 51.
COEN 173L. Logic Programming Laboratory
Laboratory for COEN 173. Co-requisite: COEN 173.
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. Prerequisite: A grade of C- or better in COEN 12 or CSCI 61. Co-requisite: COEN 174L and COEN 194 (or consent of instructor).
COEN 174L. Software Engineering Laboratory
Laboratory for COEN 174. Co-requisite: COEN 174.
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 79. Co-requisite: COEN 175L.
COEN 175L. Introduction to Formal Language Theory and Compiler Construction Laboratory
Laboratory for COEN 175. Co-requisite: COEN 175.
COEN 177. Operating Systems
Introduction to operating systems. Operating system concepts, computer organization models, storage hierarchy, operating system organization, processes management, inter process 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.
COEN 177L. Operating Systems Laboratory
Laboratory for COEN 177. Co-requisite: COEN 177.
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.
COEN 178L. Introduction to Database Systems Laboratory
Laboratory for COEN 178. Co-requisite: COEN 178.
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 163A. Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in either COEN 19 or MATH 51, or equivalents.
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.
COEN 188. Co-op Education
Integration of classroom study and practical experience in a planned program designed to give students practical work experience related to their academic field of study and career objectives. The course alternates (or parallels) periods of classroom study with periods of training in industry or government. Satisfactory completion of the work assignment includes preparation of a summary report on co-op activities. P/NP grading. May not be taken for graduate credit.
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. Prerequisite: COEN 188.
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. Students must have junior or senior standing and a minimum GPA of 3.0.
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.
COEN 195. Design Project II
Continued design and construction of the project, system, or device. Initial draft of project report. Prerequisite: COEN 194.
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.
COEN 199. Directed Research/Reading
Special problems. By arrangement.
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.
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.
COEN 201E. Digital Signal Processing I & II
Same description as COEN 201 and COEN 202. Credit not allowed for both COEN 201/202 and 201E. Also listed as ELEN 233E.
COEN 202. Digital Signal Processing II
Continuation of COEN 201. Digital FIR and IIR filter design and realization techniques. Multi-rate signal processing. Fast Fourier transform. Quantization effects. Also listed as ELEN 234. Prerequisite: COEN 201.
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.
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.
COEN 207. SoC (System-on-Chip) Verification
This course presents various state-of-the art verification techniques used to ensure the corrections of the SoC (System-on-Chip) design before committing it to manufacturing. Both Logical and Physical verification techniques will be covered including Functional Verification, Static Timing, Power and Lay Out Verification. Also, the use of Emulation Assertion-based Verification and Hardware/Software CO-Verification techniques will be presented. Also listed as COEN 207. Prerequisites: ELEN 500 or COEN 200 and ELEN 303 or equivalent.
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 or 920C and COEN 21 or 921C or equivalent.
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.
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. Prerequisites: COEN 210 and experience with coding in C or C++.
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 920C or equivalent and AMTH 108 or equivalent.
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.
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.
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.
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.
COEN 240. Machine Learning
Covers theoretical foundations of machine learning. Learning theory or concept learning, overfitting/regularization, decision tree learning, cluster algorithms, artificial neural networks, gradient descent. Students will implement select machine learning algorithms. Prerequisite: AMTH 108 or AMTH 210, MATH 53 or AMTH 246, COEN 179 or 279.
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 or 912C and COEN 146 or 233.
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 or 280.
COEN 243. Internet of Things
Application domains. Architectures. Edge and fog computing. Embedded processors. Interfacing digital sensors and actuators. Interrupts and exceptions in a concurrent world. Operating systems. Multitasking. Memory allocation. Low-power wireless communication. Real-time and reliable communication. IP networking. Protocol compression and translation. Multi-hop networking. Application layer protocols. Securing resource-constrained devices. Prerequisites: COEN 12 or 912C and COEN 146 or 233.
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.
COEN 251. 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 email standards, etc. Wireless security. Programming required. Prerequisite: COEN 250, COEN 233 or instructor approval.
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. Prerequisite: COEN 20 or 920C or equivalent. Co-requisite: COEN 252L.
COEN 252L. Laboratory for COEN 252
Co-requisite: COEN 252.
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. Hands-on materials in methods for high-assurance using systems such as PVS from SRI, and the NRL Protocol Analyzer. Prerequisite: COEN 250.
COEN 259. Advanced Compilers Design
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, 283 or 210.
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 12 or 912C.
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 12 or 912C.
COEN 266. Artificial Intelligence
Fundamental concepts of intelligent agents and agent design, search algorithms, adversarial search, constraint satisfaction problems, decision trees, Bayesian networks, Markov decision processes, and reinforcement learning. Students will implement algorithms to solve real-world problems. Prerequisites: COEN 12 or 912C or equivalent, AMTH 210 and 245 or equivalent.
COEN 268. Mobile Application Development
Design and implementation of applications running on a mobile platform such as smartphones and tablets. Programming languages and development tools for mobile SDKs. Writing code for peripherals—GPS, accelerometer, and touchscreen. Optimizing user interface for a small screen. Effective memory management on a constrained device. Embedded graphics. Persistent data storage. Prerequisite: COEN 12 or 912C or equivalent.
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.
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 12 or 912C.
COEN 277. Human-Computer Interaction
Core concepts, methods, and techniques of User Research, Human-Computer Interaction, Usability, and User Centered Design. User experience evaluation methods and associated metrics. User interface and interaction design guidelines, principles, theories, techniques, and applications. Prerequisite: COEN 12 or 912C or equivalent.
COEN 278. Advanced Web Programming
Advanced topics in Web Application Development; Development with Web Frameworks (Ruby with Rails), implement web services and management of web security. Prerequisites: COEN 60 and 161 or demonstrated proficiency.
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 912C or equivalent.
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 912C or Data Structures class and COEN 283 or equivalent.
COEN 281. Pattern Recognition and Data Mining
Provides an overview of data analytics methods, including data representation and preprocessing, proximity, finding nearest neighbors, exploratory analysis, dimensionality reduction, association analysis and sequential patterns, supervised inference and prediction, classification, regression, model selection and evaluation, overfitting, clustering, and advanced topics. Students will analyze real-world data using state-of-the-art data science libraries. Prerequisites: AMTH 210 and 245 or equivalent, COEN 12 or 912C or equivalent.
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, transmission and distribution losses by optimizing utilization of resources and/or power network elements. Reporting tools help track operational costs and energy obligations. Also listed as ELEN 288.
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 or 912C and 20 or 920C or equivalent.
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.
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.
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.
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.
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 or 912C.
COEN 296A. Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ.
COEN 296B. Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ.
COEN 303. Logic Design Using HDL
Algorithmic approach to design of digital systems. Use of hardware description languages for design specification. Structural, register transfer, and behavioral. view of HDL. Simulation and synthesis of systems descriptions. Also listed as ELEN 603. Prerequisite: ELEN/COEN 127 or equivalent.
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. Effects 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.
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.
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.
COEN 313. Advanced Computer Architecture
Advanced system architectures. Overview of different computer architecture paradigms. Hardware-supported instruction level parallelism, VLIW architectures, multithreaded processors. Performance and correctness issues (coherency, consistency, and synchronization) for different multiprocessor configuration alternatives (UMA, NUMA). SIMD architecture alternatives. Warehouse massive-scale computing. Prerequisite: COEN 210.
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.
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.
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.
COEN 319. Parallel Programming
How to effectively program parallel computers, from smartphones to large clusters. Types of parallel architectures, routing, data parallel, shared-memory, and message-passing parallel programming, load balancing, evaluation of parallel algorithms, advanced topics. Students will implement select parallel algorithms for solving real-world data analytics problems, including parallel algorithms for sparse matrix and graph operations. Prerequisites: COEN 12 or 912C or CSCI 61 or equivalent.
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.
COEN 329. Network Technology
Advanced technologies and protocols for broadband LAN, MAN, WAN, L2 VPN, and L3 VPN, Pseudo Wire, VPLS (Virtual Private LAN Services). Current technologies: tunneling, QoS and security in content delivery, PON (Passive Optical Networks), support for multimedia communication, server farms, server redundancy, GMPLS (Generalized Multi-Protocol Label Switching). Hot Standby Router Protocol. Emerging technologies, e.g., Carrier Ethernet. Prerequisite: COEN 233 or equivalent.
COEN 331. Wireless and Mobile Networks
TCP/IP architecture. Fundamentals of wireless transmission. IEEE 802.11 architecture and protocols. Bluetooth protocol stack. BLE. IEEE 802.15.4 and ZigBee. Real-time networks. Cellular communication fundamentals. Long-Term Evolution (LTE). Software-defined networking. 5G. Prerequisite: COEN 233 or equivalent.
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.
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), signaling protocols, fibre channel, Ethernet over SONET/SDH, PoS, fiber optics communications, DWDM, and CWDM. Tera-bit routers. Infiniband switching technology, End-to-End Layer 2 and Layer 3 management. Emerging technologies: 40GE, 100GE. Prerequisite: COEN 233 or equivalent.
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.
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 and JPEG family. Video coding standards such as the MPEG series and the H.26x series. H.264/MPEG-4 AVC coding. HEVC/H.265/MPEG-H Part 2 coding. VVC. Rate-distortion theory and optimization. Visual quality and coding efficiency. Brief intro to 3D video coding and 3D-HEVC. Deep learning approaches. Applications. Also listed as ELEN 641. Prerequisites: AMTH 108, AMTH 245 and basic knowledge of algorithms.
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.
COEN 340. Digital Image Processing I
Digital image representation and acquisition, color representation; point and neighborhood processing; image enhancement; morphological filtering; Fourier, cosine, and wavelet transforms. Also listed as ELEN 640. Prerequisite: COEN 201 or equivalent.
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.
COEN 342. Deep Learning
Deep neural networks and their applications to various problems, e.g., speech recognition, image segmentation, and natural language processing. Will cover the underlying theory of various types of neural networks including feed-forward, convolutional, and recurrent neural networks, the range of applications to which it has been applied, and current trends in the field. Prerequisite: COEN 240 or COEN 281.
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, three-dimensional models from multiple views.. Also listed as ELEN 643. Prerequisite: COEN 340.
COEN 344. Computer Vision I
Introduction to image understanding, feature detection, description, and matching; feature based alignment; structure from motion; stereo correspondence. Also listed as ELEN 644. Prerequisites: COEN 340 and knowledge of linear algebra.
COEN 345. Computer Vision II
Learning and inference in vision; regression models; deep learning for vision; classification strategies; detection and recognition of objects in images. Also listed as ELEN 645. Prerequisites: COEN 340 and knowledge of probability.
COEN 347. Advanced Image and Video Coding
Advanced topics in image and video coding, selected from: Wavelet transform and compression. Sparse coding. Compressive sensing. Standards such as JPEG 2000, JPEG XT, JPEG PLENO, VVC, and HEVC extensions such as SHVC, MV-HEVC, 3D-HEVC, and SCC. Scalable video coding. Multiview and 3D video coding. Screen content coding. High dynamic range HDR. Light-field, point-cloud, and holographic imaging. Distributed video coding. Video communications systems. Congestion control. Rate control. Error control. Transcoding. Machine and deep learning approaches. Image/video coding for machines. Other advanced topics. Prerequisite: COEN 338 or ELEN 641.
COEN 348. Speech Processing 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 233 and/or ELEN 334 or equivalent.
COEN 349. Speech Processing 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 prediction 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. Speech recognition and biometrics. Research project on speech processing. Also listed as ELEN 422. Prerequisite: ELEN 421.
COEN 351. Internet and E-Commerce Security
Special security requirements of the internet. Secure electronic business transactions. Email 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. Co-requisite: COEN 351L.
COEN 351L. Laboratory for COEN 351
Co-requisite: COEN 351.
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.
COEN 353. Trust and Privacy in Online Social Network
This course will introduce fundamental concepts in trustworthy computing and privacy; discuss classic (1) trust models, such as direct/indirect model, belief theory based model, entropy based model, fuzzy model, and (2) privacy models, such as k-anonymity, l-diversity, t-closeness models; investigate evolution of trust/privacy attacks and defenses in online social networks; and discuss state-of-the-art trust/privacy researches in online social networks. Prerequisites: AMTH 108 or AMTH 210, and COEN 179 or 279.
COEN 354. Social Network Analysis and Risk
Social network analysis. Cybersecurity risks. Network measurement. Centrality. Random networks. Submodularity. Diffusion models. Community detection. Sybil defense. Adaptive crawling. Influence maximization. Misinformation containment. Prerequisites: AMTH 108 or AMTH 210, and COEN 179 or 279.
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.
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 260 or other courses covering predicate logic.
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 260 and COEN 266.
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.
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.
COEN 383. Advanced Operating Systems
Advanced topics beyond the fundamentals of operating systems, including a look at different systems software concepts within different components of a modern operating system, and applications beyond the scope of an individual operating system. Prerequisite: COEN 283 or equivalent.
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. Prerequisites: COEN 260 or other courses including predicate logic and lambda calculus.
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.
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.
COEN 396A. Advanced Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. See department website for current offerings and descriptions.
COEN 396B. Advanced Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. See department website for current offerings and descriptions.
COEN 400. Computer Science and Engineering Graduate Seminars
Regularly scheduled seminars on topics of current interest in the field of computer science and engineering. May apply a maximum of 1 unit of credit from COEN 400 to any graduate degree in the Department of Computer Science and Engineering. Consult department office for additional information. Prerequisite: Completion of 12 or more graduate units at SCU. P/NP grading.
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. The course is typically restricted only to MSSE students. Students enrolled must complete three one-quarter (preferably consecutive) sections. Prerequisites: COEN 286 and COEN 386.
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.
COEN 493. Directed Research
Special research directed by a faculty member. By arrangement. Research must be directed by a tenure-track faculty member in computer science and engineering. Limited to master’s and Ph.D. students in computer science and engineering. Prerequisite: Registration requires the faculty member’s approval.
(1–6 units per quarter, for a total of maximum 6 units combining COEN 493 and 499 for master’s students)
COEN 497. Master’s Thesis Research
By arrangement. Research must be directed by a tenure-track faculty member in computer science and engineering. Limited to master’s students in computer science and engineering. Prerequisite: Registration requires the faculty member’s approval.
(1-9 units per quarter, for a total of at least 8 units)
COEN 498. Ph.D. Thesis Research
By arrangement. Research must be directed by a tenure-track faculty member in computer science and engineering. Limited to Ph.D. students in computer science and engineering. Prerequisite: Registration requires the faculty member’s approval.
(1–15 units per quarter, for a total of 36 units)
COEN 499. Independent Study
Special problems. By arrangement. Work must be directed by a full-time faculty member. Limited to computer science and engineering majors. Prerequisite: Registration requires the faculty member’s approval.
(1–6 units per quarter, for a total of maximum 6 units combining COEN 493 and 499 for master’s students)
COEN 912C. Abstract Data Types and Data Structures
Intense coverage of topics related to 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++. Foundation course not for graduate credit. Prerequisite: A grade of B or higher in a programming language course.
COEN 920C. Embedded Systems and Assembly Language
Intense coverage of topics related to embedded systems and assembly language. 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. Foundation course not for graduate credit. Prerequisite: A grade of B or higher in a programming language course.
COEN 921C. Logic Design
Intense coverage of topics related 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 conjunction with FPGAs. Foundation course not for graduate credit. Also listed as ELEN 921C.