Chapter 10: Department of Computer Science and Engineering

Professor Emeritus: Ronald L. Danielson, Daniel W. Lewis
Wilmot J. Nicholson Family Professor: Nam Ling (IEEE Fellow)
Dianne McKenna Professor: Silvia Figueira (Chair)
Professor: Ruth E. Davis
Associate Professors: Margareta Ackerman, Ahmed Amer, Darren Atkinson, Behnam Dezfouli, Yi Fang, Yuhong Liu, Weijia Shang
Assistant Professors: David C. Anastasiu, Younghyun Cho, Sean Choi, I-Han Hsiao, Shiva Jahangiri, Max Kreminski, Xiang Li, Ying Liu, Kai Lukoff
RTL Lecturers: Salem Al-Agtash, Farokh H. Eskafi, Angela Musurlian
AYAL Lecturers: Keyvan Moataghed, Yuan Wang

Overview

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 Computer Science and Engineering degree includes courses that cover the breadth of the discipline, from the engineering aspects of hardware and software design to the underlying theory of computation.

Degree Programs

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:

  1. Logic design CSEN(COEN) 21 or 921C

  2. Data structures CSEN(COEN) 12 or 912C

  3. Computer organization & assembly language CSEN(COEN) 20 or 920C or ECEN(ELEN) 33

  4. Discrete math AMTH 240

  5. Probability AMTH 210

  6. One of the following: Differential Equations (AMTH 106), Numerical Analysis (AMTH 220, 221), or Linear Algebra (AMTH 245, 246)

  7. One additional advanced programming course or one year of programming experience in industry.

The SCU CSEN/COEN and ECEN/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 not satisfied item 4 above may use AMTH 240 as an elective; students who have not satisfied item 5 above may use AMTH 210 as an elective; 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.

The above courses are considered as foundation courses for the MSCSE program. A grade of B or better is required for each to be considered a pass.

Degree Requirements

Engineering Graduate Core- Enrichment Experience Students must take a minimum of 8 units of the Graduate Core Enrichment Experience.

  • A minimum of 4 units must be from the Graduate Core which requires at least two courses from the three areas
    • Emerging Topics in Engineering
    • Engineering and Business/Entrepreneurship
    • Engineering and Society
  • The remaining 4 units can be accumulated by the following
    • a) Taking one or more major technical electives
    • b) Taking additional classes from the Graduate Core
    • c) Taking Cooperative Education courses (Engr 288, Engr 289)
    • d) Combining courses from a, b and c.

Please refer to Chapter 6, Enrichment Experience and Graduate Core Requirements for additional information and the core course list.

MSCSE Core

  • CSEN(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 CSEN(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 CSEN(COEN) 300-899 courses. CSE electives must be approved by the advisor.
  • Electives: Sufficient units to bring the total to at least 46. (The minimum number of CSEN(COEN) graduate units should be at least 36 units, and courses must be approved by the advisor.)

Please Note: Students wishing to do a thesis (CSEN(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 Chapters 2 and 3, Academic Programs and Requirements and Admissions, for details on admission and general degree requirements. The following departmental information augments the general requirements.

Preliminary Exam

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. Only those students who pass the preliminary examination shall be allowed to continue in the doctoral program. The preliminary examination may be repeated only once, and then only at the discretion of the thesis advisor.

The exam consists of three core subjects in the computer science and engineering area: computer architecture, algorithms, and operating systems. Students who do not pass all subjects during the first attempt are required to take the exam(s) of the failed subject(s) in the second attempt.

Thesis Advisor

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.

Doctoral Committee and Other 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 (presentation of research proposal for examinations on the subject of research work), 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 (at least one article accepted by a refereed journal with an impact factor of at least 1.0) with the student as the primary (first) author is required. More details are described in Chapter 2, Academic Programs and Requirements.

The student is expected to complete a minimum of 72 units of graduate credit beyond the master’s degree with an overall GPA of 3.0 or better. Of these, 36 quarter units may be earned through coursework, independent study and directed research, and 36 through the thesis.

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 Graduate Program Leadership Council (GPLC).

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.

LABORATORIES

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 Cloud Laboratory focuses on research in designing, developing, and testing the next-generation cloud-based systems and applications: (1) develop and utilize domain-specific hardware for cloud applications, and (2) optimizing existing systems to better serve new and coming applications that rely on the cloud, such as self-driving car, 5G, and serverless computer.

The Computing Systems & Informatics Laboratory (CSI Lab) researches developing and evaluating innovative user- and group-adaptive web-based computing systems and technologies. The Lab explores a range of HCI + AI methods to design technologies (i.e. visual analytics, educational technologies, Learn to Code in AR, etc.).

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 Human-Computer Interaction Laboratory (HCI Lab) uses human-centered methods to research, design, and develop technologies with social impact, with a focus on digital wellbeing and AR/VR technologies.

The Humanitarian Computing Laboratory focuses on developing applications to empower the underserved and their communities.

The Internet of Things (IoT) Research Laboratory (SIOTLAB) focuses on the design and development of (1) sensing and actuation systems, (2) energy-efficient, reliable, real-time, and secure networking protocols, and (3) edge and fog computing platforms for various 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 Visual Processing Laboratory (MVP Lab) 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 (VIP Lab) 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/.

Course Descriptions

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

Lower-Division Undergraduate Courses

CSEN (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 CSEN(COEN) 10, CSCI 10, or OMIS 30. Co-requisite: CSEN(COEN) 10L. (4 units)

CSEN (COEN) 10L. Introduction to Programming Laboratory
Laboratory for CSEN (COEN) 10. Co-requisite: CSEN (COEN) 10. (1 unit)

CSEN (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 CSEN (COEN) 10, CSCI 10, or OMIS 30. Co-requisite: CSEN (COEN) 11L. (4 units)

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

CSEN (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 CSEN (COEN) 12 or CSCI 61. Prerequisite: A grade of C- or better in CSEN (COEN) 11. Co-requisite: CSEN (COEN) 12L. Recommended co-requisite: CSEN (COEN 19) or MATH 51. (4 units)

CSEN (COEN) 12L. Abstract Data Types and Data Structures Laboratory
Laboratory for CSEN (COEN) 12. Co-requisite: CSEN (COEN)12. (1 unit)

CSEN (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. (4 units)

CSEN (COEN) 20. Introduction to Embedded Systems
Introduction to computer organization: CPU, registers buses, memory, and I/O. Number systems: information representation, signed and unsigned representation of integers, radix conversions and binary arithmetic. Assembly language programming: addressing techniques, arithmetic, shifting, bitwise and logic operations, overflow, branching and looping, and parameter passing. Calling assembly language functions from a C main program. Fixed and floating-point representation of real numbers. Performance issues: address alignment, instruction pipelining, pipeline stalls. Prerequisite: A grade of C- or better in CSEN(COEN) 11 or CSCI 60. Co-requisite: CSEN (COEN) 20L. Recommended co-requisite or prerequisite: CSEN (COEN) 12 or CSCI 61. (4 units)

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

CSEN (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 ECEN (ELEN) 21. Co-requisite: CSEN (COEN) 21L. (4 units)

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

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

CSEN (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: CSEN (COEN) 60L. (4 units)

CSEN (COEN) 60L. Introduction to Web Technologies Laboratory
Laboratory for CSEN (COEN) 60. Co-requisite: CSEN (COEN) 60. (1 unit)

CSEN (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 CSEN(COEN) 12 or CSCI 61 and in either CSEN(COEN) 19 or MATH 51. Co-requisite: CSEN(COEN) 79L. (4 units)

CSEN (COEN) 79L. Object-Oriented Programming and Advanced Data Structures Laboratory
Laboratory for CSEN (COEN) 79. Co-requisite: CSEN(COEN) 79. (1 unit)

Upper-Division Undergraduate Courses

CSEN (COEN) 100. Research Seminar
Introduction to research in computing, covering several research areas. (1 unit)

CSEN (COEN) 120. Real Time Systems
Overview of real-time systems: classification, design issues and description. Finite state machines and state charts. 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 CSEN (COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 120L. (4 units)

CSEN (COEN) 120L. Real Time Systems Laboratory
Laboratory for CSEN(COEN) 120. Co-requisite: CSEN(COEN) 120. (1 unit)

CSEN (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 CSEN(COEN) 20 or ECEN()ELEN 33 and in either CSEN(COEN) 21 or ECEN(ELEN) 21. Co-requisite: CSEN(COEN) 122L. (4 units)

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

CSEN (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 ECEN(ELEN) 123 and MECH 143. Prerequisites: ECEN(ELEN) 50 with a grade of C– or better and CSEN(COEN) 11. Co-requisite: CSEN(COEN) 123L. (4 units)

CSEN (COEN) 123L. Mechatronics Laboratory
Laboratory for CSEN(COEN) 123. Also listed as ECEN(ELEN) 123L and MECH 143L. Co-requisite: CSEN (COEN) 123. (1 unit)

CSEN (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 ECEN(ELEN) 127. Prerequisite: CSEN(COEN) 21. Co-requisites: CSEN(COEN) 127L and ECEN(ELEN) 115. (4 units)

CSEN (COEN) 127L. Advanced Logic Design Laboratory
Laboratory for CSEN(COEN) 127. Design, construction, and testing of controllers from verbal specs. Use of CAD design tools. Also listed as ECEN(ELEN) 127L. Co-requisite: CSEN(COEN) 127. (1 unit)

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

CSEN (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 CSEN(COEN) 12. (4 units)

CSEN (COEN) 140L. Machine Learning and Data Mining Laboratory
Laboratory for CSEN(COEN) 140. Co-requisite: CSEN(COEN) 140. (1 unit)

CSEN (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 CSEN(COEN) 146 and CSEN(COEN) 177. (4 units)

CSEN (COEN) 143L. Internet of Things Laboratory
Laboratory for CSEN(COEN) 143. Co-requisite: CSEN(COEN) 143. (1 unit)

CSEN (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 CSEN(COEN) 12 or CSCI 61. Corequisite: CSEN(COEN) 145L. (4 units)

CSEN (COEN) 145L. Introduction to Parallel Computing Laboratory
Laboratory for CSEN(COEN) 145. Co-requisite: CSEN(COEN) 145. (1 unit)

CSEN (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 CSEN(COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 146L. Recommended co-requisite or prerequisite: AMTH 108 or MATH 122. (4 units)

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

CSEN (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 CSEN(COEN) 12 or CSCI 61. (4 units)

CSEN (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 CSEN(COEN) 146. Co-requisite: CSEN(COEN) 150L (4 units)

CSEN (COEN) 150L. Introduction to Information Security Laboratory
Laboratory for CSEN(COEN) 150. Co-requisite: CSEN(COEN) 150. (1 unit)

CSEN (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 CSEN(COEN) 12 or CSCI 61 and in CSEN(COEN) 20. Co-requisite: CSEN(COEN) 152L. (4 units)

CSEN (COEN) 152L. Introduction to Computer Forensics Laboratory
Laboratory for CSEN(COEN) 152. Co-requisite: CSEN(COEN) 152. (1 unit)

CSEN (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 CSEN(COEN) 79 or CSCI 61. Co-requisite: CSEN(COEN) 160 (4 units)

CSEN (COEN) 160L. Object-Oriented Analysis, Design and Programming Laboratory
Laboratory for CSEN(COEN) 160. Co-requisite: CSEN(COEN) 160. (1 unit)

CSEN (COEN) 161. Web Development
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 CSEN(COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 161L. (4 units)

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

CSEN (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 CSEN(COEN) 146. (4 units)

CSEN (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 CSEN(COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 163L. (4 units)

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

CSEN (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 CSEN(COEN) 161 or demonstrated knowledge of web development technology covered in CSEN(COEN) 161. Co-requisite: CSEN(COEN) 164L. (4 units)

CSEN (COEN) 164L. Advanced Web Development Laboratory
Laboratory for CSEN(COEN) 164. Co-requisite: CSEN(COEN) 164. (1 unit)

CSEN (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. (5 units)

CSEN (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 CSEN(COEN) 12 or CSCI 61 and in either CSEN(COEN)19 or MATH 51. (4 units)

CSEN (COEN) 166L. Artificial Intelligence Laboratory
Laboratory for CSEN(COEN) 166. Co-requisite: CSEN(COEN) 166. (1 unit)

CSEN (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 CSEN(COEN) 20 or CSEN(COEN) 79 or equivalent. Co-requisite: CSEN(COEN) 168L. Co-located with CSEN(COEN) 268. (4 units)

CSEN (COEN) 168L. Mobile Application Development Laboratory
Laboratory for CSEN(COEN) 168. Co-requisite: CSEN(COEN) 168. (1 unit)

CSEN (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, CSEN(COEN) 12 or CSCI 61, or permission of the instructor. (4 units)

CSEN (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 CSEN(COEN) 79 or CSCI 61. (4 units)

CSEN (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 CSEN(COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 174L and CSEN(COEN) 194 (or consent of instructor). (4 units)

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

CSEN (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 CSEN(COEN) 20 and CSEN(COEN) 79. Co-requisite: CSEN(COEN) 175L. (4 units)

CSEN (COEN) 175L. Introduction to Formal Language Theory and Compiler Construction Laboratory
Laboratory for CSEN(COEN) 175. Co-requisite: CSEN(COEN) 175. (1 unit)

CSEN (COEN) 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 CSEN(COEN) 12 or CSCI 61 and in CSEN(COEN) 20. Co-requisite: CSEN(COEN) 177L. (4 units)

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

CSEN (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 CSEN(COEN) 12 or CSCI 61. Co-requisite: CSEN(COEN) 178L. (4 units)

CSEN (COEN) 178L. Introduction to Database Systems Laboratory
Laboratory for CSEN(COEN) 178. Co-requisite: CSEN(COEN) 178. (1 unit)

CSEN (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 CSEN(COEN) 12 or CSCI 61 and in either CSEN(COEN) 19 or MATH 51, or equivalents. (5 units)

CSEN (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 ECEN(ELEN) 180. Prerequisites: A grade of C- or better in either CSEN(COEN) 12 or CSCI 61. Recommended prerequisite: CSEN(COEN) 20. (4 units)

CSEN (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. Satisfactory completion of the work assignment includes preparation of a summary report on co-op activities and reflection on learning. P/NP grading. May be taken twice. May not be taken for graduate credit. (2 units)

CSEN (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: CSEN (COEN 188). (2 units)

CSEN (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. (2 units)

CSEN (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)

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

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

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

Graduate Courses

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

CSEN (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 ECEN(ELEN) 500. Prerequisite: CSEN(COEN) 127C or equivalent. (2 units)

CSEN (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 ECEN(ELEN) 233. Prerequisite: ECEN(ELEN) 210 or its undergraduate equivalent of ECEN(ELEN) 110. (2 units)

CSEN (COEN) 201E. Digital Signal Processing I & II
Same description as CSEN(COEN) 201 and CSEN(COEN) 202. Credit not allowed for both CSEN(COEN) 201/202 and 201E. Also listed as ECEN(ELEN) 233E. (4 units)

CSEN (COEN) 202. Digital Signal Processing II
Continuation of CSEN/COEN 201. Digital FIR and IIR filter design and realization techniques. Multi-rate signal processing. Fast Fourier transform. Quantization effects. Also listed as ECEN(ELEN) 234. Prerequisite: CSEN(COEN) 201. (2 units)

CSEN (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 ECEN(ELEN) 387. Prerequisite: CSEN(COEN) ECEN(ELEN) 127 or equivalent. (2 units)

CSEN (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 ECEN(ELEN) 388. Prerequisite: CSEN(COEN)/ECEN(ELEN) 387 or equivalent, or ECEN(ELEN) 153. (2 units)

CSEN (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 CSEN(COEN) 207. Prerequisites: ECEN(ELEN) 500 or CSEN(COEN) 200 and ECEN(ELEN) 303 or equivalent. (2 units)

CSEN (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: CSEN(COEN) 920C and CSEN(COEN) 921C or equivalent. (4 units)

CSEN (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: CSEN(COEN) 210. (2 units)

CSEN (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: CSEN(COEN) 210 and experience with coding in C or C++. (2 units)

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

CSEN (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: CSEN(COEN) 233 or equivalent. (2 units)

CSEN (COEN) 235. Client/Server Programming
Client/server paradigm in the context of the Web and the Internet. Objects, components, frameworks, and architectures. Current platforms, such as J2EE, CORBA, and .NET. Prerequisites: Knowledge of Java programming and HTML. (4 units)

CSEN (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 CSEN(COEN) 177 or 283. (2 units)

CSEN (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: CSEN(COEN) 233 or equivalent. (4 units)

CSEN (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, CSEN(COEN) 179 or 279. (4 units)

CSEN (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: CSEN(COEN) 12 and CSEN(COEN) 146 or 233. (4 units)

CSEN (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 CSEN(COEN) 178 or 280. (4 units)

CSEN (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: CSEN(COEN) 12 or 912C and CSEN(COEN) 146 or 233. (4 units)

CSEN (COEN) Information Security Management
Techniques and technologies of information and data security. Managerial aspects of computer security and risk management. Security services. Legal and ethical issues. Security processes, best practices, accreditation, and procurement. Security policy and plan development and enforcement. Contingency, continuity, and disaster recovery planning. Preparation for design and administration of a complete, consistent, correct, and adequate security program. (2 units)

CSEN (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: CSEN(COEN) 250, CSEN(COEN) 233 or instructor approval. (4 units)

CSEN (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: CSEN(COEN) 20 or 920C or equivalent. Co-requisite: CSEN(COEN) 252L. (4 units)

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

CSEN (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: CSEN(COEN) 250. (4 units)

CSEN (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: CSEN(COEN) 256, 283 or 210. (4 units)

CSEN (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: CSEN(COEN) 12 or 912C or equivalent, AMTH 210 and 245 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 12 or 912C or equivalent. (4 units)

CSEN (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 CSEN(COEN) 179 or 279. (4 units)

CSEN (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/C++/C#, and testing object-oriented systems. Prerequisite: CSEN(COEN) 79. (4 units)

CSEN (COEN) 277. Human-Computer Interaction
Fundamentals of human cognition and perception applied to user interfaces. 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 heuristics, guidelines, principles, theories, techniques, and applications. Prerequisite: CSEN(COEN) 12 or 912C or equivalent. (4 units)

CSEN (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: CSEN(COEN) 60 and 161 or demonstrated proficiency. (4 units)

CSEN (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: CSEN(COEN) 912C or equivalent. (4 units)

CSEN (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: CSEN(COEN) 12 or 912C or Data Structures class and CSEN(COEN) 283 or equivalent. (4 units)

CSEN (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, CSEN(COEN) 12 or 912C or equivalent. (4 units)

CSEN (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 ECEN(ELEN) 288. (2 units)

CSEN (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: CSEN(COEN) 12 or 912C and 20 or 920C or equivalent. (4 units)

CSEN/COEN 285. Software Engineering
Systematic approaches to software design, project management, implementation, documentation, and maintenance. Software design methodologies: SA/SD, OOA/OOD. Software quality assurance; testing. Reverse engineering and re-engineering. CASE. Term project. (4 units)

CSEN (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: CSEN(COEN) 285 or equivalent. (2 units)

CSEN (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: CSEN(COEN) 285 or equivalent. (2 units)

CSEN (COEN) 288. Software Ethics
Broad coverage of ethical issues related to software development. Formal inquiry into normative reasoning in a professional context. Application of ethical theories to workplace issues, viz., cost-benefit analysis, externalities, individual and corporate responsibility, quality and authorship of product. Case studies and in-class topics of debate include computer privacy, encryption, intellectual property, software patents and copyrights, hackers and break-ins, freedom of speech and the internet, error-free code, and liability. (2 units)

CSEN (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 CSEN(COEN) 12 or 912C. (4 units)

CSEN (COEN) 291 Computational Creativity
Computational Creativity is a subfield of Artificial Intelligence that intersects with the arts, philosophy, and cognitive psychology. The goal of computational creativity is to model, simulate or replicate creativity using computer systems, through the creation of either autonomous creative systems or collaborative systems that engage with humans on creative tasks. The course will enable students to critically analyze questions concerning the creative capabilities of computer systems and the impact of computing on the arts and society at large, and prepare students to contribute to research in this field. Prerequisites: Good programming skills (4 units)

CSEN (COEN) 296A. Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. (2 units)

CSEN (COEN) 296B. Topics in Computer Science and Engineering
Various subjects of current interest. May be taken more than once if topics differ. (4 units)

CSEN (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 ECEN(ELEN) 603. Prerequisite: ECEN(ELEN)/CSEN(COEN) 127 or equivalent. (2 units).

CSEN (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 ECEN(ELEN) 389. Prerequisites: CSEN(COEN) 204/ECEN(ELEN) 388 or equivalent. (2 units)

CSEN (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: CSEN(COEN) 210. (2 units)

CSEN (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 ECEN(ELEN) 608. Prerequisite: CSEN(COEN) 200 or equivalent. (2 units)

CSEN (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: CSEN (COEN 210). (4 units)

CSEN (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: CSEN(COEN) 233 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 233 and 283 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 210 and AMTH 247 or instructor approval. (4 units)

CSEN (COEN) 319. 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. Students will implement select parallel algorithms for solving real-world data analytics problems, including parallel algorithms for sparse matrix and graph operations. Prerequisites: CSEN(COEN) 12 or 912C or CSCI 61 or equivalent. (4 units)

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

CSEN (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: CSEN(COEN) 233 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 233 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 331. (4 units)

CSEN (COEN) 335. High-Performance Networking
Understanding the concepts and technologies of high-speed networks designed for HPC, big data processing, and cloud computing. Layer-2 and layer-3 switching. Infiniband and Ethernet. Network topologies. Edge computing. Software-defined networking to manage high-performance networking. Offloading and network virtualization. Integrating high-performance networking and 5G. Prerequisite: CSEN(COEN) 233 or equivalent. (2 units)

CSEN (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: CSEN(COEN) 233 or equivalent. (4 units)

CSEN (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, BPG, 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/H.266/MPEG-I Part 3 coding. Rate-distortion theory and optimization. Visual quality and coding efficiency. Brief intro to 3D video coding and 3D-HEVC. Deep learning approaches. Screen content coding. Video coding for machines. Applications. Also listed as ECEN(ELEN) 641. Prerequisites: AMTH 108, AMTH 245 and basic knowledge of algorithms. (4 units)

CSEN (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. Audio coding standards. Brief introduction to speech coding and speech coding standards. Machine learning for audio and speech coding. Also listed as ECEN(ELEN) 639. Prerequisites: AMTH 108, AMTH 245 and CSEN(COEN) 279 or equivalent. (2 units)

CSEN (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 ECEN(ELEN) 640. Prerequisite: CSEN(COEN) 201 or equivalent. (2 units)

CSEN (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 ECEN(ELEN) 244. Prerequisites: ECEN(ELEN) 241 and AMTH 211. (2 units)

CSEN (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: CSEN(COEN) 240 or CSEN(COEN) 281. (4 units)

CSEN (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 ECEN(ELEN) 643. Prerequisite: CSEN(COEN 340). (2 units)

CSEN (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 ECEN(ELEN) 644. Prerequisites: CSEN(COEN) 340 and knowledge of linear algebra. (2 units)

CSEN (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 ECEN(ELEN) 645. Prerequisites: CSEN(COEN) 340 and knowledge of probability. (2 units)

CSEN (COEN) 346. Natural Language Processing
Natural language processing (NLP) is the art and science of extracting insights from large amounts of natural language. It is one of the most important technologies of the information age. Applications of NLP are everywhere because people communicate almost everything in language: web search, recommendation, emails, customer service, language translation, virtual agents, medical reports, politics, etc. This course presents an introduction to NLP and covers the main models, algorithms, and applications of NLP. A key emphasis of this course is on statistical analysis of large text corpora, and distilling useful structured knowledge from large collections of unstructured documents. Prerequisites: CSEN(COEN) 240 or CSEN(COEN) 281. CSEN(COEN) 342 is optional but recommended. (4 units)

CSEN (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: CSEN(COEN) 338 or ECEN(ELEN) 641. (4 units)

CSEN (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 ECEN(ELEN) 421. Prerequisite: ECEN(ELEN) 233 and/or ECEN(ELEN) 334 or equivalent. (2 units)

CSEN (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 ECEN(ELEN) 422. Prerequisite: ECEN(ELEN) 421. (2 units)

CSEN (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: CSEN (COEN 253). Co-requisite: CSEN(COEN) 351L. (3 units)

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

CSEN (COEN) 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 CSEN(COEN) 250. (2 units)

CSEN (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 CSEN(COEN)179 or 279. (4 units)

CSEN (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 CSEN(COEN) 179 or 279. (4 units)

CSEN (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: CSEN(COEN) 275. (4 units)

CSEN (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: CSEN(COEN) 266 and a course including predicate logic and lambda calculus. (4 units)

CSEN (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/CSEN(COEN) 279. (4 units)

CSEN (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: CSEN(COEN) 280 or equivalent. (4 units)

CSEN (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: CSEN(COEN) 283 or equivalent. (4 units)

CSEN (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: course including predicate logic and lambda calculus. (2 units)

CSEN (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: CSEN(COEN) 385. (2 units)

CSEN (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: CSEN (COEN) 233 or equivalent and CSEN(COEN) 283 or equivalent. (2 units)

CSEN (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. (2 units)

CSEN (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. (4 units)

CSEN (COEN) 400. Computer Science and Engineering Graduate Seminar
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 CSEN(COEN) 400 to any graduate degree in the Department of Computer Science and Engineering. Consult the department for additional information. Prerequisite: Completion of 12 or more graduate units at SCU. P/NP grading. (1 unit)

CSEN (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: CSEN(COEN) 286 and CSEN(COEN) 386. (2 units)

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

CSEN (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. Must be supervised by a regular CSE full-time faculty. Prerequisite: Registration requires the faculty member’s and department chair approval. (1–6 units per quarter, for a total of maximum 6 units combining CSEN(COEN) 493 and 499 for master’s students)

CSEN (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. Must be supervised by a regular CSE full-time faculty. Prerequisite: Registration requires the faculty member’s and department chair approval. (1–9 units per quarter, for a total of at least 8 units)

CSEN (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. Must be supervised by a regular CSE full-time faculty Prerequisite: Registration requires the faculty member’s and department chair approval. (1–15 units per quarter, for a total of 36 units)

CSEN (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 CSEN(COEN) 493 and 499 for master’s students)

CSEN (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. (2 units)

CSEN (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. (2 units)

CSEN (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 ECEN(ELEN) 921C. (2 units)

results matching ""

    No results matching ""